iOS版の「ありがとうカウンター」を先週やっとストアに公開することができました🎉
本アプリはFlutterというAndroidもiOSも同じソースコードで動作するのがウリのアプリ開発に特化したフレームワークを使って開発しています。
Flutterを使ったアプリの開発は「ありがとうカウンター」が初めてではないのですが、Android版とiOS版の両方をストアに上げることを目的として開発したのは初めてだったので、色々と新鮮な体験ができました。
本アプリでは、ネイティブの機能(本アプリでいえば音声認識機能)を使用していますが、OS間での差異が多少はあるだろうと想像していましたが、結果的に想像以上の差異でした。AndroidとiOSでは当然音声認識エンジンの挙動が違うだろう、というのは容易に考えられることですが、iOSのバージョン間での違いがそれもマイナーバージョンが違うだけで挙動が異なる、というのは盲点でした。
それだけ、音声認識の精度が日に日に上がっていってバージョンアップされている、ということですね。
それを使用する開発者にとっては少々頭が痛いところであり、かつ
次のOSバージョンアップでまたコードに手を入れないといけないかも、ということです。
そんなわけで、Android版のリリース後iOS版のテストを開始したら改修に思ったより時間がかかってしまいました。
で、本題。
今回Appleのアプリの審査で2回却下されました。
1回目は、音声認識されないしカウントもされないけど?という内容。
2回目は、ATT許可のダイアログが表示されない、という内容。
1回目の却下は、本アプリのメイン機能が動かないというもの。
手元の端末では現象が再現せず正しく動作することから設定の問題では?と適当に当てをつけ、Appleの審査の人にキーボード辺りの設定を確認してもらいました。設定を見直したら正しく動作したようでOKとなりました。
2回目の却下は、ATT許可のダイアログが表示されないというもので、ATT許可とはパーソナライズ広告を表示しますか?のよくでるアレです。
広告を表示する場合iOS14以降ではユーザーに許可を取らないといけないのであのダイアログが出ます。
確かに表示されたり表示されなかったりで不安定だったのでループ処理で回避しました。ループよりも良い対応もあるかとは思いますが、初回の起動時のみ必要な処理なのと、一番処理結果が安定していたので、この方法を採用しました。
表示されない原因は長くなるので「おそらく表示タイミングが早すぎるから」とだけ記しておきます。
そんなこんなで修正版が受理され無事ストアにアップできました!
開発者は日々こんなことに格闘している、とかが伝わればいいな〜と思いこのエントリーを書きましたが、伝わりましたかね?
開発者は日々頑張っています。💪