【Xcode】Archive→ipa作成まで

キャプチャ多め
2020/10/30現在のキャプチャです
Xcode ver 11.3
#想定
動作確認をしたい人が遠方にいて
サクッと現状のアプリを試しに手元の端末で使ってみたい時。
ストア経由のAdHoc配布、Enterprise配布等ありますが、
今回は審査もなく手頃な方法の後述する**Development**で進めます。

#まずアーカイブ
ipaを作るにはアーカイブが必要なので実行します。
Xcodeの `Product → Archive `でアーカイブ実行できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/644a4a82-d2f1-6c89-1037-884218e6c4bc.png)


**Archiveがグレーアウトして実行できない時**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/cc79e775-ce0e-f51c-7f16-5cf7f8b34b2d.png)
作業の過程でSchemeメニューの実行ターゲットをシュミレータや実機を選択していることが多いと思いますがアーカイブ時は**Generic iOS Device**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/6c96c800-fb4c-8508-7b03-7100a8a76b15.png)


#アーカイブからipa作成
アーカイブが終わるとこんな画面が出てきます。
Organizer画面というそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/f3882b1a-1b40-22d5-9230-9b8d7f99812f.png)
間違えて閉じちゃったら`Window → Organizer`もしくは`⌥option + Shift + ⌘ + O`で開けます。

今回実行したアーカイブを作成日やバージョンから判断して選択。
画面右の**Distribute App**をクリックします。

****
**Select a method of distribution:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/9c92db65-659a-f096-44b1-088e1c3108d6.png)
ここではインストールできるデバイスを指定できます。
**Development**はロール権限がDeveloperでも作成できて、インストールできる端末はApple Developerサイト（https://developer.apple.com/account/resources/devices/list） に登録してある端末のみにはなりますが、開発用署名のみでipaを作成できます。

今回はこの**Development**を選択して進めます。
→**Next**
 
****
**Development distribution options:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/fefc2579-1da4-d859-0325-0c4a610ae89c.png)
**Rebuild from Bitcode**にデフォルトでチェックが入っていますが、
これの有無でこの後の**Preparing archive for distribution**画面の処理時間に結構な差が出ます。
チェックを外すと早くなって10秒もかからないくらい。
チェックをつけると２、3分かかりました。

これ、いつ使うかちょっと調べてみると、
app store connectにアップする際に機械語の状態でアップロードして、
将来的にアプリを入れ替えずにApple側で最適化されたアプリがストアに並ぶんだとか。

今回Developmentで進めているので想定としては動作確認。
例えばテスターに配布するipa作成に毎回時間かかっても仕方ないし、
今回はRebuild from Bitcodeだけチェックを外して進みます。
→**Next**

****
**Select certificate and iOS App Development profiles:**![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/7ecf97b0-4ef2-b00a-0385-f814b4316479.png)
証明書と開発用署名を選択します。
→**Next**
****
**Preparing archive for distribution:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/d03ad4b9-d1b9-331b-2458-9f325c6e9cb5.png)
数秒or数分待って
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/8ac3db92-e335-4dcd-f5f2-d22649ebc0bd.png)
いよいよ伏せ字ばかりで申し訳ないですが…
作成結果が出てきました。
あとは書き出しだけです。
→**Export**

****
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/02306d81-622e-8247-af23-5149302a4c24.png)
保存する場所を選んで名前をつけて→**Export**
今回はデスクトップ
![IMG_3398.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/829684/d2a5d57d-5316-8f59-aa93-7bdd5f707dd7.png)

Desktop.
└AppName 2020-10-30 17-14-57
  ├**AppName.ipa**
  ├DistributionSummary.plist
  ├ExportOptions.plist
  └Packaging.log

無事ipaが作成できました。
シュミレータにドラッグ＆ドロップしたり配布サーバーにアップしたり、
Xcode経由で端末にインストールしたりできるので便利。

#参考
 Rebuild from Bitcodeについて
・https://shigu493.com/iosアプリのbitcode対応とは/

# 終わり
Qiita初投稿のandroid開発者です。
iOSの勉強始めました。
ご指摘等ありましたらコメントお待ちしております。