Profil tidak cocok dengan nilai file hak untuk hak pengenal aplikasi

92

Saya mencoba mengunggah aplikasi ke toko aplikasi dan saya mendapatkan kesalahan ini pada halaman yang memiliki sertifikat. Sejauh yang saya tahu, saya telah mengubah lapangan sehingga mereka cocok, tetapi saya melewatkan sesuatu.

inilah yang muncul

Bantuan apa pun akan sangat dihargai.

info.plist

Paul Raymond
sumber
1
Tunjukkan entitlements.plistfile Anda .
Imad Ali
Mungkin karena saya tidak pernah mencarinya sebelumnya, tetapi satu-satunya plist yang saya lihat mengatakan info, tetapi ini gambar ke-2.
Paul Raymond
dikatakan saya tidak dapat memposting tautan lagi, saya akan naik pesawat ke Chicago jika ada yang menemukan sesuatu
Paul Raymond

Jawaban:

208

Saya tidak yakin mengapa ini memperbaikinya, tetapi saya masuk ke tab Capabilities Target saya, menyalakan iCloud, mencoba melakukan pembuatan arsip, gagal, saya MENONAKTIFKAN iCloud lagi, mencoba melakukan pembuatan Arsip dan berhasil, dan setelah itu dapat menyelesaikan sertifikat lagi secara otomatis.

samkass
sumber
3
Tidak tahu mengapa ini berhasil, tetapi berhasil, dukungan apel kurang membantu.
Paul Raymond
13
Terima kasih untuk ini - setelah mengaktifkan / menonaktifkan itu telah membuat plist .entitlements kosong di sebelah xcodeproj. Sepertinya inilah yang dicari proses pengajuannya. Mungkin hanya masalah di Xcode 9 untuk aplikasi yang sudah ada yang tidak memerlukan hak / kemampuan apa pun.
Andrew Wood
3
Sama disini. Proyek kuno. Terima kasih banyak atas saran untuk mengubah kemampuan, sekarang ada .entitlements kosong yang diterima. Mengajukan bug dengan Apple.
RickJansen
6
Dipukul sepanjang malam di bs ini. Saya harus mengaktifkan dan menonaktifkan, yang membuat file hak kosong, dan kemudian saya harus mengarahkan pengaturan build 'Kepemilikan Penandatanganan Kode' ke file kosong itu.
Adam Waite
2
Di Xcode 10.0beta5 ini masih terjadi. Bagi saya, itu karena mengubah nama proyek setelah hak dibuat. Mengaktifkan iCloud lalu mematikan mengganti nama file hak dan memperbarui namanya di pengaturan build. Isi file itu identik. Tampaknya pengunggah peduli dengan nama file hak terlepas dari nama file pengaturan build.
Troy
42

Klik kanan pada Finder -> Go to Folder ...

~/Library/MobileDevice/Provisioning

Untuk Xcode 11

~/Library/MobileDevice/Provisioning Profiles/

Hapus semua profil penyediaan, selesai.

Nidhi
sumber
1
dalam kasus saya, foldernya adalah "~ / Library / MobileDevice / Provisioning Profiles"
LightMan
Setuju, ini adalah jawaban yang benar, hanya dengan Xcode 11 jalurnya adalah~/Library/MobileDevice/Provisioning Profiles/
Marius Kažemėkaitis
Mengapa ini memperbaiki masalah? Apa yang baru saja kami hapus? Apakah ini memiliki efek samping?
markdon
Anda menghapus profil penyediaan baik yang ditambahkan secara otomatis oleh Xcode atau secara manual dengan membuka profil dari developer.apple.com. Jika Anda tidak ingin kehilangan profil lain, Anda dapat menggunakan sesuatu seperti ... grep -ir YOUR_APP_ID ~ / Library / MobileDevice / Provisioning \ Profiles; Untuk menunjukkan profil mana yang cocok. Hapus saja itu dan itu akan menyelesaikan tugas yang sama.
Chris Douglass
Ini memperbaikinya tetapi Anda harus pergi ke Xcode terlebih dahulu dan hapus klik Kelola Penandatanganan Secara Otomatis, lalu lakukan hal di atas kemudian periksa kembali Penandatanganan Otomatis dan semuanya baik-baik saja. Memperbaiki itu untuk saya. Lihat deskripsi lengkap di sini :: ottorinobruni.com/…
c0d3p03t
33

