simple is best and beautiful.

iPhoneアプリの64bit対応

-概要-

15年2月から64bit対応させないとアプリを申請できなくなったので、対応方法をメモ

 

-要点-

・32bitアプリを64bitへ対応させる。

・64bitへの対応自体は、一般的な方法。一部Cocoatouch frame work特有の

   対応が必要。

・64bit対応すると、処理を高速化できる反面、メモリの消費量が増える。

 

-アプリケーションを64ビットバイナリに変換-

[必要な環境]

 Xcode 5.0.1以上

[方法]

1.プロジェクトを開く。

2.iOS 5.1.1以降をターゲットにするよう、プロジェクト設定を更新する。

3.プロジェクトのビルド設定「Architectures」を、「Standard Architectures

(including 64-bit)」に変更する。

4.64ビットランタイム環境に対応するようアプリケーションを更新する。

5.実際に64ビットハードウェア上でテストする。

6.Instrumentsを使ってメモリ利用効率を改善する。

7.両方のアーキテクチャに対応したアプリケーションを送信して承認を求める。

 

[Cocoa Touchアプリケーションを64ビットランタイム環境に移植する際、

 よく発生する問題点]

・ポインタを整数型にキャストしない

・データ型を一貫して使う 

・整数演算に注意する

・バイト長や揃え境界が固定のデータ構造体を生成する

・メモリ割り当てにsizeof演算子を使う

・書式指定文字列をどちらのランタイムでも動作するよう修正する

・関数や関数ポインタの取り扱いに注意する 

Objective-Cのポインタに直接アクセスしない 

・組み込みの同期プリミティブを使う 

仮想メモリのページ長をハードコードしない

・コードを位置非依存にする

・32ビット環境でも動作するようにする

 

-補足-

型とバイト表(移行マニュアルから)

f:id:tetsuromww:20141213174049p:plain

 

f:id:tetsuromww:20141213174111p:plain

 

-参考サイト-

・導入

iOS向けアプリは2015年2月から64ビット版サポート・iOS 8 SDKの使用が必須に - GIGAZINE

Apple 64bit移行マニュアル

https://developer.apple.com/jp/devcenter/ios/library/documentation/CocoaTouch64BitGuide.pdf

・移行マニュアルの英語版(Web)

64-Bit Transition Guide for Cocoa Touch: About 64-Bit Cocoa Touch Apps

・先駆者の方のサイト

Xcode - 【iOS7】64ビット対応について調べてみた - Qiita

・マニュアルにでてくる「揃え境界」の意味

64ビットコンピューティング最前線:64ビットプログラミングのポイント (3/3) - ITmedia エンタープライズ