今回は、FlutterからiOS Simulatorで実行する際に発生するエラー、「building for iOS Simulator, but linking in dylib built for iOS, “xxx” for architecture arm64」の解決方法を紹介します。
M1のMacを使用されている方に発生しているエラーのようです。該当される方は是非参考にしてみてください。
arm64とは
エラー文に記述されている「arm64」とはCPUの基本設計の一つです。CPUを形作る形式には色々と種類があり、その中の一つが「arm64」です。
その他には、「x86」や「x64」などが有名ですね。
「arm64」はイギリスのArm社が、先述の「x86/x64」はアメリカのIntel社が開発、設計しています。
ここでMacのM1の話にも触れておくと、こちらのデバイスからMacはIntel製のチップではなく、Apple独自のApple Silicon(通称M1)を内蔵するようになっています。
こちらのM1チップがarmアーキテクチャを使用して設計したチップです。それに伴い、今回のエラーが発生しているということにつながります。
CPUのアーキテクチャに関する記事は色々あります。以下の記事なども勉強になるかと思いますので、興味があればご覧ください。
「building for iOS Simulator, but linking in dylib built for iOS, “xxx” for architecture arm64」解決方法
今回のエラーを解決するためには「Podfile」の内容を修正する必要があります。
「ios」ディレクトリの中にある「Podfile」を開いてください。
Podfileを一度も修正したことがない人は、その中の一番下にこのような記述があるかと思います。
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
こちらの中に以下の記述を加えます。
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
こちらの記述を加えた結果は以下です。
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
//ここから追加
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
//ここまで
end
こうすることでM1チップで利用されている「arm64」を用いた実行を行うことができます。
おわりに
今回は、FlutterからiOS Simulatorで実行する際に発生するエラー、「building for iOS Simulator, but linking in dylib built for iOS, “xxx” for architecture arm64」の解決方法を紹介させて頂きました。
今までのMacではうまく動作していたけどM1搭載のMacに変えた途端うまく動作しなくなった方などは、今回の方法で解決できるかと思います。
当ブログではプログラミング学習に関する記事を執筆しております。他にもFlutterに関する記事を用意しておりますのでぜひ合わせてご覧ください。
最後まで読んでくださりありがとうございました。
コメント