ParseのiOS SDKのLinker Errorを解決する2つの方法


とあるiOSアプリの開発にプッシュ通知の実装にBaaSのParseを使うことになりました。このParse(1.2.13を使用)を使う時、Build Settings の Other Linker Flags に -ObjC と記述があるとリンクに失敗してエラーがでます。画像の赤い四角で囲われた部分ですね。
リンカーフラグ
このエラーの解決には2通りの方法があります。

1. -ObjC を削除

この記述はXcodeでプロジェクトを作成したときにデフォルトであるのですが、これを削除しても外部ライブラリを使っていない場合は問題はありません。削除しましょう。
ただ、外部ライブラリを使っているとこの記述が必要な時があります。今回は大変便利な画像取得ライブラリSDWebImageを使っていて、SDWebImageが -ObjC を必要としていました。そのためふたつめの解決策を取りました。

2. FacebookSDKをいれる

FacebookSDK.framework
今回のエラーはFacebookSDK for iOS(以下FacebookSDK)にリンク出来ないことから発生しています。どうしてそうなっているかはわからないのですが、とにかくFacebookSDKにリンクできればオーケーです。

https://developers.facebook.com/docs/ios/

からFacebookSDKをダウンロードし、FacebookSDK.frameworkと標準SDKのSocial.frameworkとAccounts.frameworkを追加します。これで今回のエラーは解消されてビルド出来ました。Facebookを使わないプロジェクトでもこれをしないとビルド出来ないので、なんとも変な感じで、嫌なハックですが、ご査収ください。

参考サイト

http://stackoverflow.com/questions/15457136/parse-for-ios-errors-when-trying-to-run-the-app

https://parse.com/questions/cocoapods-incompatibility

この記事に対してコメントを書く