iOS 14 に備えて、Xcode 12 (ベータ 5) で大規模な (Xcode 11 で作業中の!) プロジェクトをビルドしようとしています。コードベースは以前は Objective-C でしたが、現在は Objective-C と Swift の両方が含まれ、Objective-C や Swift のポッドも使用しています。
新しいベータ版をリリースしましたココアポッドXcode 12 をサポート (現在は 1.10.0.beta 2)。
Pod のインストールは成功しました。ビルドを実行すると、Pod フレームワークで次のエラーが発生します。
iOS シミュレータ用にビルドされていますが、iOS 用にビルドされたオブジェクト ファイルにリンクされています (アーキテクチャ: arm64)
また、次のエラーも発生する可能性があります:
ターゲット 'arm64-apple-ios11.0' の標準ライブラリをロードできません
lipo -info
フレームワークで実行すると、armv7s armv7 i386 x86_64 arm64 になります。
以前は、プロジェクトの有効なアーキテクチャはarmv7、armv7s、arm64 に設定されていました。
Xcode 12 では、Apple のドキュメントにあるように、その設定はなくなりました。アーキテクチャは $(ARCHS_STANDARD) に設定されています。除外アーキテクチャには何も設定していません。
ここで何が起こっているのでしょうか? まだ、より単純なプロジェクトでこれを再現できていません。
ベストアンサー1
arm64
基本的に、プロジェクトと Pod プロジェクトの両方からシミュレータ アーキテクチャを除外する必要があります。
または
カスタム
XCConfig
ファイルを使用している場合は、シミュレータ アーキテクチャを除外するためにこの行を追加するだけです。EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
それから
すべての Cocoa pod ベンダーがPodspecに以下を追加するまで、 Pod プロジェクトに対しても同じことを行う必要があります。
s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
Pod プロジェクトのビルド設定で除外アーキテクチャを手動で追加できますが、 を使用すると上書きされます。
pod install
代わりに、 にこのスニペットを追加できます。を実行するたびに、必要なビルド設定
Podfile
が書き込まれます。pod install
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end