事の背景
昔、公務員として土木業界で働いていたのですが、当時の現場作業を簡略化できるアプリを作りたい、、、
そう思い経験0のFlutterに手を出してみた。
いざ、リリースに向けて内部テストでabbファイルをアップロードするも、スマホにインストール後「開く」ボタンが出てこず起動できない。。。
私が愛してやまないflutter cleanコマンドと とビルドを繰り返すも全く解決せず、ということで本当に泣きかけていた。
結論
AndroidManifext.xmlファイルの は、初期から追加する際は別タグを用意する必要がある。
助けてくださったサイトはこちらです、、、本当にありがとうございました!!!!
https://note.com/chute/n/n75cde5f1712a
症状の詳細
こちらではgoogle play consoleの詳細は省く。
内部テストでリリースしたアプリのURLをスマホで開き、アプリをインストール。
インストール後、「アプリを開く」ボタンがどこにもない、、、、
ここで雲行きが怪しくなり、cleanコマンドを繰り返すだけのマシンとなってしまった。
対応策
intent-filterタグにて、プロジェクト開始から入っている
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
だけを一つのタグで囲み、後で追加するものについては、別タグを作成して囲んでやる必要があるようだ。下記のような対応。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ <intent-filter>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent-filter>
「これだけで動かないだろ~」と思っていたら、本当に解消してしまった。。。
タグの概念が覆った瞬間だった。。。
そしてこれを見つけてくださった方本当に感謝でいっぱいです。
きちんと「開く」ボタンが表示されてアプリの起動ができました。
思ったこと
正直、これはわからなかった。
きちんとした公式ドキュメントには記載されているのだろうか?自分が公式ドキュメントを一切読めないエンジニアなので、これからは公式ドキュメントをきちんと読むこととしたい。
今回は、先駆者の方のサイトに助けられてよかったが、あのサイトがなければまだこの記事すらかけず、
アプリのリリースをあきらめていただろう。