Table of Contents
Cocos2d-x の最新バージョンは既に v4 ですが、3.系のアプリを Xcode12.2 で触れる機会がありました。
iOSアプリをビルドする際に Xcode12 からは今まで現れなかったエラーが出るようになっていたので、その解決方法について記載しておきます。
architectureがarm64であるとエラー
実機では問題なく動く場合でも、シミュレーターで実行しようとすると以下のエラーが出ます。
ignoring file libcocos2d iOS.a, building for iOS Simulator-arm64 but attempting to link with file built for iOS Simulator-x86_64
“libcocos2d iOS.a” を arm64 用にビルドしていますがシミュレーターは x86_64 用であるということです。
原因はプロジェクトのターゲットおよびライブラリ libjscocos2d のターゲットの設定です。”Build Setting”を開き VALID_ARCHS というユーザー設定を検索してください。デフォルトでは以下のように arm64 と arm7v が設定されていることが確認できます。
これらをキーごと削除します。
これによって、シミュレーターで求められている x86_64 のビルドが行えます。
CFBundleShortVersionStringがない
Info.plist に以下のキーがないとエラーが出ました。
The application’s Info.plist does not contain CFBundleShortVersionString.
“Bundle version” とは別に “Bundle version string (short)” を設定し、値を ${MARKETING_VERSION} に設定することで解消しました。
以上の変更によってシミュレーターでも動作するようになると思います。