Xcode8でiOS11(11.1)のアプリをビルドする方法
Xcode8でiOS11(11.x)のアプリをビルドする方法
色々とXcodeバージョン9は問題があるみたいですね。
機能的には色々と良くなっているみたいなんですが、最近はApple社の開発環境にいくら腹を立てても、決して改善されることはないので、「まあそのうち改善されるだろう」なんて感じで、Apple社の開発関連に関しては期待は全くありません。
ちなみに自分はXcodeのバージョン1から使ってます。
MacOSは6.3のマルチファインダーぐらいのときに、Think CなどのApple社以外の開発ツールでよくソフト開発をしたものです。(笑)
話がそれましたが、Xcodeバージョン9でビルドするとUINavigation、UISearchBar関連はボロボロです。
歴史的にはiOS6からiOS7のフラットデザインに変わったときに大きな変更がありましたが、今回のiOS11でもUINavigation、UISearchBar関連は大きく変わりDeveloper Forumなどでもかなりのスレッドあるようです。
そんな中、iOS11向けのアプリをXcodeバージョン8でビルドするとUINavigation、UISearchBar関連が正常に(元どおりに)動くという情報を得たので、メモとして残しておきます。
※この記事は、すべてご自身の責任の範囲でご参照ください。
Xcodeバージョン8とXcodeバージョン9を混在させる
まずはじめに、Xcodeバージョン8とXcodeバージョン9を混在させるインストールする必要があります。
Xcodeバージョン8とXcodeバージョン9を混在させる方法はいくつかあります。
1.現在Xcodeバージョン8のままの状態の人(AppStoreを使用する人)
MacのAppStoreでXcodeをインストールしている人は、Xcodeバージョン9へアップデートする前に/ApplicationsフォルダにあるXcodeを複製して、複製後に複製したXcodeをXcode8などへリネームします。
その後、AppStoreからXcodeの最新版をインストールします。
この方法でインストールするとXcodeのプロジェクトファイルをダブルクリックするとXcodeバージョン9が起動するようになってしまいますので、使用するXcodeのバージョンにはご注意ください。
自分はこの方法を使用しています。
この方法だと、AppStoreから一応最新版のXcodeのカレントバージョンを保持できますので。
2.現在Xcodeバージョン8のままの状態の人(AppStoreを使用しない人)
Xcodeバージョン9を自分でダウンロードして/Applicationsフォルダーにコピーします。
この方法ではAppStoreの通知などで、Xcodeの最新版を追うことができないので、都度自分で最新のXcodeをダウンロードする必要があります。
ダウンロードは、
https://developer.apple.com/download/more/
から行います。
現時点での最新版はXcode 9.0.1になります。
ダウンロードしたXcodeをXcode9などに(正確にはXcode9.app)改名し、/Applicationsへ移動します。
この方法でインストールしてもXcodeのプロジェクトファイルをダブルクリックすると、最新のバージョンのXcodeが起動してしまうようになったと思うので、使用するXcodeのバージョンにはご注意ください。
3.すでにXcode9へアップデートしてしまった人
Xcodeバージョン8をダウンロードしてきます。
Xcodeバージョン8の最終バージョンは、8.3.3です。
ダウンロードしたXcodeをXcode8などに改名して/Applicationsフォルダに移動します。
※Xcodeのダウンロードはかなりの容量があるので時間が結構かかります。
Xcodeバージョン8へバージョン9のiOS11へシンボリックリンクを張る
Xcodeバージョン9を改名せずにXcodeのまま、バージョン8をXcode8(正確にはXcode8.app)に改名したという前提で話を進めます。
その他に改名した方は赤い部分を自分の環境に合わせて変更してください。
以下のようにターミナルを起動して、2つのシンボリックリンクを張ります。
iOS11のディスクイメージ
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\) /Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0
iOS11.1のディスクイメージ
ln -s "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.1 (15B87)" "/Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.1 (15B87)"
iOS11.4のディスクイメージ
ln -s "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.4" "/Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.4"
※ターミナルで初回のみsudoを記載し、管理者権限が必要となります。
以上で、/Applicationsフォルダの中からXcode8を起動して、ビルドを行うと、iOS11(またはiOS11.1)をインストールしたiPhoneをテスト実機として利用することができるようになります。
当方、Xcode8、iPhone 8 64Gでこのテストを行いました。
以上、「Xcode8でiOS11(11.x)のアプリをビルドする方法」でした。