Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2020年09月23日

CocoaPodsでライブラリをインストールしたプロジェクトを、Xcode12でiOSシミュレータ用にビルドすると、Building for iOS Simulator, but linking in dylib built for iOS, for architecture arm64とエラー表示される場合の対処法



CocoaPodsでライブラリをインストールしたプロジェクトを、Xcode12でiOSシミュレータ用にビルドすると、下記メッセージが表示されてエラーとなる場合の対処法。
Building for iOS Simulator, but linking in dylib built for iOS, for architecture arm64


Showing All Messages Command PhaseScriptExecution failed with a nonzero exit code


本件は、Xcode12ではiOSシミュレータにarm64を除外する必要があることが原因のようである。

1. podfileを下記の通り修正し、pod installを実行する。

post_install do |installer|
  installer.pods_project.targets.each do |target|
   target.build_configurations.each do |config|
    config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
   end
  end
end


target 'YOUR_PROJECT_NAME' do
  use_frameworks!
  pod 'Hoge'
end


2. Xcodeを起動し、該当するプロジェクトを開き、Build Settingsを更新する。
(1) プロジェクトのTARGETS -> Build Settings -> Architectures -> Excluded architectures で、Debug、Releaseの項にAny iOS Sumurator SDKを追加し、下記を入力する。
arm64


(2) プロジェクトのTARGETS -> Build Settings -> User-Defined -> VALID_ARCHS の項を下記の通りに変更する。
$(ARCHS_STANDARD)


(3) PodsのTARGETS -> Build Settings -> Architectures -> Excluded architectures で、全ての項(Debug、Release等)に arm64 が設定され、podfileの内容が反映されていることを確認する。


上記の設定でも、ビルドがエラーとなる場合は、下記の修正を行う。
・プロジェクトのTARGETS -> Build Settings -> Architectures -> Build Active Architecture Only で、下記を入力する。
NO



プロジェクトの環境設定内容によっては、修正箇所が若干異なる可能性があるが大体これでうまくいくようである。


参考記事:
https://stackoverflow.com/questions/63607158/xcode-12-building-for-ios-simulator-but-linking-in-object-file-built-for-ios
https://developer.apple.com/forums/thread/658424
https://developer.apple.com/forums/thread/657913
posted by mobileDeveloper at 19:31 | Comment(0) | トラブルシューティング はてなブックマーク - CocoaPodsでライブラリをインストールしたプロジェクトを、Xcode12でiOSシミュレータ用にビルドすると、Building for iOS Simulator, but linking in dylib built for iOS, for architecture arm64とエラー表示される場合の対処法 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。