iOS 8でのエンタープライズアプリのアップデートの配布


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

私のリストでは、私は持っています

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

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


1
実行しているiOS8のバージョン。私はベータ版5と、このような問題を持つ人々を聞いた
アニルNatha

7
まったく同じ問題。iOS 8 GM。これらのアプリは今すぐダウンロードを拒否しています。
Carl Sjogreen 2014

3
現在公式にリリースされているios8.0を実行していますが、インストールが開始されません。コンソールを確認したところ、「<警告>:LoadExternalDownloadManifestOperation:Ignore manifest download、already have bundleID:MYBUNDLENAME」というメッセージが表示されます...デバイスを復元するか、バンドルIDを変更するとうまくいきます
user2387149


1
@pcperini他の投稿の回答にはもっと情報があると思います。意図された犯罪はありません。
クリストファージョンソン2014

回答:


91

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

たとえば、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がバンドル識別子をキャッシュしているようで、要求されたインストールをこれらのキャッシュされたインストールと比較しています。ほとんどの場合、インストールを求めるポップアップが表示されますが、何も起こりません。

ショーンがすでに気づいたように、これはxCode 6 GMおよび公式のiOS 8バージョンで表示されます。これまでにアプリケーションをインストールしたことがないデバイスでも、アプリをインストールするのに問題はありません。


3
一部のデバイスでは機能しますが、plistファイルを変更しても、以前のバンドルIDが表示されたままのsyslogが存在します。
寺院

実際に画像を提供することが正しい解決策です-この回答を確認してくださいstackoverflow.com/a/26283611/276656
mspasov 2014年

3
私の場合、バンドルIDの変更が一部のデバイスで機能しましたが、すべてではありませんでした。plist自体へのパスを変更した後、私はそれを解決しました。
パウィ

1
Xcodeサーバーからアプリをダウンロードする場合、編集する.plistはどこにありますか?
Collin

1
この回答stackoverflow.com/a/28727958/108040は、.plistを変更する必要がないため、より適切に機能しました
Robin

24

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

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

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


3
ありがとう、あなたは命の恩人です。私はMacroplant から無料のiBrowse(ibrowseapp.com)を使用しています
Min Soe

2
これは私たちにとってはうまくいきました...メディアのコンテンツを削除した後、デバイスを再起動することを忘れないでください->ダウンロード
Robin

仕事をありがとう!しかし、それでも各ユーザーの電話で行う必要があると考えています!
Ammar Mujeeb、2015年

「すべてのコンテンツと設定を消去」(設定アプリの下)は機能しますか?
onmyway133 2015年

ダウンロードフォルダーの内容は何ですか?
HamzaGhazouani 2015

16

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

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

2)iOS 8で削除する

3)itms-servicesを使用してインストールしようとしました:同じバンドル名で

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


1
しかし、アプリのバンドル名も変更する必要がありますね。私はサーバーのplistのみを変更しようとしましたが、結果は次のとおりです。Sep 18 09:59:20 XXX-iPhone filecoordinationd [123] <警告>:サンドボックス化がサブスクリプションを拒否し、カテゴリcom.mo2o.XXX(バンドルID com.apple.iaptransportdで進行中) 、037BE63A-8737-4A4B-9C9D-B8FAF8DC0D40)9月18日09:59:20 XXX-iPhone filecoordinationd [123] <警告>:カテゴリcom.mo2o.XXX(バンドルID(null)、0B9D3B2A- 2B5D-4882-8771-61784326E507)およびアプリがインストールされない
Eva Madrazo

うーん、不正解です。警告が記録されますが、アプリもインストールされます。
Eva Madrazo 2014

これは正常に動作しますが、マイナーな欠点があります。インストール中、デバイスは更新中のアプリを認識しないため、インストール中に2番目のアプリアイコンが表示されます。インストール後、これは自動的に修正されます。
Ivo Jansch 2014

4
そのbulldozer.io記事では、「開発者証明書がインストールされているデバイスは影響を受けないようです」と述べていることに注目する価値があります。「開発者証明書」の意味は明確ではありませんが(問題のアプリを「カバーする」開発プロビジョニングプロファイルだと思います)、これにより、さまざまなデバイスで問題を再現する際の問題が説明される可能性があります。
astletron 2014年

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を使用する

