iPhone 5からはarmv7sアーキテクチャ

Share on Facebook
このエントリーをはてなブックマークに追加

iOS SDK 6がGMになったんで、過去のプロジェクトを再ビルドしまくっているけど、アーキテクチャにarmv7sが追加になったようだ。

ざっと説明しておくと、アーキテクチャはどのCPU命令セットに対してバイナリを作成するかを指定するもので、初代の頃のiPhoneはarmv6、その後、3GSあたりからarmv7になった。で、どうやらiPhone 5とiPod touch 5th generationからは、armv7sになるらしい。

Xcode 4.5を使うと、armv7とarmv7sのバイナリを作成できる。iPhone 5は、armv7sバイナリだと最高のパフォーマンスを発揮できる。armv7バイナリのみでも、動く。たぶん。でもarmv7sバイナリを用意するのが望ましい。

アーキテクチャの設定は、Xcodeのプロジェクトが、自前のソースコードしか使っていないのであれば、特に気にかける必要はない。でも、どっかからダウンロードしてきたり、他の会社から提供された.aファイルを使っている場合は、とても注意が必要。その.aファイルもarmv7sバイナリを含んでいないと、リンク時にエラーが出る。「file is universal but dose not contain an armv7s slice」って感じの。

そんなときは、アーキテクチャの設定からarmv7sを削除してやる。Xcodeプロジェクトの、ビルド設定で、「Valid Architectures」っていう項目があるので、そこからarmv7sを削除する。

こういうの、サイレントに追加してくるよな。CPUのコアはなんだっていいから、アーキテクチャの方を教えてくれ。

    • 通りすがりです
    • 2012年 9月14日

    NDA大丈夫なんですか?

    • 匿名
    • 2012年 9月14日

    有益な情報ありがとうございます。
    armv7のバイナリのみでも動くと確信が持てたらよかったのですが。
    使用している.aファイルのarmv7sのものが出てくれれば良いのですが、まだ時間がかかりそうですね。

    • 宝神
    • 2012年 9月14日

    この内容、公開しちゃまずいだろ?

    • 通りすがりです
    • 2012年 9月15日

    AUTOです。

    • 通りすがりマン
    • 2012年 9月17日

    β版SDKの内容をまたNDA無視か。

    • 通りすがり
    • 2014年 11月11日

    iPod touch 5th generationがarmv7sなのかどうかの正確な情報はありますか?

    • mkino
    • 2014年 11月11日

    ずいぶんと古い記事へのコメントですが、iPod touch 5thはarmv7ですね。このときはまだ正確な情報がAppleから出ていなかったはずです。
    Appleがデバイスとそのcapabilitiesに関する一覧表を公開しているはずなので、それを確認してください。

  1. 2012年 9月14日
  2. 2012年 9月24日
    トラックバック先 :アプリのiPhone5対応
  3. 2012年 9月24日
  4. 2012年 10月19日