ParseSDKをver1.6.1からver1.6.4に更新したら以下のリンクエラーがでるようになった。
1 2 3 4 5 6 |
Undefined symbols for architecture arm64: "_BFTaskMultipleExceptionsException", referenced from: ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o) ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) |
BFTaskMultipleExceptionsExceptionは、Bolts.frameworkの最新版(ver1.1.4)ではBFTask.hに
1 |
extern NSString *const BFTaskMultipleExceptionsException; |
として定義されている。
しかし、現状の環境下で参照してるバージョンでは定義されていないらしい。
現状の環境は、
- ParseSDK Ver1.6.4
- FacebookSDK Ver3.20.0
Bolts.frameworkはFacebookSDKに含まれていて、このBolts.frameworkはver1.1.3であり、BFTask.hには上記の定数は定義されていない。
だからといって、Bolts.frameworkの最新版(ver1.1.4)を個別にリンクしようとすると、FacebookSDKが持つBolts.frameworkとduplicate symbols のリンクエラーを生じる。
FacebookSDKを最新版のver3.23.1にアップグレードしても、Bolts.frameworkのバージョンは同じくver1.1.3なので状況は変わらない。
FacebookSDKが参照しているBolts.frameworkを手動で最新版へ変更する手段が私には分からないので、ParseSDKのバージョンを元に戻して、FacebookSDK側の対応を待つことにする。