Unity向けのnendSDKを利用したときに、Xcodeで「"_kSecValueData", referenced from...」が表示されるときの対処方法
宣伝ばかりではあれなので、たまには技術的な情報でも。
問題点
UnityにNend SDKを使ってXcodeで実機テストしようとしたところ、以下のメッセージがされることがある。
Undefined symbols for architecture armv7:
"_kSecValueData", referenced from:
-[UIApplication(UIApplication_UIID) uniqueInstallationIdentifier] in libNendAd.a(NADIdentifier.o)
"_kSecReturnData", referenced from:
-[UIApplication(UIApplication_UIID) uniqueInstallationIdentifier] in libNendAd.a(NADIdentifier.o)
"_kSecMatchLimitOne", referenced from:
-[UIApplication(UIApplication_UIID) uniqueInstallationIdentifier] in libNendAd.a(NADIdentifier.o)…(以下略)...
解決手段
上記2つのframeworkを追加することで解決する。
- Xcordを開く
- 「Build Phase」-「Link Binary With Libraries」を開く
- +ボタンから、「Security.framework」を追加する
- +ボタンから、「AdSupport.framework」を追加する
これでビルドが通るようになる。
なお4の手順を忘れてしまったときには、以下のようなエラーが出力されてビルドができないので注意が必要である。
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_ASIdentifierManager", referenced from:
objc-class-ref in libNendAd.a(NADIdentifier.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)