IOS 8.1.3を更新した後、ダウンロードしようとしましたが、「アプリをダウンロードできません」および「現時点ではインストールできませんでした」というエラーが表示されます。
8.1.2と8.1.3の間で考慮すべき変更点は何ですか?
ダウンロードモード:
<a href = "itms-services://?action = download-manifest&url = https://****.plist">
ありがとう!
Braincellsを障る数時間後に、ここで私はそれをやった方法は次のとおりです。
注:現在、これをiOS 8.1.2以前でテストしていません(注意して進めてください!)
既に自社の企業証明書で署名されているアプリの場合、あなたがしなければならないことは(RAStudiosの編集で言及されているように)manifest.plistを編集することだけです:
前:
<key>bundle-identifier</key>
<string>uk.co.acme.AcmeApp</string>
後:
<key>bundle-identifier</key>
<string>S836XXACME.uk.co.acme.AcmeApp</string>
サードパーティによって署名されたアプリの場合エンタープライズ証明書を使用して再署名すること(このチュートリアルでは、ipaファイルがAcmeApp.ipaであると仮定し、資格ファイルはentitlements.plistおよびプロビジョニングプロファイルですはprovProvile.mobileprovisionです。すべてのファイルはデスクトップフォルダー(Mac OSX)にあり、S836XXACMEはチーム識別子です):
新しい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>S836XXACME.uk.co.acme.AcmeApp</string>
<key>get-task-allow</key>
<false/>
</dict>
</plist>
Ipaを解凍します。
cd ~/Desktop
unzip AcmeApp.ipa
コード署名を削除します。
rm -r Payload/AcmeApp.app/_CodeSignature/
Mobileprovisionファイルをコピーします。
cp provProfile.mobileprovision Payload/AcmeApp.app/embedded.mobileprovision
コデザイン:
codesign -f -s "iPhone Distribution: ACME Corporation Limited" --entitlements entitlements.plist Payload/AcmeApp.app
辞任したIPAとして圧縮します。
Zip -qr AcmeApp_resigned.ipa Payload/
また、前述の「ALREADY」署名部分に従ってmanifest.plistファイルを修正する必要があります。
<key>bundle-identifier</key>
<string>S836XXACME.uk.co.acme.AcmeApp</string>
編集: 。さらにテストの後、私は単にIOSの8.1.3に空中アプリケーションをインストールするために働いInfo.plist
バンドルIDとmanifest.plist
バンドルIDと一致することを見出しこのソリューションは仕事をしない場合、以下のソリューションを試してみてください。
問題の修正:
あなたのアプリケーションは、アプリケーションの正しい有効なバンドル識別子を含む有効なentitlements.plist
を、持っている必要があります。
あなたはiOSの開発の証明書で署名されたアプリケーションを配布する場合は、ここでは、あなたのアプリに含まれている必要があり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>com.yourbundleidhere.mycoolapp</string>
<key>com.Apple.developer.team-identifier</key>
<string>com.yourbundleidhere.mycoolapp</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>com.yourbundleidhere.mycoolapp</string>
</array>
</dict>
</plist>
ワイルドカードプロファイルを使用している場合は、com.yourbundleidhere.mycoolapp
でyourwildcardappid.*
交換してください。どちらの場合でも、iResignを使用してアプリケーションを適切に再署名し、現在必要なentitlements.plistを含めることができます。
問題の説明
セキュリティパッチのためには、(参照 ここ CVE-2014から4493の下)、entitlements.plistせずに、アプリケーションがインストールされません。セキュリティパッチは、アプリケーションが既存のアプリを上書きして、その上にインストールしたり置き換えたりするのを防ぎます。
私はこれでかなりの数の実験を行ってきました。私の経験ではmanifest.plistファイルにバンドル識別子は、実際には重要ではありません。行うための最も重要なことは、entitlements.plistが正しい取得することです。
むしろこれを手動で作成するよりも、私は次のスクリプト( クレジット )を使用してプロビジョニングプロファイルからそれを生成するお勧めします:
# Create an entitlements file
# parse provision profile
security cms -D -i "provProfile.mobileprovision" > ProvisionProfile.plist 2>&1
# generate entitilements.plist
/usr/libexec/PlistBuddy -x -c "Print Entitlements" ProvisionProfile.plist > Entitlements.plist 2>&1
その後、協調設計ユーティリティの--entitlementsオプションを指定して、この資格ファイルを使用することができます。
私はこの問題を解決しました。
このように辞任できます
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>
あなたが中国語を知っているなら、これは役に立ちます。
マルコ@とRaStudioの答え@に加えて、私は「ダウンロードアプリケーションにできません」というメッセージのための2つの原因を見てきました。一つは、iOS 8.1.3の新機能です。
期限切れのプロビジョニング・プロファイルを持つアプリケーションをインストールしようとすると、このエラーが発生します。アプリケーションに署名する場合、証明書とプロビジョニングプロファイルの両方が有効でない期限切れでなければなりません。アプリケーションがプロファイルと非期限切れの証明書は、いくつかの状況でのiOS 8.1.2にインストールすることができ、プロビジョニングの有効期限が切れているかのように思えます。 provisiningプロファイルは Appleのデベロッパーセンター に行くことによって有効期限が切れていないことを確認してください。
デバイスは、 Appleのデベロッパーセンター での開発provisiningプロファイルに追加されていない場合開発用証明書とプロビジョニングプロファイルを使用して署名されたアプリケーションをダウンロードしようとすると、このエラーが発生します。
私は同じ問題を持っており、これはどんな資格を持っていないアプリケーションのために起こります。
資格を持つアプリを再署名する私のための問題を解決しますが、これはすでに必要性が再署名して展開されるように配備されているすべてのアプリケーションなどの痛みになるだろう。
私のために失敗したこれらのアプリケーションは、キーチェーン共有やプッシュ通知のようなものを使用していないので、(私の理解あたりとして)すべての権利を必要としないので、これは奇妙な問題です。
私はこれに答えてきた ここでは 、これは他に何もすることなく、私のために働きました