i-mobile & Cocos2d-x で Xcode 12 のビルドエラー対応

はじめに

Xcode 12 以降で、実機では問題なくビルドが通るのに、シミュレータではエラーになる現象が発生しました。

building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

i-mobile や Cocos2d-x, Firebase 等の、サードパーティ製ライブラリで同様のエラーになるようです。

対処

1. VALID_ARCHS を削除

Project Navigator からプロジェクトを選択し、[TARGETS] > [Build Settings] > [User-Defined] の「VALID_ARCHS: arm64, armv7」をキーごと削除します。

2. Excluded Architectures に arm64 を追加

Project Navigator からプロジェクトを選択し、[PROJECT] > [Build Settings] > [Architectures] > [Excluded architectures] の Debug と Release の両方に、「Any iOS Simulator SDK: arm64」を追加します。

3. ライブラリの設定

上記 1, 2 の処置を、Cocos2d-x ライブラリ(cocos2d_libs)にも行います。

4. クリーンビルド

クリーン

[Product] > [Clean Build Folder] でキャッシュを削除します。

キャッシュの削除

Xcode を Quit Xcode (Command + Q) で終了させ、
以下のキャッシュを削除します。

rm -rf ~/Library/Developer/Xcode/DerivedData/プロジェクト名*
rm -rf ~/Library/Caches/com.apple.dt.Xcode
ビルド

Xcode を立ち上げて、[Product] > [Build] を実行すればビルドが通ると思います。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください