Xcode 4.3 へのアップデートが検出されない
SPECIAL
Xcode 4.3 がアップデートの候補に挙がってこない
以前に Xcode 4.2 へのアップデートに失敗する で話したように、Xcode 4.2 を App Store 経由でインストールしていました。
それからしばらくした平成 24 年 3 月 8 日頃に iOS 5.1 の登場と合わせて Xcode 4.3 がリリースされたという話を耳にしたのですけど、自分の Mac OS X 10.7.3 Lion 環境では、App Store では最新版を検出してくれない感じです。
ただの噂だったのかとも思いつつ、とりあえず iOS Dev Center の Web サイトを見てみると、どうやらやはり Xcode 4.3 がリリースされているようでした。
今までの Xcode 4.2 は App Store からインストールしていたのだし、これなら App Store のアップデートとして挙がってきても良さそうですけど、現実として出てこないことにはしょうがないので、とりあえずこの iOS Dev Center ページから 【Download Xcode 4】 ボタンをクリックしてみることにしました。
Xcode 4.3.1 をインストールする
iOS Dev Center の 【Download Xcode 4】 ボタンをクリックすると、次のページで 【View in Mac App Store】 というリンクが表示されたので、それをクリックしたところ、Mac App Store の Xcode 4.3.1 の画面が表示されました。
後は、【無料】のところをクリックすると【App をインストール】というボタンに変わるので、それをクリックしてあげることで【インストール中】という表示に変わります。
ここから、プログレスバーも出なければ Dock などで何か進捗が表示される様子も無かったのですけど、そのまましばらく放っておいたら、無事に【インストール済み】の表示になっていました。
これで Xcode 4.3.1 へのアップデートは完了かと思いきや、以前のショートカットで Xcode を起動しても、バージョンは以前の 4.2.1 のままでした。
もしかして、これまでのように "アプリケーションフォルダー" に Xcode のインストーラーが入っていないかと見てみたところ、ここに Xcode のアプリがインストールされていました。
Xcode 4.3.1 の起動と 4.2.1 からの移行
アプリケーションフォルダーにインストールされていた Xcode を起動させてみたところ、無事、Xcode 4.3.1 が起動してくれました。
どうやら今度は、インストーラーのインストールではなくて、ちゃんとインストールを終えてくれているみたいですね。
インストールパスが、ルートフォルダーの Developer フォルダーから "アプリケーション" フォルダーに変更になったこともあって、これまでの iOS シミュレーターや Instruments といったその他の関連アプリのインストール先が気になるところでしたけど、これらは Xcode 4.3.1 からは、"Xcode.app" アプリケーションのパッケージの一環として、内部に一緒に格納されている感じです。
さて、Xcode 4.3.1 を起動すると、最初に使用許諾契約への同意を求められた後で、続いて古い Xcode の削除画面が表示されました。
ただ、これは任意の作業のようで、特に消す必要が無ければそのまま【Start Using Xcode】をクリックすれば大丈夫でした。
そして Xcode が起動して、無事 4.3.1 であることが確認できました。
今度の 4.3.1 と今までの 4.2.1 とでは少し互換性がない部分があるようで、以前のプロジェクトを開いたときに "Upgrade ARMV6 assembler codegen from THUMB to ARM mode" や "Upgrade debugger from GDB to LLDB" といった変換処理がなされました。
これは Xcode に自動で補正してもらえましたけど、この影響なのか、ビルド時にもこれまで問題なかったソースコードでエラーや警告が検出されました。
Existing ivar 'controller' for strong property 'controller' may not be __unsafe_unretained.
Method possibly missing a [super dealloc] call.
これらはどちらもコードのミスで、前者は __unsafe_unretained で定義してあった属性に (readonly) だけを指定したプロパティを関連付けていたためなのと、後者は ARC ではないコードのデストラクタで親のデストラクタを呼び忘れていたためだったので、それぞれを適切に修正することで、ビルドは正しく通るようになりました。
どちらかといえば、前者は readonly プロパティであっても、それが扱う属性が __unsafe_unretained であれば、プロパティ宣言でも (readonly,unsafe_unretained) と明示しなくてはいけなくなった感じですけど。
それと、iPhone 5.1 Simulator でデバッグしてみようとしたときに、初回だけ "Developer Mode" を有効にするか尋ねられました。
デバッグ機能の中にはパスワードの入力を必要とするものがあるらしく、Xcode でのその認証手続きをパスするために "Developer Mode" を有効にする感じになるのだそうです。
たぶん、許可したくなければ【Don't Enable】で良いのでしょうし、問題がなさそうなら【Enable】をクリックして、Developer Mode を有効化する感じになると思います。
このような一通りの手続きを終えて、Xcode 4.3.1 への移行は完了しました。
最初はデバッグ用のシミュレーターが iOS 5.1 のものしかないですけど、それ以外のものが必要な場合には "More Simulators..." を選択して、ダウンロードの画面を表示します。
ここから、必要なコンポーネントやドキュメントを選んでインストールすることができます。
Xcode 4.3.1 では、iOS 4.3 と iOS 5.0 のシミュレーターも追加でインストールすることができるようになっていました。
また、iOS 3.2.2 や iOS 4.1 の実機でのデバッグもサポートされていそうな感じです。