ものぐさ日記(仮)

特にテーマはありません。仕事のこと、趣味のこと、思いついたこと、だらだら綴っていきます。

【iOS】ライブラリが「arm64」に対応していないから?

 iOSアプリをビルドする必要が出る度に、最新版のXcodeをダウンロードしなきゃいけないのが面倒臭いし(SDKだけ差し替えられるのだろうか?)、最新版のXcodeでビルドする度に見慣れないエラーが出て、イライラしてしまう。アーキテクチャーや環境に対する理解ができていないのがまずいのだけど。

 

 今回発生した問題とその対応を以下にメモ。

 

・環境:OS X バージョン 10.9.3、Xcode Version 5.1.1 

ld: warning: ignoring file /Users/michio/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 HamayaCommonLib.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が原因だったのかは不明である。