生成ライブラリのTarget Platformの注意 – Undefined Symbols for arm xxx
Xcodeでライブラリを作って,いざ,Unityに取り込むときに失敗する事があります.
原因は,Xcodeで生成したライブラリはarm系アーキテクチャに対応する様に設定しているにもかかわらず,対応していない事が原因です.
生成ライブラリの対応アーキテクチャ(例:armv7, i386, x86_64など)は,XcodeでLibraryのTarget Platform(例:実機 / iOSシミュレータ / Generic iOS Device)の選択で変化する事に注意が必要です.
Xcodeで実機 又は Generic iOS Deviceを選択してビルドすると,arm64, armv7, armv7sアーキテクチャ対応ライブラリ(Static Libで.a拡張子)となりました.(対応アーキテクチャはXcodeの"Valid architectures"に記述したアーキテクチャに対応するかもしれません)
Unityへ取り込む時は,上記設定で生成したライブラリである必要があります.
一方,Simulator(例:iPhoneXシミュレータ)を選択してビルドすると,i386, x86_64アーキテクチャ対応なライブラリとなるようです.
Unityでビルドする,すなわち,実機でのテストを意味するのでarmアーキテクチャでなければならないにもかかわらずPC向けCPUアーキテクチャ用に生成したライブラリで取り込みが失敗する.
注意追記
私の環境は,Xcode9のせいか,"Build Activate Architecture Only"をNoにしても,期待した効果は得られず,上記の説明した設定に従う必要がありました.