先日、Xcode 3.2.5をインストールしたところ、iOS 4.0のSDKが使用できなくなりました。いろいろ試したところ、古いXcodeのdmgからiOS 4.0のSDKを取ってきて利用することができましたので、その手順を紹介します。

Xcode 3.2.5のインストール
まず、以前のバージョンのXcodeを導入しているならアンインストールします。dmg内にインストールパッケージとともに存在しているドキュメント「About Xcode and iPhone SDK」にも書かれていますが、ターミナルから次のようなコマンドを入力します。
1 | sudo /Developer/Library/uninstall-devtools --mode=all |
そして、Xcode 3.2.5をインストールします。
古いiOS SDKのインストール
まず、「iPhone Software Development: Old versions of iPhone SDK」を参照して、Xcode 3.2.3のdmgを取得します。

次に、ダウンロードしたdmgをマウントします。Finderが起動するかもしれませんが、パッケージを直接参照できないので閉じてください。そして、dmgをマウントしたままでターミナルを起動して次のように入力します。なお、シングルクォート内の内容はお使いの環境やマウントするdmgによって異なる可能性があります。
1 | open -a Finder '/Volumes/Xcode and iPhone SDK/Packages' |
すると、次のように沢山のパッケージがファインダーで表示されます。この中からiPhoneSDK4_0.pkgをダブルクリックしてインストールします。

ただし、そのままだとインストール先が正しくないため次のようにしてインストール先を/Developerにします。まず、インストールウィザード中の[Installation Type]で[Change Install Location...]をクリック。

[Developer]を指定して[Choose]してください。

インストール先が"Developer"になっていることを確認して、[Continue]をクリック。

以上で、/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdkにiOS 4.0のSDKがインストールされます。なお、Xcode 3.2.5にもiPhoneSDK4_0.pkgが存在していますが、Xcode 3.2.3に付属のものとは内容が異なるらしく、上記の手順では使用することはできませんでした。
1 2 | MD5 ( /Volumes/Xcode and iOS SDK /Packages/iPhoneSDK4_0 .pkg) = a09986714b357dede884362997f76edf # 3.2.5 MD5 ( /Volumes/Xcode and iPhone SDK /Packages/iPhoneSDK4_0 .pkg) = 1d4dd7957d932038e2f2b0b3e2a7f2f9 # 3.2.3 |
おまけ: iPhoneSDK4_0.pkgの中身
pkgファイルの中身は次のようになっています。
1 2 3 4 | > xar -tvf /Volumes/Xcode \ and\ iOS\ SDK /Packages/iPhoneSDK4_0 .pkg -rw-r--r-- root /wheel 393048 2010-10-27 08:54:28 Bom -rw-r--r-- root /wheel 536 2010-10-27 08:59:09 PackageInfo -rw-r--r-- root /wheel 350292508 2010-10-27 08:54:14 Payload |
これらのファイルは次のような形式のファイルです。
1 2 3 4 | > file * Bom: Mac OS X bill of materials (BOM) file PackageInfo: XML document text Payload: gzip compressed data, from Unix |
ファイルPackageInfoは次のようなXMLファイルで、内容はよくわかりません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | > lv PackageInfo # 3.2.5のiPhoneSDK4_0.pkg <?xml version= "1.0" ?> <pkg-info format -version= "2" relocatable= "true" deleteObsoleteLanguages= "true" identifier="com.apple .pkg.iPhoneSDK4_0 " overwrite-permissions=" yes " auth=" root " postinstall-action=" none " version=" 4.0.0. 9000000000.1.1206372128"> <payload installKBytes= "847139" numberOfFiles= "1249" /> <scripts/> < groups > <group>com.apple.FindSystemFiles.pkg-group< /group > <group>com.apple.DevToolsRelocatable.pkg-group< /group > <group>com.apple.iPhoneSDK.pkg-group< /group > < /groups > <bundle-version/> < /pkg-info > |
ファイルBomはファイル構成一覧を記述したファイルのようで、lsbomで内容を見ることができます。
1 2 3 4 5 6 7 8 | > lsbom Bom # 3.2.5のiPhoneSDK4_0.pkg : . /Platforms/iPhoneOS .platform /DeviceSupport/4 .0 /Symbols/usr 40775 0 /80 . /Platforms/iPhoneOS .platform /DeviceSupport/4 .0 /Symbols/usr/lib 40775 0 /80 . /Platforms/iPhoneOS .platform /DeviceSupport/4 .0 /Symbols/usr/lib/dyld 100775 0 /80 476320 2618116526 . /Platforms/iPhoneOS .platform /DeviceSupport/4 .0 /Symbols/usr/lib/gcc 40775 0 /80 . /Platforms/iPhoneOS .platform /DeviceSupport/4 .0 /Symbols/usr/lib/gcc/arm-apple-darwin10 : |
Xcode 3.2.3に付属のiPhoneSDK4_0.pkgは3.2.3のものとディレクトリ構成が異なっていたりplistがなかったりします。
1 2 3 4 5 6 7 8 | > lsbom Bom-3.2.3 | grep plist . /Platforms/iPhoneOS .platform /Developer/SDKs/iPhoneOS4 .0.sdk /Entitlements .plist 100644 0 /0 423 4179759460 . /Platforms/iPhoneOS .platform /Developer/SDKs/iPhoneOS4 .0.sdk /ResourceRules .plist 100644 0 /0 485 3752781124 . /Platforms/iPhoneOS .platform /Developer/SDKs/iPhoneOS4 .0.sdk /SDKSettings .plist 100644 0 /0 1489 979933569 > lsbom Bom-3.2.5 | grep plist zsh: done lsbom Bom-3.2.5 | zsh: exit 1 grep plist |
まとめ
Xcode 3.2.5にiOS 4.0 SDKを導入する方法を述べました。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。