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ビット環境でも動作するようにする
-補足-
型とバイト表(移行マニュアルから)
-参考サイト-
・導入
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 エンタープライズ