Entries

アプリをiPhone5に対応する場合の地雷ポイント一覧

地雷キャッチャーとして定評のあるfladdictですが、今回も大量の地雷を踏み歩いております。

とりあえず、解決方法を知らないとハマるポイントを色々とピックアップ。自分では直ったけど一般化できてない現象もあるので、間違い勘違い等ありましたら、コメント欄でビシバシご指摘ください。

iPhone5対応すると、iOS4.3以前では動かなくなる
最新のXCodeがarmv6のコンパイルをしてくれないので、ご臨終となります。
公式じゃないほうほうで無理矢理バイナリをビルドすればhogehoge。

サードの静的ライブラリが入ってると、コンパイルできない場合が
最新XCodeからコンパイルに、armv7sという新アーキテクチャが必須となってますが、ビルド済み静的ライブラリにはむろん入っていないのでコンパイルできません。対策は2つあって、ひとつは対応ライブラリが出るまでリリースを見送ること、もう片方はXCodeのビルドアーキテクチャー設定で armv7sを消して armv7オンリーでビルドすること。

HMDTさんもボヤイてますが奇襲すぎて泣き所です。

身に覚えのない、Mach-O Linker Errorがでる。
古いソースコードの場合、奇襲的にMach-O Linker Errorが出ることが。
よくあるのは4系以前のOS用でブロックをほげほげしてたフレームワーク(名前わすれた)が、armv7以降に存在しないせいだったかと思います。4.3以下は切り捨てているので、そのライブラリは消しても無問題。

いきなり回転しなくなる
古いソースコードの場合、いままでiPhone回転に対応してたはずなのに、いきなり回転しなくなることが。
AppDelegateで、window.rootViewControllerにビューコントローラーを割り当ててあげる必要があります。

いきなり回転しだす
古い回転系の処理がさりげなくdeprecatedになった為、回転無効化コードが動かなくなった場合発生します。 shouldAutorotateToInterfaceOrientation はもはや呼ばれません。
ViewControllerに-(bool)shouldAutoRotateをいう関数を定義して、NOをリターンしましょう。

縦長対応の設定をしたのに、縦長にならない
Default-568h@2xを入れたのに480pxから動かない現象。古いソースコードの場合、window.xibファイルでFull Screen at Launchというフラグがオフになっていないか確認。これがオフだと何をやってもリサイズされません。気づかないと脱出できない系。

カメラの縦長対応は予想以上にメンドクサイ
iPhoneが縦長になっても、標準カメラの撮る写真サイズは4:3なんですねぇ・・・ 画面にピッタリフィットするカメラプレビューを作っていた場合、フィットさせると表示と撮影で結果が大きく違うモノに。 座標系から色々いじって修正するとメンドクサイです。実装がメンドイというか、カメラの在り方として色々とコンセプトがぶれそうです。

Storyboardが対応してないと言われコンパイルできない
XCodeでDeployment Targetを一度でも4.3以下に変更してしまうと、Targetを修正しても「StoryBoardは対応してないよw」とエラーがでて、もう2度とコンパイルできなくなるバグが。XCodeそのもののバグっぽく、Edit SchemeでデバッガーをGDCにしてから、LLDBに変更し、Cleanして再コンパイルすると何故か直る。修正方法に気づかないと、二度とコンパイルできません。わりと即死級トラップ。

公開解像度素材が必要
新しいアイコンは1024になり、スクリーンショットは1136になるわけです。3G時代に256pxで描いていた人は自殺級です。巨大なトラップとして、新しい1024のアイコンをアップデートするだけで審査に進めるっぽいですが、その後さりげなく「スクリーンショットが足りない」といって差し戻されて二度手間になります。うっかりスクリーンショットをあげ忘れると数日無駄にします。

ざっと自分が経験したものを列挙すると、こんなところでしょうか。
OpenGLまわりで色々怪しいという話もききますが、自分でタッチできてないのでそっちはまた他の人にバトンタッチ。

ついでに、せっかくなので宣伝。テクニカル部分の監訳をやらせていただいた「モバイルデザインパターン― ユーザーインタフェースのためのパターン集
」が、本日オライリーさんからでます。動物本デビュー! iPhoneのインターフェース用デザパタ本です。デザイナーさんもエンジニアさんにもおすすめ。個人的には訳がもう少し柔らかいほうが好きですが、有益な本だと思います。iPhone5で新しくなったHuman Interface Guidlineとあわせてどうぞ!