home wiki.fukuchiharuki.me
Menu

関連

  • iPhone
  • Xcode
  • Titanium Mobile

現象

XcodeにてiPhoneアプリ申請のためのValidateをパスすることができない。

iPhone/iPod Touch: application executable is missing architecture.
At least one of the following architecture(s) must be present: armv6

原因

アプリケーションの実行にアーキテクチャが足りないよ、armv6というアーキテクチャがないとダメだよ。と言われています。iPhoneアプリはターゲット(3Gや4Sなど)によってアーキテクチャ(armv6やarmv7)が決まっているようです。

armv6
iPhone, iPhone 3G, 1st & 2nd Generation iPod Touch
armv7
iPhone 3GS, iPhone 4, iPhone 4S, iPad, iPad2, 3rd & 4th Generation iPod Touch

対策

調べてみると次のふたつの対策があるようです。

  1. アーキテクチャarmv6をビルドに含める
  2. minimam iOSのバージョンを4.3以降にする

参考の1.と2.のようにしてアーキテクチャarmv6をビルドに含めようとしましたがなぜだかダメでした。ので、minimam iOSのバージョンを4.3以降にしてみます。Titanium Mobileにはminimam iOSのバージョンを設定する項目があります。

tiapp.xmlに次を追記します。

<ios>
    <min-ios-ver>4.3</min-ios-ver>
</ios>

これで先のissueを回避することができます。 ただしこれをするときっとiOS 4.3以降でないと動作しなくなるのだと思います。

参考

  1. http://d.hatena.ne.jp/paraches/20111029
  2. http://d.hatena.ne.jp/towerofl/20111216/1324049590
  3. http://bencoding.com/2012/09/04/setting-the-minimum-ios-version-for-your-titanium-project/