Saya telah membangun aplikasi baru yang akan mendukung iOS 7. Saya mendapatkan XCode 5 GM baru dan mencoba untuk menandatangani aplikasi saya menggunakan profil penyediaan baru dan sertifikat distribusi, tetapi saya mengalami masalah dengan distribusi. Saya terus-menerus mendapatkan kesalahan berikut:
"Kepemilikan Penandatanganan Kode Tidak Valid. Kepemilikan dalam tanda tangan bundel aplikasi Anda tidak cocok dengan yang ada dalam profil penyediaan. Menurut profil penyediaan, bundel berisi nilai kunci yang tidak diperbolehkan: '[XXXX.com.sample .company] 'untuk kunci' grup akses-kunci ".
Juga kesalahan yang sama untuk nilai kunci yang disebut application-identifier
.
Tangkapan layar kesalahan ini:
sumber
Jika Anda seperti saya dan Anda pikir Anda telah mencoba SEMUA , mengarsipkan proyek Anda lebih dari sepuluh kali, membenturkan kepala Anda pada keyboard dan masih mendapatkan kesalahan ini. Tolong lakukan sendiri bantuan dan cukup Restart XCode , itu berhasil untuk saya. Suatu saat Apple ... Aku membencimu.
sumber
Saya telah melalui banyak langkah di atas tetapi yang akhirnya berhasil bagi saya adalah menyegarkan profil saya di Xcode. Tidak yakin mengapa itu perlu karena profil distribusi aplikasi saya sudah muncul dalam daftar. Berikut langkah-langkahnya:
sumber
Dalam kasus saya, saya mengaktifkan kapabilitas yang sama di Xcode yang ada di layanan Aplikasi di developer.apple.com. Itu berhasil untukku
sumber
Dalam kasus saya (maaf) saya beralih "Tim" ke "Tidak ada" di -> Umum -> Identitas
Dalam kasus lain, saya perlu mengubah identitas ini dari "Tidak Ada" ke akun pengembang yang mengelola identitas dan profil.
Xcode terkadang sangat kacau dengan penandatanganan kode, sepertinya. Atau, kita hanya manusia biasa saja tidak cukup pintar untuk memahami apa yang dilakukannya, tentu saja. Jangan menyerah, kita semua akan melalui beberapa siksaan penandatanganan kode kadang-kadang!
sumber
Dalam kasus saya, saya harus menetapkan Profil Provision untuk Rilis yang benar, dan kemudian harus memulai ulang Xcode. Sebelum memulai kembali, itu memiliki profil ketentuan yang sama, dan tidak berfungsi. Jadi, terkadang restart bisa membuat keajaiban. Mungkin ini membantu seseorang.
sumber
Jika seseorang menggunakan GameCenter maka periksa bagian ini di target Anda. Saya bekerja dengan beberapa proyek lama dan ada 2 kesalahan (tetapi semuanya bekerja dengan baik). Menonaktifkan dan mengaktifkannya kembali menyelesaikan masalah ini.
Kemungkinan besar tindakan ini menambahkan hak Game Center ke ID Aplikasi dan menanganinya sendiri.
sumber
1. Buka folder proyek, hapus file * .entitlements. 2.Kemudian lanjutkan ke target proyek xcode -> build settings -> hak penandatanganan kode - hapus nilai 3.Clean 4.Run
sumber
Ah, kesalahan yang mulia ini. Bagi saya setiap kali saya melihat kesalahan ini saya memeriksa hal-hal berikut:
1. Izinkan XCode untuk mengakses info profil penyediaan Anda sepanjang waktu - Jika XCode terus bertanya kapan Anda memulai untuk memiliki akses ke file pribadi komputer Anda sehingga dapat memperoleh informasi profil penyediaan dengan opsi untuk selalu memungkinkan akses, tidak sekarang, atau hanya satu kali - setel ke SELALU MENGIZINKAN akses
2. Jika Anda memiliki file hak lama yang menendang di sekitar proyek Anda singkirkan mereka dan tanda-tanda mereka - jika Anda melihat file .entitlements dalam proyek Anda hapus (atau setidaknya hapus referensi untuk itu jika Anda tidak yakin Anda siap untuk langsung menghapusnya), lalu pastikan baris 'Hak Penandatanganan Kode' di bawah bagian 'Penandaan Kode' di Bangun Pengaturan kosong
3. Periksa Layanan Aplikasi Anda secara online dan cocokkan dengan Layanan Anda di XCode untuk aplikasi - Buka Apple Member Center dan periksa ID Aplikasi untuk aplikasi Anda, klik pada aplikasi untuk melihat 'Layanan Aplikasi' dan melihat apa yang Anda telah memeriksa, kemudian pergi ke XCode dan periksa bagian 'Kemampuan' Anda untuk memastikan keduanya memiliki daftar layanan Apple yang sama di kedua
4. Pastikan Anda menetapkan Profil Penyedia yang valid untuk aplikasi Anda sebelum memvalidasi - periksa profil penyediaan Anda untuk aplikasi di Pusat Anggota Apple, pastikan itu tidak kedaluwarsa, memiliki ID Aplikasi yang tepat dengan id bundel dan distribusi yang benar . Unduh dan klik pada profil penyediaan baru untuk memastikan XCode memilikinya, atau buka XCode> Preferensi> Akun> klik pada akun Anda dan 'Lihat Detail' lalu klik tombol sudut bawah untuk Menyinkronkan semua profil ke XCode. Anda harus memiliki profil yang tersedia untuk dipilih sekarang di bagian 'Penandatanganan Kode'. Setelah Anda memiliki profil penyediaan yang benar, maka Anda dapat mengatur garis 'Identitas Penandatanganan Kode' ke opsi yang benar untuk profil penyediaan tersebut.
Catatan - jika melakukan sertifikat distribusi, dapat membantu untuk mengatur semua baris 'Identitas Penandatanganan Kode' ke identitas yang Anda gunakan untuk distribusi termasuk jalur debug
5. JIKA SEMUA GAGAL GAGAL - Bersihkan proyek Anda dan Mulai Ulang XCode dan beberapa sihir Apple mungkin akan berfungsi dengan baik saat Anda membuka proyek berikutnya dan mencoba memvalidasi
sumber
Jika Anda sedang membangun proyek 3.1.5 lama, Xcode 5 memiliki beberapa bug yang sayangnya membuat jawaban Benjamin tidak mungkin, karena tidak ada profil Provisioning untuk dipilih. Setelah sekian jam membaca file proyek Xcode yang tersiksa saya menemukan solusi ini yang bekerja untuk saya:
open -a TextEdit path/to/name.xcodeproj/project.pbxproj
isa=XCBuildConfiguration
).PBXNativeTarget
dan satu dalamPBXProject
XCConfigurationLists
)Sekarang Anda siap untuk membuka kembali, mengarsipkan, dan mengirimkan ke App store - voila! Berhasil lagi!
Bagaimana cara kerjanya
Saya berasumsi ini berfungsi karena Apple di suatu tempat di sepanjang garis memutuskan untuk menghentikan kebutuhan untuk konfigurasi distribusi yang terpisah, yang merupakan hal yang baik. Ketika saya mengarsipkan, Xcode secara otomatis menandai tanda-tanda untuk distribusi. Itulah cara yang seharusnya diimplementasikan sejak awal, hanya memalukan bahwa Apple tidak dapat membuat migrasi otomatis bagian dari IDE; alih-alih mereka memaksa kami pengembang untuk menghabiskan waktu puluhan tahun untuk membuat hal ini bekerja.
sumber
Saya telah berjuang dengan masalah ini selama lebih dari satu hari sekarang, mencoba semua jenis solusi yang disarankan di sini dan di tempat lain di internet. Tidak ada yang berhasil ...
Tapi, akhirnya saya berhasil menyelesaikan masalah!
Masalah yang saya miliki adalah dengan aplikasi lama yang belum saya sentuh lebih dari 3 tahun, dan sekarang saya akan merilis pembaruan yang telah lama ditunggu. Sejak saya merilis aplikasi, Apple telah memperbarui cara kerja sertifikat dan Id Aplikasi. Mereka telah memperkenalkan konsep Id Tim yang tampaknya direkomendasikan untuk digunakan. Secara khusus, situs "Sertifikat, Identifikasi & Profil" Apple, telah melihat banyak perubahan sejak saat itu.
Di sana saya menyadari bahwa Profil Penyedia yang saya gunakan untuk Distribusi App Store terhubung ke App Id
ED8xxxxxxx.com.rostsolutions.*
tetapi melihat App Id untuk game yang akan saya kirimkan. Saya perhatikan bahwa App Id ituATMxxxxxxx.com.rostsolutions.Swisch
. Jadi awalan App Id tidak cocok! Tampaknya itu adalah akar masalahnya. Jadi yang saya lakukan adalah membuat Profil Penyedia baru yang terhubung ke App IdATMxxxxxxx.com.rostsolutions.Swisch
. Dengan menggunakan Profil Penyedia tersebut, saya berhasil mengirimkan aplikasi saya ke App Store dan sekarang saya hanya memastikan bahwa segala sesuatu berfungsi dengan baik di sisi Apple.(Saya pertama kali mencoba menghubungkan ke profil Provisioning baru ke ID wildcard
ATMxxxxxxx.com.rostsolutions.*
, tetapi itu sepertinya tidak berhasil).Tapi yang membingungkan saya adalah ketika saya melihat Aplikasi lama di iTunes Connect dan pergi ke Binary Details, dikatakan bahwa App Id-nya
ED8xxxxxxx.com.rostsolutions.Swisch
. Jadi mengapa halaman "Sertifikat, Identifikasi & Profil" mencantumkan Id AplikasiATMxxxxxxx.com.rostsolutions.Swisch
?sumber
Masalah saya terpecahkan dengan menghapus ID Apple saya dari Preferences-> Akun dan kemudian menambahkannya kembali. Lalu semua file profil penyediaan saya muncul di panel utilitas Lihat Rincian. Saya keliru memilih "Mac Provisioning Profile: *" daripada profil penyediaan distribusi yang sebenarnya untuk proyek berpikir bahwa itu adalah seleksi umum. File penyediaan harus spesifik untuk proyek. Oh, dan BTW, pastikan profil penyedia Anda memiliki hak yang benar (misalnya, Maps). Saya berhasil merilis aplikasi dengan OSX Maps tanpa hak dan Apple menyetujuinya - tetapi tidak ada Maps yang muncul di versi produksi!
sumber
Dalam kasus saya, saya memiliki masalah yang sama, solusi saya adalah mengubah 'Profil Penyedia Rilis' di Pengaturan Bangun sebelum melakukan Arsip. Saya melakukan ini dua kali, satu untuk distribusi App Store, dan satu lagi untuk distribusi Ad Hoc. Saya juga menambahkan komentar pada arsip saya. Kesimpulan saya adalah bahwa ada sesuatu yang rusak tentang "tanda tangan arsip".
sumber
Ada tutorial yang sangat bagus untuk menyelesaikan masalah itu di situs web ini .
Dikatakan bahwa masalah ini dapat terjadi ketika Projects Bundle Identifier Anda berbeda dengan yang Anda masukkan di Situs iTunes Connect .
sumber
Saya pikir xcode 5 menggunakan "rilis" alih-alih "distribusi" yang dapat Anda buat sendiri.
sumber
Jika semua di atas tidak berhasil (dalam kasus saya setelah beberapa hari tidak berhasil mencoba semuanya) Saya hanya punya satu aplikasi Mac. HATI-HATI DENGAN REVOKE!
1) Cabut dengan tangan semua "Distribusi Aplikasi Mac" & "Distribusi Pemasang Mac"
2) Bersihkan sertifikat dan kunci terbuka yang relevan di Keychain ( Peringatan: ekspor sebelum dihapus)
3) Mulai ulang Xcode 4) Buka pengembang (di Safari) .apple .com -> sertifikat dll. 5) Buat CertificateSigningRequest.certSigningRequest di Keychain-> Certificate assistant
6) Buat dengan tangan di developer.apple.com baik "Distribusi Aplikasi Mac" & "Distribusi Pemasang Mac" dengan * .certSigningRequest
7 Anda) Profil -> Distribusi -> buat / perbaiki provisi kustom untuk AppStore (Saya secara khusus menamainya sebagai "profil provisi Mac untuk AppStore"
8) Xcode -> Pengaturan -> Akun -> Akun Anda -> Akun Anda ->Refresh 9) Xcode Clean -> Archive -> Validate
sumber
Saya telah berjuang dengan masalah yang sama (saya membangun untuk distribusi Ad-Hoc). Satu-satunya hal yang telah berubah sejak penerapan terakhir yang berhasil, adalah menambahkan dua perangkat ke profil penyediaan.
Setelah memeriksa dua dan tiga pengaturan semua pembangunan, saya membuat ulang profil penyediaan (tanpa mengubah apa pun), diunduh ulang dan itu bekerja dengan baik.
Jadi perhatikan untuk diri sendiri: jika tidak ada penjelasan logis, Anda selalu dapat mencoba voodoo IT lama yang baik.
Saya juga merekomendasikan Utilitas Konfigurasi iPhone , yang meskipun namanya, berguna untuk memeriksa profil bawaan yang Anda miliki di komputer.
sumber
GALAT ITMS-9000: “Bundel ini tidak valid. Aplikasi dan pembaruan aplikasi baru yang diajukan ke App Store harus dibangun dengan versi publik (GM) XCode 5.1.1 atau lebih tinggi dan iOS 7 SDK. Jangan mengirimkan aplikasi yang dibuat dengan perangkat lunak beta.
sumber
Jika beberapa pengembang menggunakan akun pusat anggota yang sama. Salah satunya tidak dapat menggunakan sertifikat yang dibuat oleh orang lain karena mereka menggunakan permintaan sertifikat yang dibuat menggunakan komputer mereka.
Alternatif, suruh mereka mengirimi Anda Profil Pengembang. tidak yakin namanya. untuk menggunakan sertifikat yang dibuat di komputer lain.
sumber
Kepemilikan penandatanganan kode terjadi karena sumber daya Anda tidak mengandung file Entitlements dalam sumber daya, Cukup buka pengaturan bangunan dan cari Penandatanganan kode yang menghapus entri untuk debug dan lepaskan, bangun proyek lagi Anda akan melihat tidak ada kesalahan. Bersulang
sumber
Saya memiliki masalah yang sama, tetapi tidak ada yang ditulis di sini yang berfungsi untuk saya. Namun, saya menemukan cara sederhana yang bekerja untuk saya. Inilah cara melakukannya:
1) Dalam pengaturan membangun Proyek dan Target Anda, pilih "Tidak Ada" untuk semua profil Penyediaan, dan pilih "Jangan Tanda Kode" untuk semua Identitas Penandatanganan Kode.
2) Sekarang, pilih Target Anda dan pergi untuk membangun pengaturan. Dalam pengaturan Pelepasan Identitas Penanda Kode, pilih "Distribusi iOS" untuk "SDK iOS Apa Saja". Dan kemudian, dalam pengaturan Provisioning Profile Release, pilih profil distribusi Anda untuk "Any iOS SDK". Setelah itu pengaturan Kode Penandatanganan Identitas Rilis Anda akan secara otomatis berubah menjadi "Distribusi iPhone".
3) Arsipkan bangunan Anda dan validasi. Sekarang seharusnya berfungsi dengan baik. Itu dia!
sumber