個人的にずっと切望していたiTunesConnectの機能がついに実現していた。今日気づいたのでぜひ紹介してみる。
小さな変化だけど、このお手軽最終チェックのおかげで不幸な出来事を未然に防ぐ開発者が増えるのではないだろうか。
ちなみに、Model部分のロジックをやるユニットテストではなく、UIを自分でいじってする、”サブミット前にいろいろテストしたけど念のために最終チェックしよう”の話です。
アップデート審査通ればリリースする前にプロモコードでテストできる
以前のiTunesConnectだと、1.0.1バージョンとかの、アップデートされるアプリをストアにリリースする前にプロモコードが使えなかった。
ちなみに、一番最初のリリース(1.0)なら単純にリリース時期をずらす事によってリリース前にプロモコードでテストは昔から出来たのだが、その後のアップデートのバイナリではできなかった。
上記の写真だと、右上のプロモコードのボタンがなかった。これが表示されるのはReady for Saleになったアプリだけだった。
どういうことかを僕のTaxnoteで説明すると、
1.Taxnote1.0を始めてリリース。
2.Taxnote1.1という次のバージョンを審査に出す。
3.Taxnote1.1が審査に通る。
4.Taxnote1.1をストアに出す前に、開発者だけストアからダウンロードして最終テスト。
5.最終確認で問題なさそうなので、Taxnote1.1のリリースボタンを押して、全世界でTaxnote1.1にアップデートされる。
以前は4の部分ができなかった。
つまり、Taxnote1.1のアップデートが審査に通った後、自分だけプロモコードを使ってAppStoreからダウンロードしてテストするという最終確認作業が出来なかった。
やった。これがずっとやりたかった。GJアップル!
TestFlightでよくないかについて
もちろんTestFlightを使って、アップルにサブミットする時のバイナリをAdhocでアップロードすれば、ほぼ同じバイナリで実機テストすることはできる。
今までこうやってた。
でも、100%アップストアにリリースされるバイナリと同じという安心感、もっというとお手軽感はでかい。
ようは、テスト環境と本番環境という超えられない壁があり、プロモコード使うとリリース前に本番環境でテストできると。
最終的にストアにリリースされる次のバージョンのバイナリをTestFlightにアップロードして、それでテストしてたつもりが、なんかの間違いで少し微妙にバージョンが違ってて、それがバグに気づかない原因となり。。といったシナリオはなくなる。
そういった恐ろしい事は今までなかったけど、やっぱアップデートする直前って凄い怖いんですよね。
いろいろチェックしたけど、なんかの間違いでおかしなところないだろうか。。とか、なんとかリリースボタンを押す前に、このiTunesconnectにアップロードされている同一のバイナリを実機で最終テストしてみたいといつも思ってた。
I will Releaseでサブミット
この方法を使うには、アップストアに次のバージョンをサブミットする時、アプリが承認されたら自動的にストアにリリースされる設定ではなく、自分でリリースするタイミングを決める設定にしておく。
上記だと、下のI will releaseのほう。これだけでOK。
ちなみに、実はDeveloper Forumで去年の6月頃に、アップデートリリース前のバイナリでもプロモコード使わせてと書き込んだんですよ。
でも、TestFlight使えばいいじゃんと他の人にいわれて、もひとつ理解されなかった。
でも、今回のiTunesConnectで実現したので満足です。
TestFlightの配布ってやっぱ面倒な部分があって、受け取る側への負担もでかいけど、これで承認された次期バージョンをアップデート前に限られたグループの人だけに配布などできますね。
追記 ※3月6日
アップルのサーバ側の反映時間の関係で、たまにプロモコードを使っても現在のバージョンがダウンロードされてしまう時があるようです。
アンインストールして再ダウンロードしたらストアのバージョンがダウンロードされるなどの報告ももらいました。僕が試した限りでは、どちらの場合も次のバージョンがダウンロードできたので、たまに挙動が変わるのかもしれません。
挙動の情報提供にはSylfeed作者の@gachalatteさんにも教えてもらいました。@koogawaさんからは、iOS6、iOS7どちらでも成功したとも教えていただきました。
追記 ※3月23日
アップルにアップデート版が承認されて、すぐプロモコードを使おうとしても、「エラー:このコードで利用できるバージョンはダウンロードに対応していません」というエラーが出ました。承認後8時間たってもこのエラー出ました。次の日の朝まで待ったら問題なくいけました。
*家計簿と読み上げのアプリ作ってます。自己紹介と過去ログはこちら。