酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Facebook SDKをCarthage経由でインストールする (2020年3月版)

開発中のアプリでFacebook認証したいという要件が追加され、およそ2年ぶりにFacebook SDKを導入することになった。CIがJenkinsではなくbitriseに移行しているため、ビルド時間短縮のためにCarthage経由でインストールしたらしっちゃかめっちゃかになった記録です。

Facebook SDKをインストールする

Facebook SDKのインストール自体はとても簡単で、Cartfileに以下のように追記します。

github "facebook/facebook-ios-sdk" "v6.2.0"

以下のframeworkを追加する。

  • FBSDKLoginKit.framework
  • FBSDKCoreKit.framework

で、完了です。

Facebook SDKのインストール自体はとても簡単……なはずなのですが、最新版 v6.3.0はインストールに失敗する環境となっており、1回のビルドに20分超かかってしまうCarthage bootstrapを何度も実行するハメになってしまいました。(2020/04/03現在)

トラブル

今回のFacebook SDK導入で発生したトラブルについてです。

古いFacebook SDKをインストールしていた

元々Facebook SDK for iOSのCarthageでの配布していなかったのか、下記のCarthageをインストールするように書かれていたページがありました。

最新のFacebook SDK for iOSのリポジトリは以下の通りです。

Facebook SDK v6.3.0のインストールに失敗する

CocoaPods/Carthageともにv6.3.0のインストールに失敗する旨がIssueにあがっていた。

タイミングが悪かった。ひとつ前のバージョンの v6.2.0 をインストールすることにした。

Facebook認証画面が表示されない不具合

Facebook認証画面が表示されない不具合が発生した。これが一番致命的で頭を悩ませた。

  • iOS 12.4.1 + Facebookアプリなし
    • Facebook認証画面が表示される
  • iOS 13.3 + Facebookアプリあり
    • Facebook認証画面が表示されない
  • iOS 13.4 + Facebookアプリあり
    • Facebook認証画面が表示された

経緯は以下の通り。