以前はXcode 7.3.1を使用して、iPadのApp Storeアプリの上に直接ビルドし、アップグレードシナリオをテストすることができました。今週、私はXcode 8にアップグレードしました。まったく同じアプローチを試すと、このアップグレードエラーが発生します
「このアプリケーションのアプリケーションID資格は、インストールされているアプリケーションの資格と一致しません。アップグレードを許可するには、これらの値が一致している必要があります。」
私はこのスレッドに投稿された複数のソリューションを試しましたが、どれもうまくいきませんでした。私も時計アプリを持っていません。単純なiOSアプリのターゲットです。
アプリケーション識別子の資格により、アプリのインストールに失敗しました
証明書とプロビジョニングプロファイルを削除して再作成しましたが、それでも同じ問題が発生しました。次に、Xcode 7.3.1をダウンロードして、まったく同じ問題を抱えてもう一度試しました。
現在、アップグレードシナリオを完全にテストすることができずに行き詰まっています。
助けてください !!
アプリケーションをアップグレードしようとしたときに同じ問題が発生しました。そしてここで私が見つけたもの:
古いアプリと新しいアプリのアプリケーション識別子の資格を確認しました。そのためには、codesign -d --entitlements :- path/to/AppName.app/AppName
を実行するか、パス「AppName.app/AppName」でファイル「archived-expanded-entitlements.xcent」を開きます。
古いアプリのアプリケーション識別子は「1234XXX5X6.com.mycompany.myapp」でしたが、新しいアプリでは「1234XXX5X6.com.mycompany.myapp。develop」でした。
通常、Info.plistに直接「Bundle Identifier」を設定します。
しかし、プロジェクトBuild Settingsに "Product Bundle Identifier"プロパティがあることも知りませんでした。
以前のバージョンのアプリはXcode 7.3.1でビルドされ、次の設定がありました:
newバージョンはXcode 8.2.1でビルドされ、次の設定がありました:
新しいXcodeのアプリケーションIDのソースが異なるようです。 「Product Bundle Identifier」を修正しただけで、問題は解決しました。
デバイスから既存のアプリケーションを削除して、もう一度実行します。
これを修正するには、プロジェクト設定の一般タブから「署名の自動管理」を有効にするだけです。
Xcode 8から直接デバイスでアプリを実行することにも問題がありました。削除と生成のプロファイルと証明書が機能しませんでした。しかし、「署名の自動管理」を有効にするとうまくいきました。
お役に立てれば!
私のこの質問を確認してください: Xcode 8はプロビジョニングプロファイルに署名証明書が含まれていないというエラーを示します
既存のApp Storeアプリを削除せずにアップグレードしたいが、アプリケーション識別子の資格が一致しない場合の解決策の1つを次に示します。新しいビルドのアーカイブをApp Storeにアップロードし、TestFlightを使用してデバイスにダウンロードします。これはデバイスへのビルドほど高速ではありませんが、古いデータを維持したまま、古いアプリを新しいビルドで上書きします。 TestFlightで新しいビルドが利用可能になったら、アップグレードプロセスの(比較的)より迅速なターンアラウンドテストのために:
TestFlightビルドは古いデータを削除せずに資格を上書きするので、Xcodeは新しいビルドをTestFlightビルドの上にうまくインストールしますが、アプリのApp Storeバージョンの上に直接ビルドしているかのようにアップグレードプロセスをテストしています。
これは、Jenkinsアーティファクトとして生成された.ipaから取得しました。私にとっての問題は、Jenkinsが別のプロビジョニングプロファイルを使用していたことです。
インストールしようとした更新バージョンと同じプロファイルを使用するように手動でJenkinsを設定し、それが機能し始めました。