NSBlogger

意識高いブログ

iOSのBeta版を調査する上での心構え

新しいiOSが登場する

f:id:Kamekiti:20160813112319j:plain
毎年6月にWWDCというApple主催の開発者向けカンファレンスが開催されます。最近の傾向では、WWDCで次期iOSの情報が公開され、同年の9月に新型iPhone発売と同時に一般公開されます。一般ユーザは次期iOSリリースまでワクワクテカテカしながら待っていればよいのですが、iOSアプリ開発者にとっては非常に重要な期間となります。次期iOSのBeta版が公開されるので、その影響調査をする必要があるのです。何から始めてどうすればよいのか、以下に紹介しますね。

iOSのBeta版について

次期iOSは夏前に開催されるWWDCにて発表され、その秋に一般公開されます。その間、Appleは開発者に向けて定期的にBeta版のリリースを行っています。

バージョン 公開日
iOS10 beta1 2016年06月14日
iOS10 beta2 2016年07月06日
iOS10 beta3 2016年07月19日
iOS10 beta4 2016年08月02日
iOS10 beta5 2016年08月10日

上記のように、だいたい2週間おきに次のバージョンが公開されます。正式リリースされる1週間ほど前にGM(Gold Master)版と呼ばれる最終Beta版が公開されます。

また、iOSのBeta版が新しくなると同時に、iOSアプリ開発に必要なIDEXcode」のBeta版も公開されます。iOSXcodeはセットで新しくなります。

余談ですが、開発者向けに公開されるBeta版とは異なる「Public Beta版」と呼ばれるものも存在します。Beta版はApple Developer Programに参加しているユーザのみに提供されますが、Public Beta版は一般ユーザも利用可能です。Beta版より1周期ほど遅れての公開になりますが、次期iOSを一足早く試したい方はぜひ利用してみましょう。利用する前にバックアップは必須ですよ。

なぜBeta版を調査する必要があるのか

「Beta版だし物好きな人しか使ってないだろうから、リリースされてから試せばいいんじゃないの?」と思うかもしれません。しかし、次期iOSの上で既存のアプリが正常に動作する保証はありません。長くiOSアプリ開発をしている方はご存知だと思いますが、iOSのバージョンがあがるたびにデザイン崩れはしばしば起こります。また、思わぬところでアプリがクラッシュすることもありますよね。最悪の場合、アプリ自体が起動しないということもありえます。したがって、次期iOSが一般公開される前に開発者は必ず既存のアプリが動作することを確認しなければなりません
また、例年通りだと翌年の2月あたりに、最新のiOSに対応していないアプリは審査に出せなくなります。結局、次期iOSについての調査や対応を年内に行うことになるので、早め早めに調査しておき、工数の見積もりや対応時期などを念頭においておくことが望ましいのではないかと思われます。

Beta版で何を調査すればよいのか

いくつかBeta版で調査すべきポイントがあります。

1.既存のアプリが正常に動くかどうか

一番大事なのがこちら。既存のアプリ(App Storeで現在公開されているもの)が今までどおり使うことができるかどうかです。

  • Beta版で既存のアプリが起動するか
  • Beta版で既存のアプリがクラッシュしないか
  • Beta版で既存のアプリが正しい処理を行えるか
  • Beta版でデザイン崩れがあるか

もし、Beta版をインストールした端末で既存のアプリが起動しない場合、緊急で対応が必要です。例年通りだと、9月の下旬には次期iOSが登場するので、それまでに修正してApp Store上で公開しなければなりません。さもないと、ユーザが次期iOSにアップデートした途端、アプリが利用できなくなってしまいます。デザイン崩れは許容できる範囲なら次期iOSのリリース後でも大丈夫ですが、「取引する金額が一部見切れる」など致命的なデザイン崩れはすぐに対応すべきです。

2.次期iOS SDKでビルドして動作確認

iOS SDK内に含まれるクラスやメソッドなどに注目。新しく登場したクラスもあれば、既存のクラスが非推奨になることも。以前に非推奨になっていたクラスが使えなくなることもあります。

  • 次期iOS SDKで既存のプロジェクトがビルドできるか
  • 次期iOS SDKで既存のプロジェクトをビルドしたときのWarningの調査

これが毎回けっこう大変な作業になります。ビルドが通らないことなんてしばしば。まずはビルドが成功することを目指して、ちまちまとコード修正することになります。iOSの仕様変更にともない、既存のメソッドが動かなくなることもあります。そのあたりはAppleのリリースノートをチェックしましょう。

3.Apple純正のアプリを使ってみる

