当社には、Enterprise Distributionを使用してWebサイトからダウンロードできるアプリがあります。
IOS 8 Beta 5では、ダウンロードリンクをタップすると、「(ウェブサイト)はインストールしたい(アプリ名)」というポップアップが表示されます。そのダイアログで「インストール」をタップすると、最初にアプリが「Waiting ...」でスタックします
「アプリをダウンロードできません(アプリ名)は現時点ではダウンロードできませんでした」と最終的に示されるまで。
IOS 7を使用すると、インストールは期待どおりに機能します。
IOS 8でXcodeからアプリを実行すると動作します。
Enterprise Distribution iOS 8をどのようにサポートしますか?
おそらく、マニフェストファイルに変更を加える必要がありますか? Xcode 6 Beta 7でアプリをビルドしようとしたときに、エンタープライズアーカイブプロセスでマニフェストファイルの作成を求められませんでした...
私のアプリのいずれかをインストールしようとしている電話ホイストのコンソールを見て、私は発見した:
Sep 9 12:16:56 iPhone misagent[94] <Error>: attempt to install invalid profile: 0xe8008011
Sep 9 12:16:56 iPhone installd[40] <Error>: 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired)
私が知らない理由は、Appleが私のプロファイルの半分を無効にし、私に警告しませんでした。 developer.Apple.comにアクセスした後、無効なプロファイルを見つけます。
ヒットEdit
-> Generate
-> Download
新しいプロファイルでアプリケーションを再構築します。
しかし、悪い知らせはまだ私のアプリの少なくとも1つがインストールに失敗していることです。コンソールを覗いても何も得られません。これはAppleバグであると確信しているので、レーダーを提出しました:17622725
あなたの問題がプロファイルの問題であることを願っています。そうでなければ、Appleが修正したかどうかを確認するために今夜1800GMTまで待つ必要があります。
編集
IOS8でGM-Waiting...
を取得しました-バグレポートの進捗状況を常にお知らせします。
編集
トラブルシューティング後、いくつかの修正が見つかりました。
修正1
IOS8の時点で、マニフェストplistでリンクしているイメージが存在しない場合-Appleは電話にアプリケーションをインストールしません-ダウンロードページでリンクするファイルであるマニフェスト:itms-services://?action=download-manifest&url={url}
full-size-image
とdisplay-image
の両方が存在することを確認します。
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://{path_to_real_image}</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://{path_to_real_image}</string>
</dict>
修正2
IOS8のバグにより、以前にiOS7に存在していたエンタープライズアプリケーションはインストールされません。コンソールにエラーが表示されます:
Ignore manifest download, already have bundleID: {bundle_id}
これは、マニフェストファイル内のbundleID
を一時的に変更することで修正できますが、Appleはバグレポートを重複としてマークしたため認識しています。内部テストの後、ホーム画面レイアウトGeneral -> Reset -> Reset Home Screen Layout
を休ませることで問題を修正することもできます
修正
installing...
とは対照的に、アプリケーションがloading...
ステージに入るのを見る場合、ほぼ確実に問題はembedded provisioning profile
の有効期限が切れていることです。ダウンロードを修正するには、アプリケーションを再アーカイブする必要があります新しい、更新されたプロビジョニングプロファイル。
修正4
アプリケーションがinstalling...
ステージに到達し、provisioning profile
が有効な場合は、コンソールに接続したままアプリケーションをダウンロードしてください。 (Xcode 6>ウィンドウ>デバイス>左下ボタン[v])、おそらく以下のVerification Stage Failed
でインストールが失敗したことがわかるでしょう。私の場合、(Entitlements found that are not permitted by provisioning profile)
-このエラーの場合、developer.Apple.comにアクセスし、App Identifierを更新して正しいサービスを含めます。私にとってはApp Groups
を有効にする必要がありました。次に、provisioning profile
を再生成します
今日も同じ問題が発生しました。IOs8(ただしIOs7)にエンタープライズアプリをインストールできませんでした。何時間も検索した後、デバイスコンソールでこのメッセージをようやく読みました。
<Warning>: LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk
検索の長い時間の後、私は最終的にこの投稿を読みました: http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate -manually-etc
そして最後には、plistの名前とリンクを変更してipaをダウンロードし(おそらく2番目は必要ない)、最後にアプリがインストールされます。
最後に、アプリが既にインストールされていると見なすのはIOs8のキャッシュの問題だったようです(そうではなかったので、以前にアンインストールしました)。
この助けを願っています
ここで同じエラーが発生しました。bundle-id、bundle-version、plistを変更しようとしましたが、エラーは残ります。
私はこれが少しトリッキーであることを知っていますが、これは私のために働く唯一のものです:
ITunesでバックアップを作成する
IExplorerのインストール: http://www.macroplant.com/iexplorer/
IExplorerを起動し、デモモードを選択します
左側のサイドバーで[メディア]を選択し、[ダウンロード]フォルダーを開いて、その中のすべてのファイルを削除します
デバイスを再起動します
ダウンロードページを開き、アプリの最新バージョンをインストールします
実際、私は最初の2つのステップを省略し、完璧に動作します:)
これが役立つことを願っています
展開ターゲットを下位に設定
プロジェクト>ビルド設定> iOS展開ターゲット
ターゲット>ビルド設定> iOS展開ターゲット
「マニフェストダウンロードの無視」メッセージに関する以前のコメントに基づいて、.plistのバンドルID(com.companyName.AppName)を一意の名前に変更して、iOS 8で強制的にダウンロード/インストールしようとしました。インストール後、既存のコピーを正しく置き換えます。
ここで起こっている問題は2つあると思います。エンタープライズ証明書で署名された.ipaファイルを指すhttps Webサイトの.plistに、既にインストールされているアプリケーションに一致するバンドル識別子がある場合、それは上書きされません。 bundle-versionはすべての.plistファイルで異なるため、とにかくインストールする必要があります。 iOS 7にはこの問題はないようです。この問題を回避するには、plistのbundle-identifierを台無しにして、ビルドに常に一意になるようにします。
2番目の問題は、アプリケーションを正常にインストールしたときに、ホーム画面に切り替えたり、何もしていないことを示したりしないことです。 iOS 7では、プロンプトで[インストール]ボタンを選択した後、アイコンが暗いホーム画面に切り替わり、進行状況インジケーターにダウンロードの進行状況が表示されます。次に、アプリケーションの横に青いドットが表示され、新しいことを示します。 iOS 8では、ホーム画面に切り替えられないため、機能していないように見えます。手動でホーム画面に移動すると、進行状況インジケーターが付いた暗いアイコンが表示されます(既存のアプリケーションを置き換えることを知らないため、現在は新しい場所にあります)。ダウンロード/インストールが正常に完了した後、置き換えられたアプリケーションに青い点は表示されません。
お役に立てれば。
私は今この問題を抱えていましたが、それはメインフェストplist(キー:フルサイズイメージ+ディスプレイイメージ)が存在しないURLイメージの場所を指していることが原因です。
画像が存在しない場合でもiOS6/iOS7は処理できるように見えますが、iOS8はこれに関してより制限的です。
これは私に大きな痛みをもたらしました。 MDMソリューションの外部の従業員の電話だけに新しいアプリOTAをインストールする必要がありました。私はインターネット上で見つけることができるあらゆる可能な解決策を試してみたが、何も機能しなかった。一番近いのは、アプリが「読み込み」段階に到達することでした。私の解決策は、さまざまなことを試して、1週間の仕事をしました。どちらがどの順序で機能し、どちらが機能したのかはわかりませんが、次のようにしました。
私の場合、以前は開発者(エンタープライズではなく)アカウントからのプロビジョニングプロファイルを使用してこのアプリを作成していました。 Xcodeでは、バンドル識別子を変更して新しい名前を付けました。たとえば、元々はcom.mydomain.myappでしたが、com.mydomain.mysuperappになりました。
アプリのコード署名が有効であり、エンタープライズアカウントの配布証明書が含まれていることを確認しました
間違ったプロビジョニングプロファイル(IDが関連付けられていないプロファイル)を使用していたため、「自動」を選択したため、うまく構築されましたが、インストールされませんでした。そこで、リリースのコード署名を(開発プロファイルではなく)配布プロファイルに変更しました
アプリが、ダウンロードするデバイスに十分な展開ターゲットで設定されていることを確認しました
ファイルをアーカイブし、エンタープライズ展開用にエクスポートしました
マニフェストには57x57 png画像と512x512 png画像が含まれている必要があります。そうでない場合、インストールは「待機」段階を過ぎません。
次のようなindex.htmlファイルを作成しました。
<html>
<body>
<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/dw80wahlwupkyd5/MyApp.plist">
Install Learning Chunks App from Dropbox</a>
</body>
</html>
オンラインで見つけたplistサンプルを使用しており、いくつかのオプション設定が含まれていました。これらをそのままにしておくと、ダウンロードが機能しませんでした。それらを取り出しました。マニフェストplistファイルの名前はMyApp.plistで、次のようになりました。
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string> https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mydomain.mysuperapp</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>My Super App</string>
<key>subtitle</key>
<string>My Super App</string>
</dict>
</dict>
</array>
</dict>
</plist>
MyApp.plist、index.html、logo57.png、logo512.png、MyApp.ipaをDropBoxにアップロードしました。アプリをダウンロードする必要がある人とindex.htmlを共有しました。
その後、ユーザーはメール内の共有リンクをクリックすると、アプリがインストールされます。
ビルドスクリプトを使用してiOSアプリをビルドし、以前に--signフラグを指定してPackageApplicationを使用していた場合、問題が発生している可能性があります。 10.10でビルドし、それを削除すると、すべてのiOSアプリが再インストールされると、-signフラグは機能しなくなります。
編集:以下の問題は赤いニシンです。 Dylan Handが上で述べたように、私にとっての問題は、マニフェストファイル内の画像リンクが壊れていたことです。どうやらこれはios7にとっては問題ではなかったようですが、これが真の場合、ios8はインストールを終了しません。これらの参照を削除すると、完全に機能しました。
OPと同じ症状があります(つまり、「アプリをダウンロードできません」というメッセージがiOS 8でのみ表示されます)。検証しようとすると(つまり、オーガナイザー->検証)、次のメッセージが表示されます。
これが私をこの投稿に導きました: https://stackoverflow.com/a/25757196/751136
プロビジョニングプロファイルを再生成すると、beta-reports-active
という新しい資格が必要になると主張しています。エンタープライズアカウントでこれを実行しようとすると、新しいプロファイルには新しい資格がありません。ただし、別の非企業アカウントでプロビジョニングプロファイルを再生成すると、新しいプロファイルにはそのフィールドがあります。
この問題に夢中になりました。これだけがエンタープライズ配布に役立ちました。必要なすべてのビルド設定を実行し、「アーカイブ」をクリックします。エンタープライズ配布プロセスを実行します。オーガナイザーウィンドウが表示されます。 Macマシンでは、KReleaseを選択し、「Finderで表示」を選択して.xcacrchiveファイルを見つけます。
ユーザーは、.xcarchiveファイルがあるフォルダーに移動します。 .xcarchiveファイルを右クリックし、「パッケージの内容を表示」オプションを選択します。
開いたFinderウィンドウで[製品/アプリケーション]に移動し、.appファイルを選択してコピーします。
ディスクのどこかに「Payload」という名前で新しいフォルダーを作成します。注:フォルダー名では大文字と小文字が区別されます。コピーした.appファイルを「Payload」フォルダーに貼り付けます。 Payloadフォルダーを圧縮してPayload.Zipファイルを取得Payload.Zipファイルの名前を.ipaに変更し、.plistにバンドルします完了!!! .xcarchive生成で使用されるプロビジョニングプロファイルに登録されているデバイスに.ipaファイルをインストールする準備ができています。
私の問題は、ipaファイル名とplistのそのipaへの参照の両方にスペースがあったことです。両方のスペースを削除すると、インストールが可能になりました
私はこの問題を解決しました。
このように辞任できます
codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app
Entitlements.plistサンプル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>PREFIX.yourappBundleID</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>PREFIX.yourappBundleID</string>
</array>
</dict>
</plist>
あなたが中国語を知っているなら、これは役に立ちます。
これらの回答は確認するのに有効なものですが、他の誰かが私がやったようにそれらを試してみて、まだ問題があった場合は、 エクスポートされたアーカイブを正しく圧縮できる適切なplist設定がアプリに含まれていることを確認してください 。 Thisは、上記のすべての手順を実行した後でも、私たちを苦しめたものです。また、少なくともXCode 6.3を使用してアーカイブをエクスポートする場合、Webサイトのplistに有効な画像リンクが含まれることを確認することについて述べている回答は、何の影響も与えないようです。これらのリンクが正しいかどうかにかかわらず、機能しました/機能しませんでした。ただし、その情報を正しいものにすることは明らかに良い考えです。もう1つの興味深いメモは、XCode 5を使用してエクスポートした場合、IPAは常に正しい形式でした(上記のリンクSOの記事を参照)。 XCode 6+は今や気に入らないようです。
このインストールの問題の原因として考えられるもう1つの原因は、プロジェクトとプロビジョニングプロファイルのケースの不一致です(特に、自動化されたビルドまたは他のコマンドラインビルドの場合)。バンドルIDは大文字と小文字が区別されます。たとえば、プロビジョニングプロファイルのアプリバンドルIDがcom.example.MyApp
で、プロジェクト構成および/またはInfo.plistがcom.Example.Myapp
を使用する場合、Xcode 7.1はコード署名エラーで失敗するか、一般的なプロビジョニングにフォールバックしますプロファイル(*バンドルIDを持つもの、それ自体が問題になる可能性があります)が、xcodebuild
コマンドは成功します。 Jenkinsは、たとえば、誤って署名されたビルドをHockeyappにアップロードします。ビルドはクライアントデバイスにダウンロードされますが、大文字と小文字が一致しないためインストールされません。
したがって、
プロジェクトとApple開発者ポータルの両方でアプリケーションバンドル識別子が同じように設定されていることを確認します。
この特定の問題を回避する最も簡単な方法は、バンドル識別子で常に小文字を使用することです。バンドルIDをApple開発者ポータルからコピーし、プロジェクトビルド設定(PRODUCT_BUNDLE_IDENTIFIER
)に貼り付けることももちろん役立ちます。
エンタープライズアカウントに問題がありましたが、実際にはこのタイプの配布に固有のものではない可能性があります。
iOSのインストールエラーのトラブルシューティング というAppleのテクニカルノートを必ず確認してください。
私の問題は、構築されたすべての出力を削除し、完全に再構築することで修正されました。