Xcode 10.3をHigh Sierraで動かす
これまでに10.2を動かしてきた方法と全く同じ方法で10.3も動くことを確認したので更新しておく。
古いMac Proを使っていてNVIDIAのグラボを載せている場合、MojaveにアップデートするとドライバーがなくてCUDAなどのGPU機能は使えなくなる。そこでHigh Sierraの利用を続けているのだが、同じマシンでiOSの開発もしたい場合にXcode 10.1ではiOS 12.1までしかビルドできず、最新の12系である12.4.1をターゲットにしてビルドすることはできない。
そこでXcode 10.3をHigh Sierraで動かしたいと言う需要が生まれる。
Xcode 10.3をHigh Sierraで動かすにはXcode 10.3をApp Storeによらずダウンロードしなくてはいけないので開発者登録が必要となる。
準備
Xcode 10.3はMore Downloads for Apple Developersからダウンロードできるが、開発者登録が必要。
デベロッパーアカウントとパスワードを聞かれるので回答すると、一覧が現れるのでそこからXcode 10.3を選んでダウンロードする。ダウンロード後は解凍しておく。フォルダ名はXcodeになっている。
これまで動いていた10.xの名前をXcode10.xなどと改名しておく。(xは1や2)
Xcodeのinfo.plistを改変
Xcode 10.3の方をアプリケーションに移動する。右クリックでコンテクストメニューを出し、「パッケージの内容を表示」で中身を表示させる。info.plistというファイルがあるのでそれを古いバージョンのXcode 10.xで開く。
下の方にMinimum system versionがあり、10.14.3とあるので10.13.6に置き換える。
FileMergeのinfo.plistを改変
同じくContentsの中にApplicationsというフォルダがあるのでその中にFilMargeというフォルダがある。これもXcodeと同様にして開くとまたinfo.plistがあるのでここでも同様にしてMinimum system versionの10.14.3を10.13.6に置き換える。
Developer-Applications-Simulatorのinfo.plistを改変
またContentsに戻ってDeveloperというフォルダ内にあるApplicationsというフォルダがあり、その中のSimulatorフォルダをXcodeと同様に右クリックで中身を表示させる。
やはりContentsフォルダがあり、そこにあるinfo.plistというファイルをこれまでと同様に編集する。今度は10.4を10.3に変更する。
改変後の初回起動
3つのファイルを変更したらXcodeを起動する。追加ファイルのダウンロードを問われるのでその通りにして、起動を続行する。
あとはこれまで用いていたプロジェクトを開いてターゲットが12.4に変更できることを確認する。
プロジェクトをSimulatorで走らせそのバージョンが12.4になっていることを確認する。
できればiOS12.4の実機でも動作を確認する。当方ではiPhone 5s、iPhone 6s plusで動作確認を行ったが問題はなかった。
ただし、すべてのアプリで有効かを確認したわけではないので、実際にAppleへアプリを提出するまでにはMojaveマシンを用意した方が良いかもしれない。
2020年4月からはiOS13へ対応しなくてはいけなくなる(Submit Your iOS Apps to the App Store)らしいので、それまでのつなぎだろう。
参考にさせて頂きXcode 10.2.1で試したところ、下記のメッセージが表示され
起動しません。何かしら追加で変更が必要でしたらアドバイスをお願い致します。
このバージョンのアプリケーション“Xcode”は、このバージョンのmacOSでは使用できません。macOS 10.13.6を使用しています。このアプリケーションを使用するにはmacOS 10.14.6以降が必要です。
コメントありがとうございます。
Xcodeの起動ですが、Terminal(コンソール)からやるとそのエラーが出るのではと思います。Finderからアイコンをダブルクリックで実行すると問題なく起動するはずですが。お試し頂けるでしょうか?
gitなどのツールもXcodeのGUI内では動作させられますが、やはりTerminalで実行しようとすると同じエラーが出ます。
今回のやり方はあくまでもMojaveを使いたくないがiOS12.2プロジェクトのビルドはしたいiOSデベロッパー向けのものですね。特にNVIDIAのグラボを搭載しているとMojaveではDriverがないんですよ・・・。
追加情報
上記でダメならStack Overflowの方で私の投稿に対するコメントにあった
sudo xcode-select -s /Applications/Xcode旧バージョン.app/Contents/Developer
をTerminalで実行してみてはどうでしょう?これではgitなどのコンソールアプリケーションも動作させられ、必要に応じてxcodebuildなどのバージョンを可逆的に変更できます。
このcommandで新しいXcode 10.2.1かXcode旧バージョン、どちらに設定してもうちではFinder起動したXcodeアプリケーション上でビルドターゲットをiOS12.2にしてご指摘のエラーなしに実機iPhoneで対象プロジェクトをビルド実行できるようです。
あと、特定のプロジェクト(設定)で出ると言うことが考えられなくはないので、新規プロジェクト作成してビルドするとOKと言う場合もあります。
いずれにせよTOMさんの設定が分からない段階で考えられるのは上の解決法くらいでしょうか。
xcodebuildもバージョン制限に引っかかるようで最初の使用承諾でひっかかります。これは古いバージョンを先に入れておくとかすると回避できるんでしょうか?あるいはxcodebuildのバージョン制限変更方法があるとか?
コメントありがとうございます。
基本的にターミナルで行う操作はアウトだと思っていた方がいいでしょう。
このレシピはあくまでもXcodeのmacOSのウインドウが開くタイプのアプリケーションを「騙す」ためのものです。
Stack Overflowの方の私(tripod)のコメントに対する応答にあるようにgitなどもターミナルでは動作させられません。(GitHub関連、ウインドウが開くタイプのアプリケーションでは問題ありません。)
同じ人がコメントしているように
sudo xcode-select -s /Applications/Xcode-10-1.app/Contents/Developer (インストールディレクトリに依存します。)
を実行すればターミナル上では旧バージョンのコマンドラインツール類が動作させられます。新しい方へもどすのはディレクトリ、ファイル名を新しい方にしてやればいいです。
ただiOS12.2向けのプロジェクトを作成、デバイスへインストールする必要がありましたらコマンドラインではなく、ウインドウの開くタイプのアプリケーションでやる必要があるのではと思います。
以上、よろしくお願いします。