111

itmsURL経由で配布するエンタープライズ アプリがあります。

itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist

iOS 7 では、ダウンロードとアップデートの両方が正常に機能します。ただし、iOS 8 では、次のエラーが表示されます。

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp

私のplistには、

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

iOS 8 の私のアプリでは、バージョン 0.2.1 を実行しています

4

13 に答える 13

92

アプリの配布でもこの問題に遭遇しました。ダウンロード配布に使用する .plist 内のバンドル識別子を「偽造」し、ipa バンドル識別子を同じに保つことで、この問題を修正することができました。

たとえば、あなたのplistで:

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

com.mycom.MyAppcom.mycom.MyApp.ios8fixに変更します

アプリは、インストール後に消える新しいアプリ アイコンを使用してインストールされます。

既にアプリをインストールしている場合は、インストール中に新しいアプリ アイコンも表示されます。インストール後、このアイコンは消えますが、アプリの既存のバージョンは更新されます。クリーン インストールでは、インストール アイコンが消え、インストール済みのアプリケーション アイコンが表示されます。

iOS 8 がバンドル ID をキャッシュして、要求されたインストールとこれらのキャッシュされたインストールを比較しているようです。ほとんどの場合、インストールを求めるポップアップが表示されるだけで、何も起こりません。

Sean がすでに気付いているように、これは xCode 6 GM と公式の iOS 8 バージョンで表示されます。以前にアプリケーションをインストールしたことがないデバイスは、問題なくアプリをインストールできます。

于 2014-09-20T12:37:23.850 に答える
24

plistこれは私にとってはうまく機能しました。マニフェストやその他のトリックに触れる必要はありません (自動生成されるXcode サーバーに最適です):

  1. iExplorer をダウンロード ( http://www.macroplant.com/ieexplorer/ )
  2. デバイスを接続します
  3. 「メディア > ダウンロード」ですべてのファイルを削除します。
  4. デバイスを再起動する

これにより、デバイスのキャッシュがリセットされ、通常どおりアプリをインストールできるようになります。

于 2015-02-25T19:31:34.263 に答える
16

私は同じ問題を抱えています。私はそれを再現しました:

1) iOS 7 から iOS 8 GM へのアップグレード中にアプリケーションをインストールする

2) iOS 8 での削除

3) itms-services 経由でインストールしようとしています: 同じバンドル名で

サーバーの plist (アプリケーションの Info.plist ではなく) で bundle-identifier を変更しようとすると、うまくいきました (アプリケーションがダウンロードされ、「影」アイコンは残りませんでした)。しかし、それはリンゴのバグのように見えます。

于 2014-09-11T11:53:44.267 に答える
11

受け入れられたソリューションは、iOS9 では機能しなくなりました。

私の理解では、Apple はアドホック バイナリがストック アプリや App Store からダウンロードされたアプリを置き換えないようにすることで、iOS の深刻なセキュリティ ホールをふさぎました。背景については、この記事を参照してください (CVE-2015-3722/3725 および CVE-2015-3725):

https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html

セキュリティへの影響を考慮すると、この動作が将来の IOS バージョンで変更されることはないと思います。代替オプションは次のようです。

  • アドホックをインストールする前に App Store のバージョンを削除する
  • アプリと配布 plist の両方でバンドル ID を変更して、アドホックを「新しい」アプリとして配布します
  • TestFlight を使用する
于 2015-09-22T12:01:20.210 に答える
9

この回答この回答を見てください。

ハッキングなしでこの問題を修正できます。iOS8 の場合assets、マニフェスト.plistファイルのキーにdisplay-imageおよびfull-size-imageキーを含める必要があります。これらは、エンタープライズおよびアドホック展開用にアーカイブを保存するときに Xcode 5 で使用できましたが、必須ではありませんでした。

install-manifet.plistファイルのテンプレートを使用して、github に Gist を作成しました。

于 2014-10-09T16:36:12.880 に答える
9

Gil の言ったことは正しいようですが、より具体的には、server.plist の bundle-version 文字列もインクリメントする必要があることがわかりました。

    <key>bundle-version</key>
    <string>3.2.2</string>

これにより、少なくとも OTA インストールを実行できます。

(すみません...コメントに追加したかったのですが、私はあまりにもn00bです。)

于 2014-09-25T20:10:26.370 に答える
3

これは、iOS8 Beta5 で最初に発見されたバグです。そして、GMシードと正式なiOS8.0バージョンでは、Appleによってまだ修正されていません。より多くの議論はここで見つけることができます

自分でテストしている現在の回避策:

  • デバイスの内容を気にしない場合: デバイスの DFU モードでクリーン リストアを実行します。
  • 荷物を取り戻したい場合
    1. 復元する前に iOS デバイスを iTunes にバックアップします (アドホック/エンタープライズ アプリを使用しない場合)。
    2. デバイスを完全に復元したら、アドホック/エンタープライズ アプリをインストールします
    3. iTunes からバックアップを復元する
    4. これで、これらのアドホック/エンタープライズ アプリを自由に削除して再インストールできます。
于 2014-09-18T12:59:32.340 に答える
2

これは極端ですが、バンドル ID を変更できない場合 (私にはできませんでした)、iPhone を iTunes から最新の iOS 8 に復元し、バックアップから復元すると問題が解決します。

于 2014-10-11T23:04:01.790 に答える
0

インターネットに完全にアクセスできることを確認してください。

OTA インストールと IOS8 で同じ問題に直面していました。私は企業のプロキシの背後にいるため、その問題を解決するために手動のプロキシ設定 (IOS7 では不要) を設定するまで、上記のソリューションは機能しませんでした。

于 2014-11-25T15:52:26.160 に答える