Windows機でiOSアプリの開発から実機インストールまで行ってみる【ReactNative】～実機インストール編～

[前回（開発編）](https://qiita.com/NAO1998/items/ef37009849917e3e56ff)の続きです！

#今回の作業の流れ
・ipaファイルを取得
・App Store Connectにアプリを登録
・ipaファイルをApp Store Connectにアップロード
・実機へのインストール

#ipaファイルを取得
`expo build:ios`を実行することによって、リリース用またはエミュレータ用のipaを発行できるようになります。

```powershell:実行後
√ Choose the build type you would like: » archive

Checking if there is a build in progress...

Accessing credentials for XXXXX in project training-app
√ Do you have access to the Apple account that will be used for submitting this app to the App Store? ... yes

› Log in to your Apple Developer account to continue
√ Apple ID: ... YYYYYYYYYY
› Restoring session C:\Users\hobby\.app-store\auth\YYYYYYYYYY\cookie
› Session expired Local session
› The password is only used to authenticate with Apple and never stored on EAS servers
  Learn more: https://bit.ly/2VtGWhU
√ Password (for YYYYYYYYYY): ... ********
› Saving Apple ID password to the local Keychain
  Learn more: https://docs.expo.io/distribution/security#keychain
√ Logged in New session
```
ipaの形式は`archive`を選択して、Apple Developer Programアクティベート済みのApple IDでログイン、その後は全てExpoに任せる（Let Expo handle proceess）を選択しましょう。
成功すると、下の画像のようにURLが現れます！
![7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/ecde66bc-ec0a-9771-9ace-ffa358fbcce0.png)
このリンクに飛んで、ipaファイルをダウンロードしましょう！
ちなみにこのipaファイルはiTunesを使って端末に直接インストールすることはできません。（AltStoreで無理矢理インストールすることはできますが、起動後にクラッシュします）

#App Store Connectにアプリを登録
ipaファイルをアップロードする前に、App Store Connectにアプリの情報を登録しましょう。
[こちら](https://appstoreconnect.apple.com/)からログインできます。
ログイン後、マイApp⇒左上の⊕⇒新規Appへと進みます。ここでアプリの名前、プライマリ言語、バンドルID、SKU（アプリの固有ID）を設定します。
バンドルIDは、末尾にapp.jsonのexpo.ios.bundleIdentifierと同じものを選択してください。
「作成」を押せば登録完了です！！
![19.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/32f135fa-7999-07ca-cd06-6ce6fc465c0e.png)

#ipaファイルをApp Store Connectにアップロード
アップロードする前に、**App用パスワードなるものを発行する必要があります。**
まずは[ここ](https://appleid.apple.com/)アクセスしましょう。ログインしたら、「セキュリティ」→「App用パスワード」→「パスワードを生成」を選択します。認証用のパスワードラベルを登録し、AppleIDのパスワードを入力すると「xxxx-xxxx-xxxx-xxxx」という形のパスワードが発行されます。このパスワードは、アップロード時にまた使うのでこのままにしておいてください。
![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/dec1d640-fcff-96a0-7a02-e72803092797.png)

いよいよアップロードしていきます！しかし、App Store Connectではアプリの情報は登録することはできますが、肝心のipaファイルをアップロードすることはできません
そこで、AppUploaderというツールを使います。下のリンクからWindows用のファイルをダウンロードしてください。

http://www.appuploader.net/appuploader/download.php

ダウンロードして実行すると、このような画面になると思います。
![9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/9d49e988-e0c4-1d7b-2f8e-aa667fd7bdaf.png)
ipaをアップロードしたいので、左上の「Upload IPA & Meta」の枠の「Select I…」を押します。
すると、「Set specific password」という画面が出てきます。
ここで注意してほしいのが、**passwordはAppleIDのパスワードではなく、先程発行したApp用パスワードです。**コピペしてから「Save」押して認証に成功するとアップロード画面に進むことができます。

アップロード画面上部の「Select」からダウンロードしたipaファイルを選択して「Start」します。
するとログがいっぱい流れて最終的に下の画像のようなウィンドウが出現すれば成功です！
![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/256c8318-cb8c-6710-740c-0b8c6aedadc1.png)

#実機へのインストール
TestFlightの内部テスト機能を使って、**Appleの審査なしで実機へインストールすることができます。**まずは[App Store Connect](https://appstoreconnect.apple.com/)に戻って、アップロードしたアプリの情報入力画面で「TestFlight」のタブを選択します。
左メニューの「App Store Connectユーザ」からテスターを追加することができるので、自分を登録しましょう。
![15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/26a328b5-86c1-0fe8-2fb3-c3818036d94c.png)
また、「ビルド」で注意マークが出ている「輸出コンプライアンス情報」にも同意してください。
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/1c300cf7-0357-4338-d24b-b8a869b6c4c4.png)
これでテスターとして登録していたメールアドレスにリンク付きのメールが届くはずです！
リンクに飛ぶと、大文字アルファベット8桁のコードが書いてあるので、それをメモしておいてください。
今度は端末側の操作です！App Storeから[TestFlight](https://apps.apple.com/jp/app/testflight/id899247664)をインストールしてください。起動したら、右上の「コードを使う」から先程メモした大文字アルファベット8桁のコードを入力します。
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1711764/b402b971-e2ef-f26b-be48-85b0102da440.png)
無事インストールすることができたらちゃんと起動するはずです！App Storeにリリースしたい場合はApp Store Connectからアプリの情報を入力して審査へ提出しましょう。ただ私用に使うならここまででいいかもしれません。

以上です。お疲れ様でした！