Aplikasi yang Anda buat memiliki application-identifiernilai yang salah , untuk apa yang diharapkan oleh profil penyediaan. Sertifikat appID com.example.foo untuk tim 2ABCDEFG akan mengharapkan application-identifier: 2ABCDEFG.com.example.foo, aplikasi Anda menyatakan bahwa appID-nya adalah com.example.foo, tetapi pengenal aplikasinya tidak cocok , baik Anda menggunakan awalan tim yang salah, atau Anda memiliki bundleID yang salah dikonfigurasi.

Dalam kasus saya, saya menggunakan skema build untuk memungkinkan saya membuat aplikasi prod dan aplikasi qa. com.example.foo untuk prod, dan com.example.foo.qa untuk QA. Saya telah mengatur bundleIdentifier saya di Info.plist ke $ (PRODUCT_BUNDLE_IDENTIFIER) $ (BUNDLE_SUFFIX), yang berfungsi dengan baik di simulator dan di perangkat karena memiliki aplikasi yang berbeda, namun, ketika aplikasi menghasilkan pengenal aplikasinya selama fase arsip, itu tidak boleh membaca bundleIdentifier yang dibuat oleh Info.plist.

Untuk memperbaiki situasi ini, saya mengedit FooProject.xcodeproj / project.pbxproj (dengan editor teks) untuk mengubah QA buildSettings PRODUCT_BUNDLE_IDENTIFIER saya menjadi com.example.foo.qa

Anda dapat melihat Q&A Teknis Apple untuk melihat penyelaman mendalam mereka dalam memecahkan masalah ini. Setelah Anda menjalankan hak kode tanda pada aplikasi yang diekspor, dan melihat pengenal aplikasi apa yang baru saja dibuat dengan aplikasi Anda, seharusnya cukup cepat untuk menyadari kesalahan yang Anda lakukan. https://developer.apple.com/library/content/qa/qa1879/_index.html Saya tidak menemukan halaman itu di pencarian Google saya, karena mereka tidak benar-benar menggunakan frase dari pesan kesalahan atau memanggil aplikasi -identifier dengan nama lengkapnya, tetapi sebutkan ID Aplikasi.

Selain itu, solusi untuk masalah ini bukanlah membuat profil penyediaan baru yang memiliki hak pengenal aplikasi, namun memiliki hak tersebut, namun, nilai dalam profil penyediaan, dan aplikasi Anda harus cocok.

Peter Dietz
sumber
2
Terima kasih! Saya dapat memperbaikinya dengan mengubah pengaturan build saya, di bawah kemasan, untuk menggunakan var kustom saya untuk sufiks di Product Bundle Identifier. misalnya com.mycompany.myapp $ (BUNDLE_ID_SUFFIX) dan ini menyelesaikannya. Jadi saya tidak perlu mengedit file proyek secara manual dan dapat dengan mudah mempertahankan id bundel yang berbeda per lingkungan.
n8tr
Satu alasan mengapa Anda dapat mengalami ketidakcocokan pengenal aplikasi adalah karena Anda tidak mengunduh semua profil penyediaan. Arsip Anda dibuat dengan profil karakter pengganti jika profil dengan id aplikasi yang tepat tidak ada, yang menyebabkan ketidakcocokan dalam fase ekspor.
diidu
Ini berhasil untuk saya. Saya sedang membangun aplikasi Ionic dan menyadari bahwa saya mengujinya pada akun yang berbeda. Saya menggunakan com.foo.testName dan mengubahnya kembali saat membangun dengan akun yang benar. Tampaknya com.foo.testName masih ada dalam file
pbxproj
Terima kasih banyak, inilah yang memblokir validasi saya, dan penjelasannya sangat jelas!
MDH
@ n8tr Setelah hampir seminggu pusing dan frustasi, komentar Anda menyelamatkan saya. Terima kasih.
Behdad
9

