「警告:iPhoneアプリには、armv6アーキテクチャが含まれている必要があります」


332

プロジェクトのビルド設定を調整する必要があったので、久しぶりです。最近のSDKにアップグレードした後、アドホック配布構成を構築できません。

ビルドはこの警告とエラーを生成します:

警告:iPhoneアプリにはarmv6アーキテクチャを含める必要があります(現在のARCHS = "armv7")

iPhone / iPod Touch:アプリケーション実行可能ファイルに必要なアーキテクチャがありません。次のアーキテクチャの少なくとも1つが存在している必要があります:armv6(-19033)

しかし、私のプロジェクトでは、正しく設定されていると思いました:

  • アーキテクチャは次のとおりです:標準(armv6 armv7)
  • ベースSDK:最新のiOS(現在iOS 4.2に設定)
  • 有効なアーキテクチャ:armv6 armv7

代替テキスト

すべてのターゲットを掃除しました。

ヒントがあれば教えてください。


Mineはアップデートされた古いアプリで、iOS Deployment Target <4.3でも同じエラーが発生します!したがって、私の解決策は、armv6へのすべての参照を削除し、これを4.3以上に設定することでした。動いた。
Henrik Erlandsson 2013

そして今、私はリホールを取得した別の古いアプリでも同じことを試みましたが、機能しませんでした... XCode 5の問題、ビルド設定を読み違えているようです。
Henrik Erlandsson

回答:


418

Xcode 4.2以降を使用している場合は、以下を試してください。

  1. 左側の列にあるプロジェクト名をクリックしてから、ターゲットを選択します。

    ここに画像の説明を入力してください

  2. 「ビルド設定」タブ(右側の列)をクリックします。

    ここに画像の説明を入力してください

  3. [アーキテクチャ]の下の[リリース]または[配布]行をクリックし、[その他...]を選択します。

    ここに画像の説明を入力してください

  4. 表示されるポップオーバーで強調表示されている「$(ARCHS_STANDARD_32_BIT)」という名前の行をダブルクリックし、「armv6」と入力して置き換えます。次に、ポップオーバーの左下にあるプラスボタンを使用して新しい行を追加し、「armv7」と入力して、[完了]をクリックします。

    ここに画像の説明を入力してください

更新:iPhone 5もターゲットにするには、armv7sを追加する必要があります。(Xcode 4.5以降でビルドする場合はarmv6をドロップします。これにより、armv6はサポートされなくなります。)

それでおしまい。これで、エラーを生成せずにビルド/アーカイブできるはずです。

それでも機能しない場合は、justinxreeseからのこの回答を参照してください。info.plistファイルの「必要なデバイス機能」の下にarmv6およびarmv7のエントリを追加することをお勧めします。


3
はい、AppleはARM6から遠ざかっているようです。そのため、これはXcode 4.2に必要な手順のようです。4.2が公開されているにもかかわらず、提出プロセスでARM6ビルドが必要なのは奇妙です...
Jasarien

7
アーキテクチャーの下に配布行がないので、代わりに「リリース」行があります。どのように行うのか分からない
OMGPOP

2
@ Let'sSpotItリリース行にarmv6とarmv7を追加するだけです。スクリーンショットのプロジェクトは、Xcodeの以前のバージョンからインポートされたため、アーキテクチャ名が異なります。
Nick

2
ニックに感謝します。また、Xcode 4.2で作成された新しいプロジェクトでは、armv6デバイスをサポートするためにinfo.plistファイルを変更する必要がある場合があります。以下の私の追加の回答を参照してください。
MattyG、2011年

1
@Nickのヒントに感謝します。私にとっては、「ターゲット」ではなく「プロジェクト」を選択する必要がありました。「ターゲット」ビルド設定から選択しても機能しませんでした。とにかく助けてくれてありがとう。
Prasad De Zoysa、2012年

62

[アクティブアーキテクチャのみをビルド]をオフにすると、有効なアーキテクチャがすべてビルドされます。

更新:これはXcode 4以降では適用されません-Xcode 4以降についてはNickの指示に従ってください。


11
デバッグビルドではYES、リリースビルドではNoに設定することで、ビルド時間を短縮できます。
ビリーグレイ

59

受け入れられた回答に従ってもこの問題が発生し、以下が機能することがわかりました:

