web-dev-qa-db-ja.com

iOS 8-エンタープライズアプリをインストールできない

当社には、Enterprise Distributionを使用してWebサイトからダウンロードできるアプリがあります。

Enterprise Distribution Site

IOS 8 Beta 5では、ダウンロードリンクをタップすると、「(ウェブサイト)はインストールしたい(アプリ名)」というポップアップが表示されます。そのダイアログで「インストール」をタップすると、最初にアプリが「Waiting ...」でスタックします

App stuck waiting

「アプリをダウンロードできません(アプリ名)は現時点ではダウンロードできませんでした」と最終的に示されるまで。

Unable to Download App

IOS 7を使用すると、インストールは期待どおりに機能します。

IOS 8でXcodeからアプリを実行すると動作します。

Enterprise Distribution iOS 8をどのようにサポートしますか?

おそらく、マニフェストファイルに変更を加える必要がありますか? Xcode 6 Beta 7でアプリをビルドしようとしたときに、エンタープライズアーカイブプロセスでマニフェストファイルの作成を求められませんでした...

63
Dylan Hand

私のアプリのいずれかをインストールしようとしている電話ホイストのコンソールを見て、私は発見した:

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-imagedisplay-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を再生成します

62
William George

今日も同じ問題が発生しました。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のキャッシュの問題だったようです(そうではなかったので、以前にアンインストールしました)。

この助けを願っています

7
ecaste

ここで同じエラーが発生しました。bundle-id、bundle-version、plistを変更しようとしましたが、エラーは残ります。

私はこれが少しトリッキーであることを知っていますが、これは私のために働く唯一のものです:

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1#comment_35141099

  1. デバイスをMacまたはPCに接続します
  2. ITunesでバックアップを作成する

  3. IExplorerのインストール: http://www.macroplant.com/iexplorer/

  4. IExplorerを起動し、デモモードを選択します

  5. 左側のサイドバーで[メディア]を選択し、[ダウンロード]フォルダーを開いて、その中のすべてのファイルを削除します

  6. デバイスを再起動します

  7. ダウンロードページを開き、アプリの最新バージョンをインストールします

実際、私は最初の2つのステップを省略し、完璧に動作します:)

これが役立つことを願っています

7
Eva Madrazo

展開ターゲットを下位に設定

プロジェクト>ビルド設定> iOS展開ターゲット

ターゲット>ビルド設定> iOS展開ターゲット

6

「マニフェストダウンロードの無視」メッセージに関する以前のコメントに基づいて、.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では、ホーム画面に切り替えられないため、機能していないように見えます。手動でホーム画面に移動すると、進行状況インジケーターが付いた暗いアイコンが表示されます(既存のアプリケーションを置き換えることを知らないため、現在は新しい場所にあります)。ダウンロード/インストールが正常に完了した後、置き換えられたアプリケーションに青い点は表示されません。

お役に立てれば。

3
Chris J

私は今この問題を抱えていましたが、それはメインフェストplist(キー:フルサイズイメージ+ディスプレイイメージ)が存在しないURLイメージの場所を指していることが原因です。

画像が存在しない場合でもiOS6/iOS7は処理できるように見えますが、iOS8はこれに関してより制限的です。

3
Steven Tsang

これは私に大きな痛みをもたらしました。 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を共有しました。

その後、ユーザーはメール内の共有リンクをクリックすると、アプリがインストールされます。

2
JanB

ビルドスクリプトを使用してiOSアプリをビルドし、以前に--signフラグを指定してPackageApplicationを使用していた場合、問題が発生している可能性があります。 10.10でビルドし、それを削除すると、すべてのiOSアプリが再インストールされると、-signフラグは機能しなくなります。

参照: https://devforums.Apple.com/thread/251624?tstart=

1
James Moore

編集:以下の問題は赤いニシンです。 Dylan Handが上で述べたように、私にとっての問題は、マニフェストファイル内の画像リンクが壊れていたことです。どうやらこれはios7にとっては問題ではなかったようですが、これが真の場合、ios8はインストールを終了しません。これらの参照を削除すると、完全に機能しました。


OPと同じ症状があります(つまり、「アプリをダウンロードできません」というメッセージがiOS 8でのみ表示されます)。検証しようとすると(つまり、オーガナイザー->検証)、次のメッセージが表示されます。

Screenshot of the result of validation

これが私をこの投稿に導きました: https://stackoverflow.com/a/25757196/751136

プロビジョニングプロファイルを再生成すると、beta-reports-activeという新しい資格が必要になると主張しています。エンタープライズアカウントでこれを実行しようとすると、新しいプロファイルには新しい資格がありません。ただし、別の非企業アカウントでプロビジョニングプロファイルを再生成すると、新しいプロファイルにはそのフィールドがあります。

1
eremzeit

この問題に夢中になりました。これだけがエンタープライズ配布に役立ちました。必要なすべてのビルド設定を実行し、「アーカイブ」をクリックします。エンタープライズ配布プロセスを実行します。オーガナイザーウィンドウが表示されます。 Macマシンでは、KReleaseを選択し、「Finderで表示」を選択して.xcacrchiveファイルを見つけます。

ユーザーは、.xcarchiveファイルがあるフォルダーに移動します。 .xcarchiveファイルを右クリックし、「パッケージの内容を表示」オプションを選択します。

開いたFinderウィンドウで[製品/アプリケーション]に移動し、.appファイルを選択してコピーします。

ディスクのどこかに「Payload」という名前で新しいフォルダーを作成します。注:フォルダー名では大文字と小文字が区別されます。コピーした.appファイルを「Payload」フォルダーに貼り付けます。 Payloadフォルダーを圧縮してPayload.Zipファイルを取得Payload.Zipファイルの名前を.ipaに変更し、.plistにバンドルします完了!!! .xcarchive生成で使用されるプロビジョニングプロファイルに登録されているデバイスに.ipaファイルをインストールする準備ができています。

1
thomas

私の問題は、ipaファイル名とplistのそのipaへの参照の両方にスペースがあったことです。両方のスペースを削除すると、インストールが可能になりました

0
jimmyjudas

私はこの問題を解決しました。

  1. Appleがプロビジョニングプロファイルを変更したため、プロビジョニングプロファイル(ファイル1)を更新し、「Payload /」にコピーしてください。
  2. 「Payload /」にEntitlements.plist(ファイル2)があり、このplistファイルはPLAIN TEXTである必要があります。編集者。
  3. 「Payload /」にInfo.plist(ファイル3)があることを確認します。これはXCodeによって作成されます。
  4. Entitlements.plist(ファイル4)を「Payload /」以外の場所にコピーします。
  5. ファイル1-4の「バンドル識別子」が同じであることを確認してください。
  6. このEntitlements.plist(ファイル4)を使用して、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>

あなたが中国語を知っているなら、これは役に立ちます。

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

0
Hennry

これらの回答は確認するのに有効なものですが、他の誰かが私がやったようにそれらを試してみて、まだ問題があった場合は、 エクスポートされたアーカイブを正しく圧縮できる適切なplist設定がアプリに含まれていることを確認してくださいThisは、上記のすべての手順を実行した後でも、私たちを苦しめたものです。また、少なくともXCode 6.3を使用してアーカイブをエクスポートする場合、Webサイトのplistに有効な画像リンクが含まれることを確認することについて述べている回答は、何の影響も与えないようです。これらのリンクが正しいかどうかにかかわらず、機能しました/機能しませんでした。ただし、その情報を正しいものにすることは明らかに良い考えです。もう1つの興味深いメモは、XCode 5を使用してエクスポートした場合、IPAは常に正しい形式でした(上記のリンクSOの記事を参照)。 XCode 6+は今や気に入らないようです。

0
stonedauwg

このインストールの問題の原因として考えられるもう1つの原因は、プロジェクトとプロビジョニングプロファイルのケースの不一致です(特に、自動化されたビルドまたは他のコマンドラインビルドの場合)。バンドルIDは大文字と小文字が区別されます。たとえば、プロビジョニングプロファイルのアプリバンドルIDがcom.example.MyAppで、プロジェクト構成および/またはInfo.plistがcom.Example.Myappを使用する場合、Xcode 7.1はコード署名エラーで失敗するか、一般的なプロビジョニングにフォールバックしますプロファイル(*バンドルIDを持つもの、それ自体が問題になる可能性があります)が、xcodebuildコマンドは成功します。 Jenkinsは、たとえば、誤って署名されたビルドをHockeyappにアップロードします。ビルドはクライアントデバイスにダウンロードされますが、大文字と小文字が一致しないためインストールされません。

したがって、

修正0

プロジェクトとApple開発者ポータルの両方でアプリケーションバンドル識別子が同じように設定されていることを確認します。

この特定の問題を回避する最も簡単な方法は、バンドル識別子で常に小文字を使用することです。バンドルIDをApple開発者ポータルからコピーし、プロジェクトビルド設定(PRODUCT_BUNDLE_IDENTIFIER)に貼り付けることももちろん役立ちます。

エンタープライズアカウントに問題がありましたが、実際にはこのタイプの配布に固有のものではない可能性があります。

0´を修正

iOSのインストールエラーのトラブルシューティング というAppleのテクニカルノートを必ず確認してください。

0
Leon Deriglazov

私の問題は、構築されたすべての出力を削除し、完全に再構築することで修正されました。

0
Mike