あなたが正しいように見えます。アプリの新規インストールまたは以前のアドホックバージョンの更新では正常に機能しますが、インストールされたバージョンがApp Storeからインストールされた場合は機能しません。
charles

Appleが変更を加えたもう1つのヒントは次のとおり
Frans

セキュリティを閉じる必要があることは理解していますが、展開されたバージョンで、あるバージョンから別のバージョンへのアップグレードをTestFlightに移動せずにテストできないという興味深いシナリオに直面しています。同じ開発者向けのアドホックプロファイルと証明書で署名されたアプリはアップグレードできるはずです。
lidsinker

@charles、「アプリの新規インストールまたは以前のアドホックバージョンの更新で問題なく機能します」、それをテストしましたか?私たちはIOS9でこのadhock更新アドホック問題が発生したため...
flypig

@flypig当時はiOS 9で試してみましたが、うまくいきました。それ以来、私は試していません。
チャールズ

9

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

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

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

(申し訳ありません...コメントに追加したでしょうが、私はn00bです。)


9

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

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

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


7
これらのキーの両方が含まれていると、実際にこの問題が発生していました。
Sean Danzeiser、2014年

バンドルIDを変更したところ、うまくいきました。それについてわくわくしない。
Sean Danzeiser、2014年

すごい!また、すべてをサブフォルダーに移動し、ipaファイルのMD5のみを調整します。
Felipe FMMobile 2017年

3

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

私がテストしている現在の回避策:

  • デバイスの内容を気にしない場合:デバイスのDFUモードでクリーンリストアを実行します
  • 物を元に戻したい場合
    1. 復元する前にiOSデバイスをiTunesにバックアップします(アドホック/エンタープライズアプリなし)。
    2. デバイスをきれいに復元した後、アドホック/エンタープライズアプリをインストールします
    3. iTunesからバックアップを復元する
    4. これで、これらのアドホック/エンタープライズアプリを削除して再インストールすることができます。

1
8.1でもまだ修正されていません
Kevin

2
まだ8.2で修正されていません.......たぶん、世界でたった15人でエンタープライズアプリを作成しています。
Karl Heinz Brehme Arredondo 2015

3

plistのバンドル識別子を変更することで問題が解決しました。

通常、itmsリンクをタップすると、アイコンのインストールを示すデスクトップが表示されます。ただし、私のiOS 8.0デバイスでは、itmsリンクをタップした後、インストールページに変更されませんが、インストールはすでに背後で機能しています。


2

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


iPhoneを復元するべきではあり
Sergey Kopanev

1

同じ問題がiOS 10ベータ1にも存在します。

12月31日19:01:32 iphone-6s itunesstored [98]:LoadExternalDownloadManifestOperation:マニフェストのダウンロードを無視、既にbundleID:com。***************。iosがあり、フェーズ:SSDownloadPhaseWaiting

ここで理解できないことの1つは、XCodeデバイスログの日付が12月31日であることですが、デバイスには正しい日付と時刻が設定されています。

更新: HockeyAppのGuysがWWDC中にこの問題についてAppleに通知しました。修正は次のシードで行われる予定です。


1
iOS 10でも同じ問題
Crossle Song

0

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

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


これは別の問題に対処しており、OPが要求するように、インストールではなくビルドに関連しています。
やかん2014年

同意しません。署名付きIPAの読み込みに失敗する原因となる動作変更がb5に導入されました。OPのマニフェストファイルにエラーがないと仮定すると、署名されたIPAは、提供されたエラーでインストールに失敗することが事実上保証されています。彼らは彼らがどのようにIPAを構築したかについて言及していないので、なぜそれが失敗しているのかはっきりとは言えません。一方、IPAからシグを削除すると、すべてが再びインストールされます。
James Moore

それは本当かもしれませんが、元の質問「マニフェストのダウンロードを無視して、すでにbundleIDがあります:」で指定されたエラーを見ると、エンタープライズアプリで広く議論されているiOS8のバグとアプリをインストールできないことに明らかに関連していますiOS8へのアップグレード前にインストールされ、iOS8へのアップグレード後にアンインストールされます。問題に対処している可能性がありますが、OPが抱えている問題ではありません。
wottle 2014

0

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

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


0

8.1を実行しているデバイスでこの問題が発生しました。デバイスを8.3にアップグレードすると問題が解決しました。そのため、8.3 ....にバグが存在しなくなったか、アップグレードの動作により、キャッシュされたデータがクリアされました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.