Info.plistで、必須デバイス機能のエントリを追加します。これは配列である必要があり、2つのエントリがあります。

  • アイテム0:armv6
  • アイテム1:armv7

次のようになります。

必要なデバイス機能エントリ


このソリューションによって他のアーキテクチャの警告は修正されましたが、最初の警告は引き続き表示されます。また、「Build Active Architecture Only」を「No」に設定しています
Dan F

以前の解決策が適用されなかったので、私のためにそれを修正しました。何らかの理由で、armv6がビルドアーキテクチャ設定で表示されなくなった:S
seeafish

これと上記のニックの答えが私のために修正しました。+1
Saurabh Wadhwa

最新のxCodeバージョンでは、このオプションをすべて削除する必要があります。そうすると、コンパイルされます。両方を配置する場合、実際には不可能である両方のアーキテクチャがデバイスで有効である必要があります
Artem

XCode 4.5以降でビルドするには、必須のデバイス機能からarmv6を削除する必要があります。
Pulkit Goyal

26

Xcode 4.2に関するニックの回答に加えて、info.plistファイルを確認する必要がある場合もあります。Xcode 4.2で新しいプロジェクトがデフォルトで開始されたかのように、「必須のデバイス機能」で「armv7」を指定します。armv6を実行するデバイス(iPhone 3Gなど)をサポートする場合は、これを削除する必要があります。

ここに画像の説明を入力してください

yourProjectName-Info.plistの「必要なデバイス機能」からarmv7を削除します


21

iOS 6のアップデート

Xcode 4.5.x for iOS 6の変更点

  1. Xcode 4.5.x以降では、armv6バイナリの生成はサポートされていません。
  2. 現在、iPhone 5 / armv7sのサポートが含まれています。
  3. Xcode 4.5.x以降でサポートされる最小の展開ターゲットはiOS 4.3です。

6

私もこの問題を抱えていました。デプロイメントターゲットを4.3に設定し、armv7アーキテクチャのみを残しただけで動作しました。現時点では、ほとんど全員が5を持っているので、4.3で問題ありません。


3

私にとっては、すべての回答で機能するわけではありません。TARGETS> Architectures> Debugを試して、プラスボタンで新しい行を追加し、「armv6」(with out ')と入力して、[Done]をクリックします。

最後にCMD + Bをクリックし、PrjectName.appを右クリックします(Productsフォルダー内)> Finderで開く>圧縮 "PROJECT_NAME.APP"(Debug-iphoneos内)> AppStoreにアップロード

ここに画像の説明を入力してください

それは私の画面設定です。 ここに画像の説明を入力してください

プロジェクトが含まれている場合は、すべて設定してください。あなたの助けを願っています。


1
さらに、それが機能する前に、リリースアーキテクチャにarmv6を設定する必要がありました。
mph

3

これらの答えを組み合わせて試した後、私はようやくそれを機能させることにつまずきました。私は今のところAppleに腹を立てている。ほんの1時間で、私は無駄になりました。これが私の設定です。

ここに画像の説明を入力してください


2

私は上記のすべての答えを試しましたが、私の質問は解決されませんでした。そこで、新しいプロジェクトを作成し、ビルド設定を1つずつ比較します。「代替許可ファイル」のみが異なります。失敗したプロジェクトのビルドには、armv7という値があります。それを削除してから、clean-> build-> archiveを実行します。成功!あなたの質問を解決できることを願っています


2

うわー、約6か月ごとにアプリを更新/送信しています。私はこれをするたびに、それを行うための「新しい」方法を学ばなければなりません...

iOS 5.1およびXcode 4.3.2を実行している場合の上記と同じ問題

投稿ありがとうございます!すべてのプロジェクト設定をarmv6、armv7に更新するのにしばらく費やしましたが、喜びはありませんでした。「アクティブアーキテクチャのみをビルドする」を「いいえ」に設定すると、両方のオブジェクトを同じディレクトリに配置することに関するビルドエラーが発生しました。

幸い、代わりにターゲットビルド設定を変更していることに気づきました。これが最終的に機能しました(armv6、armv7、および「ターゲットビルド設定」で「ビルドアクティブアーキテクチャのみ」を「いいえ」に設定)。免責事項として、私はすでにプロジェクト設定でもすべてのアーキテクチャをarmv6、armv7に設定していました。

とにかく、助けてくれてありがとう、ブレント


2

xCode 4.3.2のターゲット設定とプロジェクト設定の両方でこれらの設定を変更し、アプリを送信できるすべての場所でarmv6とarmv7の両方をビルドするように設定した後、必ず変更する必要がありました。

安全対策として、変更を行ってからクリーンなビルド、アーカイブサイクルを実行するまでの間にxCodeも終了しました。


0

私にとってもかなり痛い問題です。ビルドとリビルドに約1時間費やしただけで、喜びはありません。最後に私はこれをしなければなりませんでした:

  1. ベースSDKを最新のものにアップグレードします(私の場合はiOS 5)
  2. xCodeを再起動します
  3. クリーン&ビルド
  4. 動いた!

私のプロジェクトは両方に対して有効であるように見えたので、arm6、arm7についての専門用語の束であると思います、少なくとも設定はそう言っているように思われました)わからないので、簡単なオプションを使用して最新のiOSをターゲットにします(より多くの人が最新のAppleに適しています)....


