問題
Cordova(PhoneGap)で作ったアプリを実機でビルドしようとすると、動かなかった。シミュレータでは起動していたのに…。
ログを見ると、
...
"_OBJC_CLASS_$_CDVWebViewDelegate", referenced from:
objc-class-ref in CDVInAppBrowser.o
"_OBJC_METACLASS_$_CDVViewController", referenced from:
_OBJC_METACLASS_$_MainViewController in MainViewController.o
"_OBJC_CLASS_$_CDVPlugin", referenced from:
_OBJC_CLASS_$_CDVDevice in CDVDevice.o
_OBJC_CLASS_$_CDVConnection in CDVConnection.o
_OBJC_CLASS_$_LowLatencyAudio in LowLatencyAudio.o
_OBJC_CLASS_$_CDVLogger in CDVLogger.o
_OBJC_CLASS_$_CDVInAppBrowser in CDVInAppBrowser.o
_OBJC_CLASS_$_InAppPurchase in InAppPurchase.o
"_OBJC_METACLASS_$_CDVPlugin", referenced from:
_OBJC_METACLASS_$_CDVDevice in CDVDev
...
みたいなのがズラーッと出た。
解決
http://stackoverflow.com/a/22497592 この回答の通りに行った。
-
対象のプロジェクトの
Targets
の中にあるBuild Settings
に移動 -
Valid Architectures
の中身を確認。 -
armv64
の記述を削除 -
armv7
とarmv7s
の2つが残っているのを確認。 -
その後ビルドし直すと解決する。
どうもXcodeのアップデートで、arm64
というアーキテクチャがアップデートされていないのが問題らしい。