iOSが新しくなると標準でインストールされているApple純正のアプリもアップデートされます。UI/UXががらっと変わるアプリもあったり、アイコンのデザインが変わるものもあります。これらを使ってみることで、今トレンドとなっているUI/UXを知ることができますよ。自分のアプリのUI/UXの見直し材料としても使えるかと思います。

  • 新しくなったApple純正アプリのUI/UXをチェック
  • Spotlightや通知、ロック画面などすべての画面を一通り触ってみる

iOS10だと「ミュージック」「マップ」アプリやWigetページは要チェックですよ。

4.新機能を試す

毎年iOSはバージョンアップするたびに新機能が追加されています。その新機能をいち早く使ってみて、自分のアプリに活かせないかどうかを検討するのもよいでしょう。次期iOSが正式リリースされた直後に、新機能を実装したアプリを出せば競合他社に差をつけられるかもしれません。

  • 次期iOSの新機能についてAppleのホームページで確認
  • 次期iOSの新機能を仮実装してみる
  • 新機能をチームメンバにフィードバック/提案

新機能に素早く対応しているアプリをみると、羨ましくなりますよね!

iOS Beta版の調査に必要なもの

f:id:Kamekiti:20160813172437j:plain
Beta版を調査する上で必要なツールや情報源があります。うまく活用しましょう。

1.Xcode Beta版

iOSのBeta版を使うにはXcodeのBeta版が必要です。Apple Developerサイトからダウンロードできます。
既存の(App Storeからダウンロードした)Xcodeは削除せず残しておきましょう。あくまでBeta版の調査ということで、既存の開発環境に影響を与えないようにしておくとよいです。後述しますが、Xcodeは各バージョンごとに共存させることが可能です。

2.iOS Beta版をインストールした実機

Xcode Beta版ををインストールすると、次期iOSが試せるシミュレータがついてきます。シミュレータで確認してもよいですが、可能ならば実機を使うことをおすすめします。後述しますが、iOS10からBeta版のプロファイルを実機にインストールするだけで、通常のアップデートと同様にiPhoneをBeta版へアップグレードさせることが可能です。アップグレードする前にバックアップは必ず済ませておきましょう。できれば自分の端末ではなく、会社などで購入したテスト用の端末が利用できると助かりますね。

3.次期iOSに関する情報収集できるサイト

一体どんな新機能があるのか、何が変わったのか、困ったときにどこに相談すればよいのか。Appleから公式に様々な情報が提供されるので、随時チェックしましょう。

WWDCの動画

AppleWWDCのセッションをすべて動画で公開してくれています。新機能はもちろんのこと、今後の開発に役立つ情報が満載です。すべての動画を網羅するのは時間的にも厳しいので、その都度必要な情報をかいつまんでチェックするのがよいかと思います。QiitaなどにWWDCのまとめ記事もたくさんありますので、まずはそこからチェックするのもよいでしょう。
Development Videos - Apple Developer
WWDCのセッションの動画やPDF、サンプルコード一括ダウンロードするツールもあります。
github.com
github.com

リリースノート

当然ですが、Beta版がアップデートされるたびにAppleから公式のリリースノートが公開されます。リリースノートを見れば、何が変更されたのか、既知のバグなどの情報を知ることができます。全部読むのは大変なのでこちらも必要な部分のみチェックしてみましょう。
iOS Release Notes

Developer Forums

Apple公式の掲示板です。誰でも検索してスレッドを閲覧することができます。Apple Developer Programに参加しているユーザのみ、スレッドを作成したり返事を書いたりすることができます。また、Appleのエンジニアが返事をくれることもあります。特にBeta版の情報は、Developer Forums内で活発に議論されていますよ。
Developer Forums - Apple Developer

iOS Beta版の調査手順

毎年Beta版の調査をしているのですが、だいたいやる手順が決まっているので、ざっくりとご紹介。

1.次期iOSに関する情報を確認

ベストはWWDCに参加することですが、惜しくもチケットがとれず参加できなかった場合は、自宅でWWDCの動画をチェックしましょう。KeynoteやPlatforms State of the UnionはWWDCの要点がまとまっているので必見Keynoteは日本語記事も大量に書かれるので、嫌でも目につくかと思います。その後は、次期iOSの噂をそこらへんの日本語記事で確認しつつ、WWDCの動画で詳細をチェックします。WWDCに参加した方々のレポートを見るとやる気が出てくるのでおすすめ。

2.習うより慣れよ、実機にBeta版をインストー

