2011-10-15

Xcode 4.2 アップグレード時の不具合と対処法

iOS 5 に対応するために、今まで利用していた Xcode をバージョン 4.0 から 4.2 にアップグレードしました。そのときに遭遇した不具合と、解決した対処法をまとめておきます。

不具合の内容

Xcode 4.2 をインストールしたところ、既存プロジェクトをシミュレータで debug 実行はできたが、実機(iPhone 3GS, iOS 4.2.1)で debug 実行ができなくなった。

対処法

(1) Architectures が自動的に armv7 のみにされてしまうため、もし iOS 4.3 未満も動作対象としたい場合は armv6 を追加する
  1. Xcode 左側の「 Project Navigator 」でプロジェクトルートを選択>「 Build Settings 」タブを選択する
  2. 「 Architectures 」項目が「 Standards (armv7) 」と指定されている場合、編集して「 armv6 」を追加する
  3. 「 iOS Deployment Target 」 ( =iOS の最低動作バージョン)も確認する。 iOS 5.0 になっている場合は、意図する iOS バージョンに修正。

参考:xcode4.2 iOS5 ターゲットを4.0にしてビルドすると警告 | mipoiApp-iPhoneアプリ

※ARM と端末の対応関係は次の通り(2012-10-09 更新):
ARMv7s = iPhone 5
ARMv7   = iPhone 3GS/4/4S, iPod 3G/4G/5G, iPad 1G/2G/3G
ARMv6   = iPhone 2G/3G, iPod 1G/2G

ちなみに ARMv6 サポートをやめたい場合、「 iOS Deployment Target 」を iOS 4.3 以降にすればOKです。( iOS 4 だと、iPhone 3G や iPod Touch 2Gも不完全ながら動作端末に含まれてしまいます=ARMv6を要サポート)

参考:iphone - Do I need to add armv6 support when limiting apps to iOS 4.0+? - Stack Overflow
(2) 必要に応じて、「 iOS 4.0 - 4.1 Device Debugging Support 」や「 iOS 3.0 - 3.2.2 Device Debugging Support 」をインストールする
  1. Xcode メニュー>「 Xcode 」>「 Preferences 」>「 Downloads 」タブ>「 Components 」タブを選択する
  2. 必要に応じて、「 iOS 4.0 - 4.1 Device Debugging Support 」や「 iOS 3.0 - 3.2.2 Device Debugging Support 」をインストールする



------------
おそらく通常(まめに Xcode をアップグレードしている場合)は以上で対応が終わると思います。
私の場合は、だめでした。調べていると、次の方法で最終的に解決しました。(4.2アップグレード固有の問題ではないのですが、今回 iOS 5 対応のために久しぶりにアップデートする場合、こんなこともあるということで。)
(3) iOS 4.2.1 のUUID mismatch問題に対応
  1. 「/Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 」ディレクトリから、「 4.2.1 (8C148)/ 」および、「 4.2.1 (8C148a)/ 」ディレクトリを除去(念のためどこかにコピー)
  2.  Xcodeを再起動

参考:iphone - UUID mismatch detected with the loaded library - Stack Overflow


0 件のコメント: