xcodeでのBase SDK、iOSデプロイメントターゲット、ターゲット、およびプロジェクトの意味は何ですか


161

ベースSDKを7に設定したとしましょう。どういう意味ですか?これは、アプリがiOS 7で実行されることを意味する可能性がありますが、それがiOS展開ターゲットの目的です。

また、プロジェクトとターゲットの両方でこれらの3つの値を指定するのはなぜですか。それは意味がありません。なぜ同じものを2回指定するのですか?


これに対する良い簡潔な回答が別の新しい質問にあります。stackoverflow.com
Chris Rae

回答:


79

ベースSDKは、アプリをビルドする対象です(つまり、インクルードファイル、ライブラリファイル、フレームワーク)。あなたが言うように、ベースsdk> =デプロイメントターゲットを除いて、それはデプロイメントターゲットに影響を与えません。

各プロジェクトは複数のターゲットを持つことができ、すべてのターゲットに同じ設定をしたくない場合があるため、2つのレベルでビルド設定を指定します。プロジェクトレベルの設定はデフォルト設定を上書きし、ターゲットレベルの設定はプロジェクトレベルの設定を上書きします。

たとえば、OSXとiOSの両方のターゲットを持つプロジェクトがあり、ARCとMRRがあります。Xcodeが許可する細かさのレベルでビルド設定を指定できなかった場合は、それぞれに異なるプロジェクトが必要になります。


196

ではiOSの7 TechTalk、セッション設計する現代のアプリは、パート2は、彼らは明らかにこれを説明します

ここに画像の説明を入力してください

グッドは読んこんにちは!#available!

そのため、最新のアプリはiOS 9をターゲットSDKとして使用し、iOS 7を展開ターゲットとして使用する場合があります。つまり、iOS 7、iOS 8、iOS 9で実行でき、実際にiOS 9で実行しているときに、iOS 9の通話を利用できます。

あなたは私のポストSDKとDeployment Targetでもっと読むことができます


20
良い参考資料です。この部分は、この50分のビデオの25:17頃に埋め込まれています。
ダニエル

2
いいね!しかし、Base SDK = 7.0を設定し、iOS 8.0にインストールしようとするとどうなりますか?常に最新のBase SDKをサポートするために、最後のXCodeをダウンロードする必要がありますか?
GoRoS

1
@GoRoSベースのSDKがiOS 8未満の場合、アプリはサポートされません(ユーザーはアプリストアからインストールできません)。UIKit / Foundationは動的ライブラリであるため、Xcodeまたはバイナリを介して強制された場合、正常に機能する可能性がありますが、アプリはいつでもクラッシュする可能性があり、通常は不安定です。ベースSDKは常に対応するXcodeバージョンに付属しています。ただし、Xcode用のBase SDKはシミュレータ用であり、デバイス上のものとは異なる場合があります。したがって、出荷する前に実際のデバイスでテストすることが重要です。これは、すべての動的ライブラリの問題です。
Kunal Balani 2016

2
@chichilatteいいえ、必要ありません。アプリは引き続きiOS 12、iOS 13 ...をサポートしていますが、iOS 12、iOS 13 ...の新機能はありません。iOS12の新機能を使用するには、iOS 12 SDKに対してコンパイルして使用する必要があります。 iOS 12のAPI
onmyway133

2
ありがとう、それは理にかなっています。上記の@ Kunal-Balaniのコメントは間違っていると思います。
chichilatte

67

ベースSDKは、リンク先のSDKです。Deployment Targetは、アプリケーションを実行するために必要な最低限のiOSバージョンです。iOS 6で実行されるSDK 7を使用してアプリケーションを構築できますが、iOS 6では使用できない関数やメソッドを使用しないように注意する必要があります。使用すると、iOS 6でアプリケーションがクラッシュします。この機能を使用します。

詳細については、アップルのドキュメントを参照してください。https//developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.