Mungkin file {project} .entitlements hilang. Melakukan apa yang @samkass sebutkan akan menghasilkan file secara otomatis dan itu akan berfungsi. Jadi pada dasarnya buka saja tab kemampuan, aktifkan apa saja, dan nonaktifkan.

mrhangz.dll
sumber
Ini konyol tetapi berhasil untuk saya untuk beberapa proyek lama yang saya perbarui.
aspro
8

Mengubah sakelar iCloud menjadi aktif, membangun, dan menonaktifkan iCloud, menghilangkan kesalahan yang mengatakan bahwa:

Profil tidak cocok dengan nilai file hak untuk pengenal aplikasi dan hak grup akses rantai kunci.

Matahari terbenam
sumber
Tentu saja itu solusinya! Mengapa saya tidak memikirkan hal yang sama sekali tidak jelas ini untuk dicoba. Terima kasih Apple.
Jonathan Plackett
3

Di Xcode 11, ini bisa terjadi ketika file .entitlement tidak ada untuk proyek Anda. Solusinya adalah dengan menambahkan kapabilitas acak dengan mengklik '+ Kapabilitas' di bawah 'Signing & Capabilities' (yang mengarah ke pembuatan file .entitlement) dan kemudian menghapus kapabilitas. Ini juga akan memungkinkan Anda menyediakan sertifikat secara otomatis.

Bijoy Thangaraj
sumber
2

Silakan periksa fitur aplikasi Anda yang diperlukan untuk aplikasi Anda seperti pembelian dalam aplikasi, pemberitahuan push, audio Inter App, kit Siri, dll.

Ini adalah satu-satunya penyebab jenis kesalahan ini.

Pastikan bahwa di App id Anda, flag di atas harus aktif.

Sebagian besar waktu itu terjadi ketika Anda tidak mengonfigurasi pemberitahuan push, pembelian Dalam Aplikasi di ID Aplikasi pengembangan Anda.

Tech
sumber
Saya belum mengaktifkan apa pun. Ini benar-benar membuat frustrasi.
Paul Raymond
apakah aplikasi Anda memiliki fitur apa saja yang saya sebutkan di atas
Tek
Saya akan melampirkan tangkapan layar nanti, tetapi tidak ada pemberitahuan push atau pembelian dalam aplikasi untuk aplikasi.
Paul Raymond
apa sebenarnya yang Anda inginkan untuk cuplikan layar? di bawah plist tidak menyebutkan hak.
Paul Raymond
2

Saya masuk ke tab Kemampuan Target saya, mengaktifkan Berbagi Gantungan Kunci AKTIF dan itu mulai berfungsi

Roma
sumber
2

Bagi saya, triknya adalah

  1. menambah / menghapus kemampuan untuk target (dalam kasus saya adalah Widget);
  2. pastikan file hak yang dibuat terdaftar di pengaturan build;
  3. dan untuk menambahkan kunci "APS Environemnt" dengan nilai "development" ke file entitlemenets.
Joris Weimar
sumber
1

Di Xcode 10, saya membuatnya berfungsi dengan memindahkan file hak ke folder yang benar di Project Navigator. Saya tidak memiliki file hak, tetapi saya berhasil mendapatkannya dengan mengaktifkan fitur di tab kemampuan.

masukkan deskripsi gambar di sini

mikkokut
sumber
1

Saya mendapat kesalahan yang sama dan tidak ada solusi di atas yang menyelesaikan masalah dalam kasus saya.

Apa yang berhasil bagi saya adalah mengubah setelan "Dapat di-debug" di file "Entitlements.plist" dari "NO" menjadi "YES."

joemamma
sumber
1

