FlutterアプリをiOSのTestFlightで配布する手順【前編】

# Test Flightへの配布手順

Flutterで将棋アプリを作成していて、大体出来上がってきたので`Test Flight`でベータ版を配布したい。

手順が長いので分割して投稿します。


# 証明書発行

macの`アプリケーション`→`ユーティリティ`→`キーチェーンアクセス`を開く。

メニューの`証明書アシスタント`→`証明局に証明書を要求`をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/9209c13d-0d9f-70b3-8882-a40516ce6dac.png)

ユーザのメールアドレスを入力して要求の処理をディスクに保存にする。

保存先に`CertificateSigningRequest.certSigningRequest`ができる。

# Apple developerサイトにて


`Certificates, Identifiers & Profiles`で`Certificates`→`Certificates`のプラスボタンを押して、`iOS App Development`を選択して`Continue`ボタンを押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/824e52f0-e545-17d0-3153-710ee8ef1747.png)

## アプリIDを登録する

`Certificates, Identifiers & Profiles`で`Identifiers`の`＋（プラス）`ボタンを選択し、`App IDs`を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/0497be84-4542-958a-4044-9fdd627d4966.png)

`Select a type`で`App`を選んで`Continue`ボタンを押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/ac7542b5-9167-4304-1b41-0c13adc32b5b.png)

`Register an App ID`でDescription（アプリを特定できる名前、あとで変更可能）とBundleIDを記入して`Continue`ボタンを押す。内容を確認し`Register`ボタンを押す。



## 配布できるようにする

同じく`Certificates, Identifiers & Profiles`で`Profiles`→`iOS App Development`を選択して`Continue`ボタンを押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/6d2b10ce-4a29-24a9-8eeb-2b2e3b773297.png)

さきほど登録したApp IDを選択して`Continue`ボタンを押す。次にCertificatesにさきほど登録した


同じく`Certificates, Identifiers & Profiles`で`Profiles`→`Distribution`の`App Store`を選択して`Continue`ボタンを押す。

## app store connectにアプリを登録する

[サイト](https://appstoreconnect.apple.com/login)でログインし、`マイAPP`をクリック、
`＋（プラス）`ボタンを押して、`新規App`を選択する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/5339a47b-ff65-93e7-9b1d-1db726d7ddf6.png)

下記を入力
プラットフォーム：iOS
名前：アプリの名前（後から変更可能）
プライマリ言語：日本語（リリースしたいメイン言語）
バンドルID：上記で設定したBundleIDを選択
SKU：管理上の名称
ユーザアクセス：アクセス制限なし

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/aa3599d8-1fbe-73d7-9d56-364dc771040a.png)

作成を押して、下記のようにアプリが表示されていればOK。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/eb8a274e-406a-589f-9b0a-de7eca6c6967.png)

# XCodeからアップロード

Generic iOS Deviceを選択して`Product`→`Archive`を選択する。
`Validate app`を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/47193d9b-a3f4-3b11-72da-99ffb4166d02.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/8e60d165-cab9-dd26-0189-e17730a01c7f.png)


ここで２つエラーが発生。

```
App Store Connect Operation Error 

Invalid Signature. A sealed resource is missing or invalid. The file at path[/] is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate.
Verify that the code siging settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose "Clean All" in Xcode, delete the "build" directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html

App Store Connect Operation Error 
Invalid Bundle. The bundle xxx.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.plist.

```

1つ目は`General`の`display name`を日本語から英語に変更したら解消。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/e068d1c0-d641-d658-f0a6-9f26b8040356.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/b37be948-c4fc-6c3d-dad0-9269fe6aa4ea.png)

もう一つの対応方法は[こちら](https://qiita.com/kz23szk/items/d2baf5f9ac84041ed07b)を参照。

終わったら`Distribute App`を押して`App Store Connect`を選択して次に進む。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/2c35c467-5f7c-4897-3b07-00be56c4fdf9.png)

`Upload`を選択して次に進む。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/b872ab82-700c-2edb-75b0-32775ee7f4bd.png)

デフォルトのままで次に進む。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/c0edc5f4-0419-ceb0-5548-d3213378b5e9.png)

デフォルトのままで次に進む。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/86268b9a-0d39-ec58-c728-f204d21edb4f.png)

`Upload`ボタンを押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/65f0dd2e-3481-aa14-826e-5ffe4ff7ffc2.png)

成功すると`App Runner successfully uploaded`が出るので右下の右矢印マークを押すとApp Store Connectサイトに飛ぶ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/107119/7da04f86-90c8-eecd-2729-a24c9c841385.png)

続きは後編（未投稿）へ