0

Appleのドキュメントは次のとおりです。

テクニカルQ&A QA1760

それはあなたが正しくしなければならない2つのことがあると言います:

  1. armv6アーキテクチャのビルド設定に追加する
  2. Build Active Architecture Onlyをに設定しNoます。

それでも問題が解決しない場合は、正しいビルド構成のアーキテクチャビルド設定を本当に変更していることを再確認してください。間違った設定をいじって30分無駄にし、なぜ機能しないのか疑問に思いました...

[ Edit Scheme...製品]メニューで選択し、左側のリストで[アーカイブ]スキームをクリックして、ビルド構成を確認します。期待した値でない場合は、値を変更してください。


0

注意; ベースプロジェクトと、アプリケーションに埋め込まれたPhoneGap .xcodeprojファイルの両方に対してこれらの手順を実行する必要がありました。

はい、PhoneGapを埋め込みます。それらは頻繁に更新されており、機能が廃止されたことを知るのに2か月もかかりません。


0

デプロイメントターゲットをarmv6プロセッサよりも高いものに変更してみてください。xCodeの設定は、オペレーティングシステムレベルを参照しています。例:iOSバージョン番号{3.1、3.2、4.0、4.1、4.2、4.3、5.0、5.1}

(i)これは、ビルド設定タブまたはサマリタブで設定できます。プロジェクトナビゲーターのウィンドウの左上から開始して、すべてのファイルをリストします。青いアイコンがある一番上のものをクリックします。

(ii)openGL ES 2.0 APIを介してアクセスおよび制御されるプログラム可能なシェーダーライン回路の使用を計画している場合、「Deployment Version」を約4.3に設定する必要があります。これは、 3GS以降。xCodeは、armv7コードを実行するにはiOS 4.2.5以降が必要であると報告しています。そしてもう一度、このプロセッサーは3GSから始まったと思います。*今のところ、私にとってiOS 4.3が選択のようです。

http://theiphonewiki.com/wiki/index.php?title=Armv7

http://en.wikipedia.org/wiki/List_of_iOS_devices


0

xCodeがarmv7について文句を言う場合は、接続デバイス(特にiPhone 5 !!)を切断して、再試行してください。その小さな情報を見つけるのに何時間もかかった。


0

Snow LeopardでXcode 4.2を使用して、以下の設定を使用して、armv6(Iphone 3G以下)およびarmv7(3GSを含む3Gより新しいもの)の両方で動作するアプリを構築しました。

アーキテクチャ:armv6およびarmv7(削除された$(ARCHS_STANDARD_32_BIT))は
アクティブアーキテクチャのみをビルドし
ます:必要なデバイス機能はありません:armv6

アプリを3G以下でも実行する場合は、armv7を必要なデバイス機能に配置しないでください。


1
それは私のために働いた唯一のものです。iphone4、iphone3g、ipad1、ipad2でのテスト。armv6とarmv7を必要なデバイス機能に配置する必要がありましたが、armv7に配置するとすぐに、アプリはiphone3gにアップロード/実行されません
noromamai

「必須のデバイス機能」にarmv7エントリを残すと、XcodeがiPhone 3Gで実行することを禁止されました。
tinsukE 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.