【계속】Swift로 Facebook 제휴합시다! (<CocoaPods>에서 use_frameworks!를 활성화한 경우)

개요


  • 이 기사는 『 Swift로 Facebook 연계합시다! 』의 속편입니다!
  • 『Swift로 Facebook 제휴하자! '에서는 CocoaPods를 사용하여 SDK를 도입하는 부분에서 Podfile에 use_framewoeks! 방법을 알고 싶다는 요청을 받았습니다. 조사해 보았으므로 보고합니다.

  • Podfile의 "use_frameworks!"를 활성화 한 경우의 도입 방법


  • 아래의 조작 이외는 기본적으로 「 Swift로 Facebook 연계합시다! 」와 같습니다. 자세한 내용은 기사를 참조하십시오.

  • 작동 절차



    (1) mBaaS의 iOS SDK를 일부 편집하여 사용합니다. mBaaS의 iOS SDK는 GitHub에서에 있으며 오른쪽 상단의 "Fork"버튼을 클릭하여 자신의 디렉토리에 복사합니다.


    (2) 자신의 디렉토리내에 카피한 SDK안에, Pod install할 때에 읽어들일 파일 「NCMB.podspec」파일을 엽니다,


    (3) 오른쪽 상단의 펜 마크를 클릭하여 편집 화면을 엽니 다.

    AppDelegate.NCMB.podspec
    s.dependency 'FBSDKLoginKit'
    


  • SDK 작업은 이상입니다

  • (4) 기존 프로젝트를 사용하는 경우에만 : .xcodeproj 디렉토리에있는 아래의 파일 또는 폴더를 삭제합니다.
  • use_framewoeks!
  • ****.xcworkspace
  • Podfile.lock 폴더

  • (5) 「Podfile」을 하기 내용으로 수정하고, 다시 터미널에서 pod install을 실시합니다

    Podfile
    # Uncomment this line to define a global platform for your project
    platform :ios, '8.0'
    # Uncomment this line if you're using Swift
    use_frameworks!
    target '****プロジェクト名****' do
        pod 'NCMB', :git => 'https://github.com/****自分のGitHubディレクトリ名****/ncmb_ios.git'
    end
    

    ※「 Pods 」는 2.의 화상에 있는 「HTTPS▼」의 곳에서 복사해 주세요

    (6) 새로 만든 https://github.com/****自分のGitHubディレクトリ名****/ncmb_ios.git 파일을 더블 클릭하여 Xcode를 시작합니다.

    (7) 기존 프로젝트를 사용하는 경우에만 : .xcworkspace 파일 삭제

    (8) (7) 대신에 ****-Bridging-Header.hAppDelegate.swift 에 다음을 추가합니다.

    AppDelegate.swift&&ViewController.Swift
    import NCMB
    import FBSDKLoginKit
    

    (9) 동작 확인

    고찰과 해설


  • 참고 Qiita 기사( iOS9에서 Facebook Single Sign On )를 보고, 다른 방법이 있는 것을 알았습니다. 마찬가지로 할 수 있을까? 라고 해 보는 것도 능숙하지 않았습니다. . 얕은 하카였습니다. 원인은 SDK끼리의 참조 관계의 문제가 얽혀 있는 것 같았습니다.
  • 살펴보면 ViewController.Swift 파일에 podspec를 추가한 mBaaS의 SDK를 가져오면 mBaaS의 NCMB SDK뿐만 아니라 FBSDKCoreKit과 FBSDKLoginKit도 프로젝트에 통합되는 것 같습니다. 반대로 이러한 3개의 SDK의 참조 관계의 문제로 이 방법이 아니면 에러가 나와 버리는 것 같습니다.
  • SDK를 만지는 건 조금 저항이 있었습니다만, 'FBSDKLoginKit' 하는 때에 읽어들인다 $ pod install 파일의 편집만이지만, 브리지해 사용하는 방법보다 편해? 그렇죠?
  • 일단 니프티 클라우드 모바일 백엔드 문서 에는 전자의 방법으로 쓰여져 있습니다만 일단 이쪽에서도 할 수 있었으므로 소개하였습니다!
  • 좋은 웹페이지 즐겨찾기