web-dev-qa-db-ja.com

iOSのアップグレードテスト-アプリケーション識別子の資格が一致しません

以前はXcode 7.3.1を使用して、iPadのApp Storeアプリの上に直接ビルドし、アップグレードシナリオをテストすることができました。今週、私はXcode 8にアップグレードしました。まったく同じアプローチを試すと、このアップグレードエラーが発生します

「このアプリケーションのアプリケーションID資格は、インストールされているアプリケーションの資格と一致しません。アップグレードを許可するには、これらの値が一致している必要があります。」

enter image description here

私はこのスレッドに投稿された複数のソリューションを試しましたが、どれもうまくいきませんでした。私も時計アプリを持っていません。単純なiOSアプリのターゲットです。

アプリケーション識別子の資格により、アプリのインストールに失敗しました

証明書とプロビジョニングプロファイルを削除して再作成しましたが、それでも同じ問題が発生しました。次に、Xcode 7.3.1をダウンロードして、まったく同じ問題を抱えてもう一度試しました。

現在、アップグレードシナリオを完全にテストすることができずに行き詰まっています。

助けてください !!

10
ArdenDev

アプリケーションをアップグレードしようとしたときに同じ問題が発生しました。そしてここで私が見つけたもの:

古いアプリと新しいアプリのアプリケーション識別子の資格を確認しました。そのためには、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」を設定します。

Info.plist Bundle Identifier property

しかし、プロジェクトBuild Settingsに "Product Bundle Identifier"プロパティがあることも知りませんでした。

Build Settings Product Bundle Identifier property

以前のバージョンのアプリはXcode 7.3.1でビルドされ、次の設定がありました:

  • Info.plist:com.mycompany.myapp
  • ビルド設定:com.mycompany.myapp。develop
  • アプリケーション識別子:1234XXX5X6.com.mycompany.myapp

newバージョンはXcode 8.2.1でビルドされ、次の設定がありました:

  • Info.plist:com.mycompany.myapp
  • ビルド設定:com.mycompany.myapp。develop
  • アプリケーション識別子:1234XXX5X6.com.mycompany.myapp。develop

新しいXcodeのアプリケーションIDのソースが異なるようです。 「Product Bundle Identifier」を修正しただけで、問題は解決しました。

9
HammerSlavik

デバイスから既存のアプリケーションを削除して、もう一度実行します。

6
Vineesh TP

これを修正するには、プロジェクト設定の一般タブから「署名の自動管理」を有効にするだけです。

Xcode 8から直接デバイスでアプリを実行することにも問題がありました。削除と生成のプロファイルと証明書が機能しませんでした。しかし、「署名の自動管理」を有効にするとうまくいきました。

お役に立てれば!

私のこの質問を確認してください: Xcode 8はプロビジョニングプロファイルに署名証明書が含まれていないというエラーを示します

3
Satish Mavani

既存のApp Storeアプリを削除せずにアップグレードしたいが、アプリケーション識別子の資格が一致しない場合の解決策の1つを次に示します。新しいビルドのアーカイブをApp Storeにアップロードし、TestFlightを使用してデバイスにダウンロードします。これはデバイスへのビルドほど高速ではありませんが、古いデータを維持したまま、古いアプリを新しいビルドで上書きします。 TestFlightで新しいビルドが利用可能になったら、アップグレードプロセスの(比較的)より迅速なターンアラウンドテストのために:

  1. デバイスからアプリを削除します(それが最近のビルドであると想定)
  2. アプリストアビルドをダウンロードしてデータを生成する
  3. TestFlightビルドをダウンロードしますが、実行しないでください
  4. 最新のビルドをデバイスに直接ビルドします

TestFlightビルドは古いデータを削除せずに資格を上書きするので、Xcodeは新しいビルドをTestFlightビルドの上にうまくインストールしますが、アプリのApp Storeバージョンの上に直接ビルドしているかのようにアップグレードプロセスをテストしています。

2
Mark A. Durham

これは、Jenkinsアーティファクトとして生成された.ipaから取得しました。私にとっての問題は、Jenkinsが別のプロビジョニングプロファイルを使用していたことです。

インストールしようとした更新バージョンと同じプロファイルを使用するように手動でJenkinsを設定し、それが機能し始めました。

0
Alex Bartiş

チェックボックスを選択またはチェックした場合、署名を自動的に管理する場合は、[アプリターゲット]を選択して[一般]をクリックします。

署名の自動管理のチェックを外して、適切な署名プロビジョニングプロファイルを選択し、#Buildを実行します。

下の写真を見てください。

enter image description here

0
Parth