2011/01/08

Xcode 3.2.5にiOS 4.0 SDKを導入する方法について

先日、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」にも書かれていますが、ターミナルから次のようなコマンドを入力します。

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によって異なる可能性があります。

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に付属のものとは内容が異なるらしく、上記の手順では使用することはできませんでした。

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ファイルの中身は次のようになっています。

> 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

これらのファイルは次のような形式のファイルです。

> file *
Bom:          Mac OS X bill of materials (BOM) file
PackageInfo:  XML document text
Payload:      gzip compressed data, from Unix

ファイルPackageInfoは次のようなXMLファイルで、内容はよくわかりません。

> 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で内容を見ることができます。

> 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がなかったりします。

> 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 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。