【iOS】ライブラリが「arm64」に対応していないから?
iOSアプリをビルドする必要が出る度に、最新版のXcodeをダウンロードしなきゃいけないのが面倒臭いし(SDKだけ差し替えられるのだろうか?)、最新版のXcodeでビルドする度に見慣れないエラーが出て、イライラしてしまう。アーキテクチャーや環境に対する理解ができていないのがまずいのだけど。
今回発生した問題とその対応を以下にメモ。
・環境:OS X バージョン 10.9.3、Xcode Version 5.1.1
ld: warning: ignoring file /Users/hoge/Documents/Project/XXX/XXX/libdblib.a, missing required architecture arm64 in file /Users/hoge/Documents/Project/XXX/XXX/libdblib.a (3 slices) Undefined symbols for architecture arm64: "_OBJC_CLASS_$_dbLib", referenced from: objc-class-ref in XXXXXXCommonLib.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Project -> Build Settings -> Architectures -> Architectures の値を「$(ARCHS_STANDARD)」から「armv7, armv7s」に変更
その後、アプリを Archive し、「Save for Enterprise or Ad Hoc Deployment」でパッケージを作成し、テスト用配布サイトで配布したところ、「Appをダウンロードできません〜」というエラーが出たが、Schemeを「iOS Device」にし、Archive〜パッケージ作成することで解消できた。しかし、再現できないので本当にSchemeが原因だったのかは不明である。