iOS9 アプリ開発でのハマりどころ

どうも、ギルドワークス 前川です。

iOS 9 公開後一月ほどたちましたが、皆さんもうアップデートされているでしょうか?OSのアップデートはワクワクして楽しい半面、やはりアプリのつくり手としては思いもよらない不具合に遭遇したりすることもあるので、なかなか困り者です。

じつは私がiOSアプリ開発をはじめて、初めて本格的なバージョンアップを体験するのがこのタイミングでして、なかなか落とし穴にハマりましたので、色々共有させていただきたいと思います。

ハマりどころ① スプラッシュスクリーンがない場合の表示崩れ

まず最初に、ひどい目にあったのが本案件、スプラッシュスクリーンがない場合の画像崩れでした。

上記Qiita記事にもあるように、iOS9 / XCode7 で起動した場合に、黒帯が出てスクリーンが表示されない、という不具合に遭遇しました。

StackOverflowなども参照した結果、どうやらiOS9よりスプラッシュイメージを適切な画像サイズにするなり、ストーリーボードを指定するなりしないと画面崩れが発生するようになったようでした(画面サイズの検知に起動時の大きさを使うようになった、という情報を見かけました)

スプラッシュスクリーンなどただの飾りと思って油断していました。。。Appleのガイドラインを守らないものに振りかかる神罰、と言った感じですね。

ハマりどころ② Bitcode問題によりiTunes Connect にアプリがアップロードできない

iOS9から新たにAppThiningと呼ばれる、アプリの最適化が導入されました。

その中にBitcodeという項目が有ります。これは、アプリの中間コード(Bitcode)をアプリケーションに埋め込んで提供することで、Appleが各CPU向けの最適化を行ってくれるものです。そしてこの機能はデフォルトでONになっています。

しかしながら、cocoapodsCarthageなどのライブラリツールで外部ライブラリを取り込んでいる場合、そのライブラリがBitCodeオプションを有効化しているか、という問題に突き当たります(そして多くの場合有効化していません)。

この結果、せっかく時間をかけてビルドしたアプリがiTunes Connectで弾かれる、という悲しい自体になります・・・

スクリーンショット 2015-10-21 21.04.31

このように数多くのアプリが弾かれてしまいました。

解決方法は簡単で、Build SettingsEnable Bitcode をFalseにすればOKです。

ただ言うまでもなく、Bitcodeオプションは今後有効になるのが標準となるべきもので、CocoapodsやCarthageでも対応が進んでいます。できるだけ早く、有効にできるようになりたいですね。

ハマりどころ③ システムフォント変更におけるUI崩れ

これは特に英語対応をしている場合の要注意項目となります。

iOS9では、英語システムフォントが Helvetica Neue からSan Francisco に変更となっています。

上記記事から分かる通り、結構サイズもダイナミックに変わる、大きめの変更です。

従って、何も考えずにシステムフォントを指定している場合、OS毎にフォントの横幅が変わり、改行などの文字崩れが起きてしまいます。

カツカツのUI設計をしていると、ここで思わぬ折り返しが発生してしまい、泣くことになってしまいます。。。

最も大切なことはOS更新時期とリリース次期をかぶせないこと

今回の最大の教訓はこれです。OSの更新時期は、こういった思わぬトラブルに加え、AppleStoreの審査待ち渋滞も数多く発生します。ですので、できるだけOSの大型更新時期と、アプリのアップデートは分けるようなリリース計画にすべきですね。(新OS対応の特急申請などは割と通りやすい印象もありますし)

ここは神様に逆らってはいけない世界。色々と智慧をめぐらせ、Appleと賢く付き合っていきましょう。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中