Dalam kasus saya, masalahnya adalah sebagai berikut: profil penyediaan yang digunakan untuk langkah pembuatan dibuat untuk id aplikasi yang berbeda dari profil penyediaan yang digunakan untuk langkah ekspor.

Jadi, pastikan Anda menggunakan profil penyediaan yang sama untuk langkah pembuatan dan ekspor.

Alexey Komov
sumber
Karena saya ingin menyoroti bahwa kesalahan ini mungkin terjadi karena profil penyediaan yang berbeda pada langkah pembuatan dan ekspor. Pesan kesalahan tidak membantu untuk menemukan akar masalah dalam kasus ini. Adapun mengapa jawaban terlambat - kesalahan ini tidak terikat pada periode waktu tertentu. Jadi itu terjadi 1 tahun yang lalu dan terjadi sekarang semua sama. Jawaban yang diterima tidak berhasil dalam kasus saya.
Alexey Komov
1

Apa yang berhasil bagi saya adalah saya membuat arsip di XCode 11, dan mengunggah di dalamnya Xcode 12 beta.

Badr
sumber
0

Kemampuan pemeriksaan silang di aplikasi dengan opsi yang Anda aktifkan untuk ID Aplikasi di akun pengembang Anda.

KavyaKavita
sumber
Ini adalah aplikasi gratis dan saya belum mengaktifkan apa pun, dan itu sangat membuat frustrasi. Ini menginstal dengan baik di perangkat saya, saya tidak tahu di mana mencarinya.
Paul Raymond
dapatkah Anda membagikan tangkapan layar dari keduanya?
KavyaKavita
tangkapan layar apa yang Anda inginkan?
Paul Raymond
tangkapan layar bagian kemampuan dan konfigurasi ID Aplikasi pada akun pengembang
KavyaKavita
0

Saya mencoba beberapa opsi yang tercantum dalam jawaban di sini tetapi tidak ada yang membantu, namun, mengaktifkan kotak centang "Kelola penandatanganan secara otomatis" dan memperbaiki masalah.

john316
sumber
0

TL; DR: periksa ID Aplikasi Anda dan pastikan layanan sesuai dengan target Anda.


Apa yang terjadi pada saya adalah saya membiarkan Xcode 10.1 membantu saya membuat ID Aplikasi, dan setelah itu, saya mengalami masalah seperti yang dijelaskan di sini. (Saya memilih ID aplikasi whildcard ketika saya membuat aplikasi di iTunesConnect, jadi saya bahkan tidak menyadarinya.) Ketika saya membuka portal pengembang iOS, ID aplikasi baru memiliki Game Center dan In App Purchase diaktifkan secara otomatis.

Karena saya tidak dapat mengaktifkan Game Center di Anda Target -> Capabilities, saya mengaktifkan Pembelian Dalam Aplikasi, lalu aplikasi saya dapat ditandatangani dan diunggah.

superarts.org
sumber
0

Ketika kami menghadapi masalah yang sama, kami mencoba semua hal di atas tetapi tidak ada yang berhasil.

Apa yang berhasil bagi kami adalah mengubah pengenal bundel sehingga tidak identik dengan yang sebelumnya, misalnya "com.name.App" menjadi "com.name.App2"; biarkan xcode mencoba untuk mengambil / membuat profil penyediaan dan mengembalikannya ke yang asli.

Dapatkan ide ini dari utas ini di forum pengembang Apple- https://forums.developer.apple.com/thread/114539

Akshay Raje
sumber
0

Saya menemukan halaman ini baru-baru ini setelah mencoba membuat target duplikat - tidak ada saran yang berhasil untuk saya. Penyelidikan lebih lanjut, dan sejumlah penarikan rambut, akhirnya membuat saya menjelajahi pengaturan build untuk aplikasi saya untuk mencoba dan mencari tahu apa yang salah.

