現在、Xcode 9はベータ版であり、今日の主な関心はiOS 11の知識を得ることであるという事実を考えると、疑問は明らかに奇妙です...
Xcode 9ベータ版で作業中にiOS 10をベースSDKとしてターゲットにする方法はありますか? Xc8の以前のOSの場合と同じ方法でXcode 9のSDKをパッケージ化するには、Appleが必要ですか?
なぜこれが必要なのでしょうか?
a)最初に頭に浮かぶのは、iOS 10から11への変更を必要とするが現在iOS 10で実行する必要があるコードを含むプロジェクトで、Xcode 9の素敵な新しいリファクタリングツールを使用することです。
b)実験のため。
this および this を使用すると、Xcode 9ベータ4を使用してSDK10.3に対してコンパイルできました。[〜#〜 ]多くの[〜#〜]警告。
警告1:Xcode GUIは、複数のiPhone SDKを同時に検出できないようです。そのため、ベースSDKとして10.3と11.0を切り替えることはできません。
警告2:Xcode 9に付属のSwiftコンパイラーは、11.0未満のiPhone Simulator SDKのターゲット設定をサポートしていません。しようとするとこのエラーが発生します:
エラー:SwiftはSDK 'iPhoneSimulator10.3.sdk'をサポートしていません
警告3:これらすべてを行っても、iOS 11がリリースされる前にアプリをリリースする意図でアプリを送信することはできません起動しました。古いベースSDKを使用する唯一の利点は、iOSプラットフォームの特定の特別な状況を利用することです。注目すべき例の1つは バックグラウンドVoIPソケット であり、iOSの歴史全体に散在しているような他のいくつかの例があります。
レガシーVoIPアーキテクチャは、iOS 8の新しいPushKitベースのアーキテクチャに置き換えられました。その後、iOS 9 SDKで正式に廃止されました。 iOS 10では、互換性の手段としてのみ使用できます。アプリが古いSDKにリンクされている場合は引き続き機能しますが、iOS 10 SDKにリンクしている場合は無効になります。
警告4:これは、純粋に客観的なCプロジェクトでのみ実行できます。 10.3 SDKとXcode 9に付属のSwiftコンパイラーのバージョンとの間には、いくらかの非互換性があるようです。具体的には、このエラー:
...方法は次のとおりです。
Xcode 9の11.0 SDKをXcode 8.3.3の10.3 SDKに置き換えて、次のファイルを置き換えます。
Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
ここからのファイルで:
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
このファイルのMinimumSDKVersion
値を11.0から10.3に変更します。
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
Xcode 9ベータ4では、以前のすべてのシミュレータをダウンロードして使用できます。回避策はもう必要ありません。画像に表示されている[シミュレータのダウンロード]メニュー項目(最後の項目)をクリックしてシミュレータをダウンロードするだけです。