不具合の内容
Xcode 4.2 をインストールしたところ、既存プロジェクトをシミュレータで debug 実行はできたが、実機(iPhone 3GS, iOS 4.2.1)で debug 実行ができなくなった。対処法
(1) Architectures が自動的に armv7 のみにされてしまうため、もし iOS 4.3 未満も動作対象としたい場合は armv6 を追加する
- Xcode 左側の「 Project Navigator 」でプロジェクトルートを選択>「 Build Settings 」タブを選択する
- 「 Architectures 」項目が「 Standards (armv7) 」と指定されている場合、編集して「 armv6 」を追加する
- 「 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 」をインストールする
- Xcode メニュー>「 Xcode 」>「 Preferences 」>「 Downloads 」タブ>「 Components 」タブを選択する
- 必要に応じて、「 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問題に対応
- 「/Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 」ディレクトリから、「 4.2.1 (8C148)/ 」および、「 4.2.1 (8C148a)/ 」ディレクトリを除去(念のためどこかにコピー)
- Xcodeを再起動
参考:iphone - UUID mismatch detected with the loaded library - Stack Overflow
0 件のコメント:
コメントを投稿