web-dev-qa-db-ja.com

Xcode 5にiOS 6 SDKをインストールすることは可能ですか?

Xcode 5にはiPhone 6.1シミュレータをダウンロードできる環境設定パネルがありますが、iOS 6 SDKをダウンロードできる場所が見つからないため、Xcode 5で開発するときにアクティブなSDKをiOS 6に設定することはできません。 Xcode 5でiOS 6 SDKをインストールできるようにするための回避策はありますか?

編集:

Xcode 5が一般に利用可能になり、以前のバージョンのSDKをダウンロードできるようになったため、回避策は必要なくなりました。

enter image description here

248
Tony

編集:2014年2月1日から、AppleはもはやApp Storeへの提出のためのiOS7以前のアプリを受け付けないでしょう。したがって、この手法はまだ機能しますが、ほとんどの読者には役立ちません。


はい、これで大丈夫です。私はまだ1つのプロジェクトのためにiOS 4.3で構築しています(私たちが更新してからしばらく経ちましたが、iOS 6が出てからもまだ受け入れています)。

設定方法の詳細については、 「基本SDK」として使用できるようにXcodeを古いSDKに設定する方法 を参照してください。アップグレードするたびに、私の fix-xcode スクリプトを使用してすべてのものをリンクできます。

唯一のトリックは古いSDKを入手することです。それらを持っていないのであれば、通常Xcodeの古いバージョンをダウンロードし(まだ developer.Apple.com で入手可能)、インストーラパッケージを開いて、SDKを見つけるために探し回る必要があります。あなたが必要です。

SDKは、インストーラパッケージ内の次の場所にあります。

Xcode.app/Contents/Developer/Platforms/

202
Rob Napier

私はxcode 5にアップデートしたときにも同じ問題を実行していましたが、それは古いsdkを削除しました。しかし、私は別のコンピュータからあなたが以下のリンクからダウンロードすることができるのと同じ古いSDKのコピーを取った。

http://www.4shared.com/Zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.comテストアカウント[email protected]/test)

には2つの方法があります。

1)このフォルダを/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKsに解凍して貼り付け、xcodeを再起動します。

しかし、あなたがxcodeを更新するならば、これは再びXcodeによって取り除かれるかもしれません。

2)もう1つの方法は、解凍して好きな場所に貼り付けて/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKsに移動し、シンボリックリンクを作成することです。あなたはXcodeを更新します。

私が行ったもう1つの変更は、[ビルド設定]> [アーキテクチャ]> [標準](64ではなく)なので、Deployment Targetのすべてのバージョンを一覧表示します。

展開先を変更するだけの場合は、Zipをダウンロードする必要はありません。

これがスクリーンショットです。 enter image description hereenter image description here

60

はい、私は今日問題を解決しました。

  1. IPhoneOS6.1.sdkのようなSDKファイルをあなたまたはあなたの友人の古いXcodeディレクトリで見つけてください。
  2. それをXcode 5ディレクトリにコピーして入れます:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs。

enter image description here

次に、以下のようにSDKを選ぶことができます。

enter image description here

これがお役に立てば幸いです。

34
Jason Lee

古いSDKを見つけてダウンロードします。 古いSDKがここにあります

Xcode.appディレクトリをXcode_4.6.3.appとしてコピーしました。

これで、両方のxcodeバージョンでテストとデバッグができます。対応するフォルダからそれらを実行するか、デスクトップにショートカットを作成する必要があります。コマンドラインからビルドする場合は、パラメータをiPhoneOS6.1ではなくiPhoneOS7.0として指定します。

これは私にとってXcode 5とiOSでとてもうまくいった。

Xcode 5のSDKディレクトリにアクセスしてください。その通常位置:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

このように古いSDKへのシンボリックリンクを追加します。

Sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

あるいは、コマンドラインのどこからでもより正確に

Sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
20
karim

古いSDKをダウンロードしてにインストールすることができます。

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

フォルダ。ログアウト+ログインして変更を有効にし、新しいXCodeに古いSDKが表示されるようにします。

11
unspokenblabber