Ternyata proyek saya masih mengarah ke file hak dari target ASLI, alih-alih memilikinya sendiri. Untuk mengatasi ini, saya menavigasi ke file hak asli di Finder (misalnya $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ), membuat salinan dalam folder yang sama dan kemudian menamainya (misalnya NewTargetName.entitlements).

Kemudian, saya membuka file hak baru saya dan mengubah bidang pengenal aplikasi agar cocok dengan akhir pengenal bundel target baru saya (misalnya ABCDEFGH.US.co.fake-company.superduperapp-newtargetname ).

Terakhir, saya memperbarui bidang 'Kode Penandatanganan Entitlements' di pengaturan build ke jalur file hak saya (bagi saya, ini adalah sesuatu yang mirip dengan $ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements ).

Saya kembali ke tab Penandatanganan & Kapabilitas, dan lihat, masalah telah diperbaiki. Semoga seseorang di luar sana menganggap ini berguna.

Strafe86
sumber
0

Buka tab Info Xcode dan ubah bidang pengenal Bundel - setelah mengubah nama aplikasi, itu tidak berubah meskipun saya mengubah Pengenal Bundel pada tab Umum. Perbaikan di atas tidak berhasil untuk saya, tetapi yang ini langsung bekerja.

hardfi
sumber
0

Saya mengalami masalah ini dengan aplikasi baru, di Xcode 12 beta 3 ( pengiriman aplikasi dimulai hari ini ).

Xcode mengaktifkan "Kelola proses masuk secara otomatis". Namun, ID Tim yang ditampilkan di "Sertifikat Penandatanganan" tidak cocok dengan ID Tim yang ditampilkan di situs web iTunes Connect. Ini adalah penyebab utama yang mencegah aplikasi diunggah.

Bagaimana saya memperbaikinya:

  1. Saya secara manual membuat profil penyediaan untuk distribusi App Store
  2. Di Xcode, saya mengetuk "Unduh profil manual" di Preferensi -> Akun
  3. Lalu, saya menonaktifkan "Kelola penandatanganan secara otomatis".
  4. Setelah saya memilih profil penyediaan di tarik-turun, ID Tim yang benar muncul di bawah "Sertifikat Penandatanganan"
Eneko Alonso
sumber
0

Saya mengalami masalah yang sama saat menyiapkan pipeline Gitlab yang menjalankan cmd exportArchive dan mengunggah ke AppStore. Saya bisa membuatnya berfungsi dengan mengubah DEVELOPMENT_TEAM di Pengaturan Build ke Tim yang sama yang dipilih di Penandatanganan & Sertifikat.

Karena sebelumnya telah diset kosong yang menggunakan id TIM DEV lain secara default yang salah dan tidak cocok dan itu mengeluh tentang "application-identifier" = 12331232.com.bannana.apples.peach tidak cocok. Yang menuntun saya untuk menyetel DEV TEAM yang benar dan berhasil.

Xcode ver: Versi 11.3.1

Saya harap ini membantu seseorang.

Jamal
sumber
0

Setup kami

Beberapa target:

  • sub-aplikasi
  • menonton
  • klip aplikasi
  • widget hari ini

... dan gunakan iCloud.

Menghidupkan dan mematikan iCloud bukanlah pilihan bagi kami. Kami sudah menggunakannya dalam produksi dan agak tidak mengacaukannya ... Saya mendapat pesan pertanyaan asli dan variasi ini di beberapa titik juga:

Profil tidak cocok dengan nilai file hak untuk pengenal aplikasi dan hak grup akses keychain.

Larutan

Petunjuk dari tanggapan lain di sini, Kami memastikan bahwa semua target akan memiliki .entitlementsfile. Jika target tidak punya, kami membuat yang kosong seperti ini:

<?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/>
</plist>

... dan menunjuk sasaran itu Code Signing Entitlementdi Build Settingske kosong.entitlements berkas.

Terpecahkan!

Andres Canella
sumber
0

Hapus semua profil yang terletak di ~/Library/MobileDevice/Provisioning Profiles/

PerfectGamesOnline.com
sumber