Xcode12でCocos2d-x-3.17.2をビルドする際のエラーについて

2020年12月4日

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

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 が設定されていることが確認できます。

CocosプロジェクトのVALID_ARCHSの設定

Cocosのlibjscocos2dのVALID_ARCHSの設定

これらをキーごと削除します

これによって、シミュレーターで求められている x86_64 のビルドが行えます。

CFBundleShortVersionStringがない

Info.plist に以下のキーがないとエラーが出ました。

The application’s Info.plist does not contain CFBundleShortVersionString.

The application's Info.plist does not contain CFBundleShortVersionString.

“Bundle version” とは別に “Bundle version string (short)” を設定し、値を ${MARKETING_VERSION} に設定することで解消しました。

CFBundleShortVersionStringをInfo.plistに設定

以上の変更によってシミュレーターでも動作するようになると思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です