開発しているアプリを実機で確認したい場合、通常は、「iOS Developer Program」の「Certificates,Identifiers & Profiles」から、実機登録を行なって、AdHoc配信でインストールするかと思いますが、開発者が多い場合や、イベントの時だけなど、端末を登録したくない理由がいろいろ出てくると思います。
この場合に、もし、エンタープライズライセンスを持っている場合は、社内向けに配布ができる、In-Houseという配信方法があるので、それを活用して、開発中のアプリをインストールできるようにすると便利です。
ただ、In-House配信も簡単にとはいかないので、これもfastlaneのコマンド一発で、crashlytics もしくは、Firebase App Distribution までアップロードし配布できるようにすると、かなり運用が便利になります。
必要あれば、CircleCIなどのCIサーバーに、自動で実行するジョブをセットすれば、もっと楽になります。
この場合に問題になるのが、証明書やProvisioningProfileやTeamIDなどを、ビルドの際に指定する必要があって、非常に煩わしいので、メモがてら残して置こうと思います。
自分は、以下のようにfastlaneのコマンドを作成しました。
desc "Deploy a new version of In-House to the Crashlytics Beta "
lane :inhouse do
# Download and install certificate
if is_ci?
match(
type: 'enterprise',
keychain_name: keychain[:name],
keychain_password: keychain[:password],
app_identifier: ENV["IN_HOUSE_APP_ID"],
team_id: ENV["IN_HOUSE_TEAM_ID"],
force_for_new_devices: true
)
else
match(
type: 'enterprise',
app_identifier: ENV["IN_HOUSE_APP_ID"],
team_id: ENV["IN_HOUSE_TEAM_ID"],
force_for_new_devices: true
)
end
# Update build number
increment_build_number
## Change application icon to beta version
add_badge(alpha: true)
# enterpriseを指定してビルド
build_app(configuration: ENV["IN_HOUSE_CONFIGURATION"], export_method: "enterprise")
// TODO: crashlytics もしくは、Firebase App Distribution で配布
...
end
これを、direnvを使って、環境変数をセットしています。
export IN_HOUSE_APP_ID="AppID"
export IN_HOUSE_CONFIGURATION ="inHouse"
export IN_HOUSE_TEAM_ID="**********"