web-dev-qa-db-ja.com

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

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

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

150
user4951

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

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

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

75
trojanfoe

iOS 7 TechTalk のセッションArchitecting Modern Apps、パート2では、これを明確に説明しています

enter image description here

よく読んでください こんにちは!私は#available!

そのため、最新のアプリでは、iOS 9をターゲットSDKとして使用し、iOS 7を展開ターゲットとして使用する場合があります。これは、iOS 7、iOS 8、およびiOS 9で実行できること、および実際にiOS 9で実行しているときにiOS 9コールを使用できることを意味します。

あなたは私の投稿でもっと読むことができます SDKと展開ターゲット

188
onmyway133

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

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

66
V1ru8

Base SDKは最大で、これは常にtools/Xcodeおよび付属の最新のSDK/OSサポートによって制御されます。現在のリリースよりも低いSDK/OS最大バージョン(ベースSDK)をサポートする場合は、古いバージョンのXcodeを使用する必要があります。 Xcode Xcode 10以降、正確なバージョンはXcodeのバージョンによって異なります(たとえば、Xcode 10.1を使用している場合、iOSは12.1になります)。たとえば、シミュレータSDKを使用してビルドする場合、バイナリはベースSDKと同じオペレーティングシステムバージョンでのみ実行されます

Deployment Targetは、アプリがサポートするiOSの最小バージョンを指定します。そのため、アプリのDeployment Targetは常にそのベースSDK以下に設定する必要があります。コードを実行する最低のバージョンに設定する必要があります。

ソースへのリンク および リンク

0
yoAlex5