Apple Developer Programの登録なしでIPAを作成し、Device Farmでテストしてみた

2021.09.01

いわさです。

これまで、AWS Device Farmのブログをいくつか書いて来ました。

iOSネイティブアプリに関するためしてみた、が無いことに気づきましたでしょうか。
iOSネイティブアプリについてはApple Developer Program(ADP)のメンバーシップ登録が必須だろうとこれまで思っていました。
そして、私は現在Apple Developer Programのメンバーシップアカウントを所有していないので、iPhoneについてはWebアプリテストのみと諦めていました。

しかしながら、非ADPメンバーシップアカウントでもXcode上で実機と接続しビルドと動作確認を行うことは可能です。
その際はXcode上のアーカイブメニューから配布用IPAを作成することが出来ません。 発行や公開は出来ないが開発のために実機へデプロイすることは可能ということです。

そして、どうやら非ADPアカウントの開発証明書でサインされたAPPファイルでも自分でIPAファイルを作成すればAWS Device Farmで動かせるようなので試してみました。

APPからIPAを作成

IPA作成方法はDevice Farmに限らない一般的な方法なのですが、GitHubのAWSサンプルリポジトリでもその方法が案内されています。

実行用に署名されたIPAファイルを新規作成したPayloadフォルダに入れて、Zip圧縮し、拡張子を.ipaに変更するだけです。
なお、出力先はXcodeのPreferencesのLocationsから確認が可能です。

ちなみに、この方法で作った場合、プロビジョニングプロファイルの期限は1週間となっています。

Device Farmでテスト

先程作成したIPAファイルをDevice Farmでアップロードしてみましょう。
無効とならずにアップロードに成功しました!

テストについては今回は焦点ではないので、組み込みのFuzzテストを利用します。
Fuzzテストは雑にいうとDeviceFarmに最初から組み込まれているランダムテストです。
ランダムなUI操作を行ってくれます。
詳細は以下を参照してください。

ターゲットiOSバージョンを満たすデバイスを選択しましょう。

Xcodeで新規作成した直後のアプリケーションなので何も確認出来ることはないのですが、テストが成功しました。

録画されたビデオキャプチャを確認してみると、先程作成したアップロードが仮想デバイス上でちゃんと実行されていることが確認出来ます。

まとめ

Apple Developer Programの有料メンバーシップに未登録でもネイティブアプリを作成してDevice Farmでテストすることが確認出来ました。
CI/CDなどで組み込む際はXcodeの発行コマンドを使う必要があると思うので、その際には有料メンバーシップ登録が必要そうですが、まずDevice FarmのiOSを試してみたい、という方には良い方法ではないでしょうか。