追加するだけで、あなたは実際にXcode 5自体でシミュレータの古いバージョンをダウンロードすることができます - ちょうど好みに行ってください、そしてあなたはDownloadsの下にそれらを見つけるでしょう:

enter image description here

11
Smikey
  • Apple Dev CenterからXcode 4.6.xをダウンロードしてください。 https://developer.Apple.com/downloads/index.action
  • Applicationsフォルダ内にXcode4という名前のフォルダを作成し、ダウンロードしたdmgをそこにドラッグアンドドロップします。
  • 端末ウィンドウを開く

    $Sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
    
  • システムフォルダの中にいるのでパスワードを入力するように促されます

  • Xcode 5を開くと、両方のSDKが表示されます。
10
autremoi

私にとっては最も簡単な解決策:

  1. たとえば、古いバージョンのxcodeで、たとえば "iPhoneOS6.1 sdk"のような古いSDKを探します。まだお持ちでない場合は、このアドレスのApple Developerサーバーからダウンロードすることができます。 https://developer.Apple.com/downloads/index.action?name=Xcode xcode.dmgを開くと、Xcode.app(右クリックして「内容を表示」)を開いて、Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDK/iPhoneOS6に移動します。 1SDK enter image description here
  2. 単純iPhoneOS6.X sdkフォルダをコピーしてxcode.appに貼り付けます。
    • applicationsフォルダのxcode.appを右クリックします。
    • 目次/開発者/プラットフォーム/ iPhoneOS.platform /開発者/ SDK /に移動します。
    • ここに貼り付けるだけです。

enter image description here

  1. Xcodeアプリを閉じて、もう一度開きます。

あなたのシミュレータでiOS 6でアプリをテストするには: - あなたのアクティブなゲームでiOS 6.0を選ぶだけです。 enter image description here

IOS 6であなたのアプリを構築するために、あなたのアプリのデザインもiOS 7搭載のiPhone上で古いデザインになるでしょう: - TargetsでiOS6.1を選択します - Base SDK

enter image description here

ちょっと注意してください:あなたがあなたのターゲットのベースSDKを変更するとき、iOS 7.0はもうシミュレータ上に構築するために利用可能ではないでしょう!

10
Daniel C.

これはできます、しかし必ずしも必要ではありません

これを行う方法

ジェイソンリーは答えを得た。 xCodeをインストールするとき、私はそれらを置き換えるよりも以前のインストールを維持することを好みました。だから私は私のインストールフォルダにこれらを持っています

enter image description here

そのため/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKsは異なるsdkを含みます。 (Xcode.appを正しい番号に置き換えてください)以前のsdksをにコピーしてください

/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

コピーした後の私のフォルダです。

enter image description here

XCodeを再起動すると、以前のバージョンのsdksをbase sdkとして設定できます。

なぜ必要ないのか

アップルのドキュメントを参照する

Xcodeプロジェクトに特定のSDKを使用するには、プロジェクトのビルド設定で2つの選択を行います。

  1. 配置先を選択してください

    これはあなたのソフトウェアが走ることができる最も古いOSバージョンを識別します。

  2. ベースSDKを選択してください

    お使いのソフトウェアは、基本SDKに対応するものまでのOSバージョンで利用可能な機能を使用することができます。デフォルトでは、XcodeはこれをXcodeでサポートされている最新のOSに設定します。

[ルールは最新のものを基本SDKとして使用し、デプロイメントターゲットを実行することが想定される最小バージョンのアプリに設定する]

たとえば、iOS 7を基本SDKとして使用し、iOS 6をデプロイメントターゲットとして設定できます。 iOS 6シミュレータ上で実行して、iOS 6上での動作をテストします。シミュレータのリストで利用できない場合はシミュレータをインストールします。

enter image description here

また、iOS 6までの機能を無条件で使用することができます。また、条件付きで、以前のバージョンをサポートしながら、新しい更新されたデバイスに対してiOS 7の新機能をサポートできます。

これは、弱連結クラス弱連結メソッド関数を使用して実行できます。 、および記号

https://developer.Apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//Apple_ref/doc/uid/20002000-SW3

弱いリンク

Xcodeで、展開ターゲット(最低限必要なバージョン)をiOS6に、ターゲットSDK(最高許容バージョン)をiOS7に設定したとします。コンパイル中、コンパイラーはiOS 7で導入されたすべてのインターフェースを弱くリンクする一方で、以前のインターフェースを強力にリンクします。これはあなたのアプリケーションがiOS6上で動作し続けることを可能にするでしょうが、それらが利用可能であるときそれでも新しい機能を利用するでしょう。

9
MadNik

ここでも他の答えは正しいですが、私は以下のステップが最も簡単であると思います:

「Xcodeの古いバージョンをお探しですか?」というデベロッパーセンターのリンクからXcode 4.6.3をダウンロードするだけです。 (現在ポイント ここ )そしてdmgをマウントしてください。

次にターミナルで、SDKファイルを次の場所にコピーします。

cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

最後に、Xcodeを再起動すれば完了です。

4
nioq

私のアプリはXcode 5にシームレスに移行されました。これは、プロジェクトで設定した元のiOS Deployment Target(私の場合は5.1)を使用してもビルドできるためです。新しいSDKで解決できない問題が発生しない場合は、なぜそれを使用してビルドしないのですか?フードの下に確かに多くの改良があります。

例えば、私はXcode 4.6.3の代わりにXcode 5を使うほうが大好きです。どうして? Xcode 5のテキスト/コード領域をUIでスクロールしてもCPUスレッド全体が噛み込まれることがなくなったため、バッテリ寿命が大幅に延びます。

3
Steven Lu

他の回答で説明されているように6.1 SDKをXcode 5にリンクすることは1つのステップです。しかしながら、これはまだiOS 7上で走る新しいUI要素が取られるという問題を解決しません、View Controllerはフルサイズ等にされます.

この答え で説明しているように、iOS 7でUIをレガシーモードに切り替えることも必要です。

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];

注意:これは文書化されていないキーであり、App Storeのビルドにはお勧めできません。

また、デバイスのテスト中の経験から、+[AppDelegate initialize]で、アプリの起動のかなり早い段階でコードを実行していても、アプリを2回目に起動したときにしか機能しないことがわかりました。 Xcode 4.6を使ってビルドされたバージョンとは微妙な違いもあります。たとえば、透明なナビゲーションバーは異なる動作をします(ビューがフルサイズになります)。

しかし、Xcode 4.6.3がMavericksでクラッシュするので(少なくとも私にとっては、 rdar:// 15318883 を参照)、これは少なくとも続けるための解決策です。デバッグにXcode 5を使用する。

2
Ortwin Gentz

2月1日からAppleはiOS6以下のために作られたアプリを拒絶するでしょう。これはAppleからの公式な コミュニケーション でもあります。 iOS7向けのビルドを開始しました。

私の声を明確にするために:あなたがiOS6以下のために造るならば、アップルはあなたのアプリを拒絶するでしょう。あなたがiOS7用にビルドしていて、すべてが下がっても大丈夫なら、これは次のことを意味します。

  1. あなたはxcode5を使わなければなりません
  2. 少なくともiOS 7にデプロイする必要があります。

AppleのEメールの内容は私にはかなり明確だ

「アプリケーションがiOS 7の革新的なテクノロジとシームレスに連携することを確認してください。2月1日以降、App Storeに送信される新しいアプリケーションとアプリケーションのアップデートは、Xcode 5とiOS 7 SDKで構築する必要があります」

1
Andrea

私はXCode 4をダウンロードし、それからiOS 6.1 SDKをXCode 5に持っていった。それから私はまたiOS 6.1 Simulatorをインストールしました(それは好みで利用可能でした)。また、プロジェクト設定でBase SDKをiOS 6.1に切り替えました。

これらすべての操作の後、6.1 base sdkのプロジェクトはiOS 7 Simulatorのコンプ機能モードで実行されます。

1
OneSman7

私は現在Xcode 4.6.3と5.0をインストールしています。次のbashスクリプトを使用して、5.0を旧バージョンのSDKにリンクしました。

platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
    for platform in `ls $platforms_path`
    do
        Sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
    done;
fi;

あなたはちょうどそれを.appへのパスで供給する必要があります。

./xcode.sh /Applications/Xcode-463.app
0
Wayne Burkett