大抵の場合「現在ダウンロードできません。」といったダイヤログが表示されますが、それだけだと情報が少なすぎるのでよくある原因を挙げてみました。
チェック項目
OSバージョン
-
アプリがサポートする最低OSバージョンを満たしているか
-> iOS9以上が対象のアプリをiOS8の端末にインストールしようとしている場合など。 -
インストールしようとしている端末のOSが最新で、かつOSのアップデート直後ではないか
-> 最新OSになったことでエンタープライズApp関連の仕様が変更された可能性があるので、調査する。過去には設定から企業を信頼(許可)しないと起動できなくなるといったことがあった。また、iOSのバグで以前のOSで一度インストールしたことがあるBundleIDのアプリがインストールできなくなるということもあったので、TwitterなどのSNSでの検索もした方が良い。
端末
- iPad専用アプリをiPhoneでダウンロードしようとしていないか
Provisioning Profile
-
プロファイルに必要な設定が入っているか
-> アプリによってはプロファイル側で設定が必要な機能を利用している場合がある。(iCloudなど。XcodeではTargetのCapabilitiesから設定)
このように設定されたプロファイルが必要なアプリに対して、ワイルドカードのプロファイルを使っているとダウンロードが失敗する。 -
プロファイルの期限は切れていないか
-> プロファイルの期限は作成から1年(2017/5現在)で切れるため、切れていた場合は更新してセットし直す。この場合は同じプロファイルで入れたアプリの起動もできなくなりますが、切れたらすぐ起動ができなくなるというわけではなく、少し時間が経ってから起動できなくなるようです。
証明書
- 証明書の期限は切れていないか
-> AppStoreへの提出用の証明書と異なり、エンタープライズ配布の証明書では期限が切れるとダウンロードできなくなります。この場合は同じ証明書と紐付いたプロファイルで入れたアプリの起動もできなくなりますが、こちらも切れたらすぐ起動ができなくなるわけでは無いようです。
manifest.plist
- manifestに定義するBundleIDがアプリのBundleIDと一致しているか
-> 経験上、一度でも同じBundleIDでインストールしたことがあればその後は一致していなくてもダウンロードに成功してしまっている気がするので、新しい端末に入れる時に突然発生する印象です。
その他
- 3Gで接続しているなど、通信が不安定な場合にインストール失敗になることもありました。
- CLIからビルドしている場合は、XcodeからArchiveしてみるとエラーが表示されることもあります。
- インストール失敗する端末をMacに接続して Xcode -> Window -> Devices からログを確認できます。