web-dev-qa-db-ja.com

iOS 8でのエンタープライズアプリ更新配布

itms URLを介して配布しているエンタープライズアプリがあります。

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を実行しています

110
Patrick Perini

アプリの配布でもこの問題が発生しました。この問題は、ダウンロード配布に使用する.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はバンドル識別子をキャッシュしており、要求されたインストールとこれらのキャッシュされたインストールを比較しているようです。ほとんどの場合、インストールを求めるポップアップが表示されますが、何も起こりません。

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

90
Antoine

マニフェストやその他のトリックに触れる必要はありません(plistが自動生成されるXcodeサーバーに最適です):

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

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

24
jlpiedrahita

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

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

2)iOS 8で削除する

3)itms-servicesを介してインストールしよう:同じバンドル名

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

16
Gil Hartman

受け入れられたソリューションは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を使用する
11
Frans

this answer および this answer をご覧ください。

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

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

9
alexcristea

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

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

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

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

9
Cfold

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

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

3
Tallent Siu

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

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

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

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

2
pho0

IOS 10ベータ1でも同じ問題があります。

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

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

更新: HockeyAppのユーザーは、WWDCでこの問題についてAppleに通知し、次のシードで修正が行われるはずです。

1

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

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

0
creal

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

0
tom01

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

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

0
James Moore