2011年10月21日金曜日

Xcode 4.2でiPhone 3G/armv6用にビルドするときの設定の要点だけ


Xcode 4.2にして以来?、iTunes ConnectにSubmit時にarmv6用のバイナリも
含める必要があるよ!と怒られることがある。
"At least one of the following architecture(s) must be present: armv6"みたいな感じのエラーがiTunes ConnectへのSubmit時に出る。

デバッグ用の実機検証のときも、この設定をしないと転送後すぐにRunning Finishedとか
出て実機できないことがある(iPhone 3Gとかの場合)。このときはこの設定を疑うようにするというメモ。

1.BUILD SETTINGのArchitecturesの部分に$(ARCHS_STANDARD_32_BIT)だけが設定されていることが原因。この項目をクリックして「Other...」を選択
「+」をクリックして"armv6"を入力して"armv6"と"$(ARCHS_STANDARD_32_BIT)"の2行が設定されている状態にする

2.その下にある"Build Active Architectures Only"とかいてあるところが
"No"になっていることを確認する。

これで上記のArchitectures両方(つまりarmv6とarmv7)用の
バイナリが生成されるようになります。

(補記)
Xcode 4.2で生成されるプロジェクトには、Info.plistの"Required device capabilities"に
"armv7"と入っているみたい(つまりarmv6を利用したiPhone 3Gは除外されている)。
iPhone 3Gなどのarmv6デバイスも対象とするには、上記に加えてこの設定を除外する必要があるようです。

2 件のコメント:

  1. 参考にさせていただきました!運よくこちらの情報を発見できハマらずに済みました!

    返信削除