Xcode14.3でシミュレータをRosettaで動かす
Apple Siliconのマシンを使っていて、とあるプロジェクトをビルドしていたら、こんなエラーに遭遇しました。
In /Users/takayama/ghq/github.com/ktakayama/something-ios/Pods/OpenTok/OpenTok.framework/OpenTok(OpenTok-arm64-master.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/takayama/ghq/github.com/ktakayama/something-ios/Pods/OpenTok/OpenTok.framework/OpenTok'
Linker command failed with exit code 1 (use -v to see invocation)
arm64に対応していないライブラリを使っているみたいでして、シミュレータ用のビルドでエラーが発生です。
XcodeをRosettaで起動させたらよいんじゃなかろうか?と思ったりしたんですけども、すでに私の開発環境は最新の14.3にあげておりまして、ご存知の通りXcode14.3ってRosettaのサポートが終了しているんですよね。当時話題になってたときは、関係ないもんね〜なんて思っていたけど、いやはや運命とはかくも恐ろしい。
今から古いXcodeを入れるのもダルいんでなんとかできないかなと思っていたところ、普通になんとかなりました。端的に言うと、シミュレータをRosettaとして起動して使うことができるみたいです。
まずはRosetta対応のシミュレータを選択できるようにします。プロジェクト毎に選択が必要かと思います。Productメニューから選ぶ感じです。
Product > Destination > Destination Architectures > Show... |
---|
![]() |
するとこのように、デバイスの選択メニューにRosettaの輝かしい文字が!!!こいつを選択してビルドしたら、冒頭の問題が再発することもなく無事に動かすことに成功しました。最高ですね!
![]() |
---|
とまあこんな簡単にすみましたという話であります。
Discussion