実際どんな感じか試したいので、Beta版をインストールしてみましょう。もちろんバックアップをとってから。
f:id:Kamekiti:20160813112819j:plain
Apple Developer サイトからBeta版をインストールします。実機からアクセスしてプロファイルを端末にいれるだけ。あとは「設定」→「一般」→「ソフトウェアアップデート」からBeta版へアップデートが可能です。楽ちん。

3.既存のアプリを確認する

App Storeで公開されている既存アプリをBeta版の端末にインストールしてみます。無事起動できたらひとまずOK、動作確認を一通り行いましょう。起動時にクラッシュしたら顔面蒼白、すぐさま原因調査です!(調査の仕方は後述するTipsをご覧ください。)

4.Xcode Beta版をインストー

次期iOS SDKでビルドを試みるため、XcodeもBeta版をインストールします。この際、いつも使っているXcodeは削除せず残しておきましょう。
f:id:Kamekiti:20160813112712j:plain
Beta版との共存の仕方はいたって簡単で、Beta版をダウンロードしてインストール後、「Xcode Beta 5」など既存のXcodeと別の名前をつけてあげればOKXcodeのBeta版もApple Developer サイトからダウンロードできます。容量がかなり食うので注意……。

5.いざ、ビルド

Xcode Beta版で既存のプロジェクトを開き、ビルドをしてみます。だいたいビルドが通りません。頑張ってエラーを解読し、なんとかビルドを成功させましょう。ひとまず起動させることを目標に頑張ります。Warningはたくさん出ると思いますが、ひとまず無視で。

6.動作確認

次期iOS SDKでビルドしたアプリの動作確認です。デザインが崩れている部分は都度スクリーンショットを撮っておきましょう。動作がおかしいところもメモしておきます。

7.修正の見積もり

一通り動作確認をした後、修正すべき点を洗い出し、見積もりを出します。Warningsもすべて修正しておいたほうが後々苦しまないで済みますよ。次期iOSの対応だけで大丈夫かと思いきや、Swiftも新しくしないといけないなど、予期せぬ事態が発覚することもあるでしょう。毎年なにかと手間暇かかりますよね。

Tips

豆知識をいくつか紹介します。

Beta1から調査すべきか

Beta1はいつもバグだらけなので個人的にはスルーしています。Beta2、Beta4など少し間を空けて確認するだけでもよさそうです。時間が許されるのなら、全バージョンで確認することに越したことはありませんGM版はほぼリリース版と変わりないので、必ず確認しておきましょう。

プロジェクトは新しくCloneする

新しいXcodeでいつも作業しているプロジェクトを開いた後、既存のXcodeで再度そのプロジェクトを開くと挙動がおかしくなることがあります。念のため別の場所に新しく git clone してそこで作業したほうが思わぬ事態に巻き込まれることがないのでおすすめ。

Xcodeを共存させる

f:id:Kamekiti:20160813112855p:plain
先ほども述べましたが、Xcodeは複数バージョン共存させることができます。名前を変えておけばOK。

古いXcodeでBeta版をインストールした端末でデバッグする

既存のXcodeにBeta版をインストールした端末を接続すると、「そんなバージョン知らないよ」とXcodeが警告を出します。Xcode Beta版から対応端末情報をコピーすれば回避できますよ。たとえば、Xcode 7でiOS9 SDKでビルドしたアプリをiOS10の実機でデバッグするときに活用できる技です。
まず、Xcodeを右クリックしてパッケージの中身を表示させましょう。「Contents」→「Developer」→「Platforms」→「iPhoneOS.platform」→「DeviceSupport」内にXcodeが認識できるOS情報があります。
f:id:Kamekiti:20160813171625j:plain
たとえば、このようなパス「/Applications/Xcode8-beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport」。DeviceSupport内にある「10.0 (14A5335a)」のようなBeta版のOSが記載されているディレクトリをまるごとコピー。既存のXcodeのDeviceSupport内にペーストしてあげます。そうすれば、既存のXcodeでもBeta版のOSを認識してくれるようになりますよ。

Beta版のバグを発見したら

Appleへバグレポートを出しましょう。Apple Bug Reporterというバグレポート用のサイトが用意されています。再現手順やバグが起こる端末情報などを記載してAppleへ送信。再現させるためのサンプルアプリを添付することが望ましいです。
f:id:Kamekiti:20160813112938j:plain
私もiOS10 beta4のときにバグを見つけてレポートを出しました。Appleからは『他のユーザから同様のレポートが提出されているから「重複」というステータスに変えました』と連絡がありました。正式リリースまでには修正されると思われます。

おわりに

Beta版の調査、意外と手こずりますが、早めにやっておくと後々慌てなくて済みます。Beta版の調査に時間を割けられるくらい余裕を持った開発を普段から行いましょう笑