Eksekusi ditandatangani dengan hak yang tidak valid di Xcode

113

Saya mendapat kesalahan ini dengan Xcode 5 ketika saya mencoba menjalankan aplikasi di perangkat saya.

Yang dapat dieksekusi ditandatangani dengan hak yang tidak valid

Ini bekerja dengan baik dengan Xcode 4.x. Ada yang tahu bagaimana cara menghilangkan kesalahan?

masukkan deskripsi gambar di sini

Emmy
sumber
Saya memiliki Xcode 8.3.3 dan jawaban ini benar-benar melakukannya untuk saya: stackoverflow.com/a/40464055/4177294
Nuno MSB

Jawaban:

102

Saya bergumul dengan masalah ini selama satu jam, dan akhirnya menemukan perbaikan. Tim Pengembang berbeda dalam ProjectTarget dan ProjectTests.

Krish Wadhwana
sumber
13
Terima kasih banyak! Ini hanya membantu saya dan menghemat banyak waktu!
Marky
Wow! Terima kasih @Krish
Ktr
Anda Pak, baru saja menyelamatkan hari Kamis saya, tidak bisa cukup berterima kasih
Samer Murad
di mana saya dapat menemukan ProjectTarget dan ProjectTests?
Pablo
ah! menemukannya! hari ini dan itu hanya setup ini! ??
Pablo
77

Memulai ulang Xcode adalah hal yang berhasil bagi saya.

RaffAl
sumber
15
Jadi Xcode mengadopsi perbaikan universal Microsoft. ;) Sebagai catatan, ini masih menjadi masalah dan memulai ulang masih perbaikan (saya menggunakan v7.3.1).
Eric Soyke
3
+1 lagi, hadapi masalah ini lagi, lalu cari di Google, saya mendarat di sini.
jayellos
Setelah berjam-jam memeriksa setiap detail ... ini bekerja di
XCode
Apakah Ada yang punya solusi yang solid untuk masalah ini !!!!, Semua solusi ini tampak seperti beberapa solusi situasional. Tolong bantu.
Maks
Sebenarnya membuat tim pengembangan proyek dan tim pengembangan uji proyek sama bekerja untuk saya
Tahmid Rahman
35

Saya menemukan masalahnya. Aplikasi yang saya buat di developer.apple.com tidak menyertakan audio antar-aplikasi. File plist hak proyek di Xcode memiliki audio antar-aplikasi yang disetel ke YA (secara default). Setelah saya mengubah pengaturan pada konfigurasi aplikasi saya di developer.apple.com untuk mengaktifkan inter-app-audio. Kemudian aplikasi saya berjalan di perangkat saya. Saya rasa itu adalah aturan baru Apple untuk membuat pengaturan aplikasi Anda konsisten di developer.apple.com dan pengaturan proyek xcode Anda.

Emmy
sumber
10
Saya mengubah kemampuan Inter-App Audio ke ON lalu OFF lagi, dan dengan cara ini aplikasi bekerja ... WT *?
Ferran Maylinch
Wow, luar biasa. Masih merupakan perbaikan yang dapat diterapkan, meskipun bagi saya itu adalah kemampuan Grup Aplikasi.
Keller
Sama disini! Ini sangat aneh. Saya kira Anda dapat mengubah kemampuan apa pun untuk memperbaikinya.
Andre Simon
Mencoba semuanya masih menghadapi masalah yang sama!, Ada saran
Max
24

Saya dapat memperbaikinya dengan mengaktifkan / menonaktifkan hak "Game Center" di Xcode 5 :-)

Nik
sumber
5
TERIMA KASIH! Anda tidak tahu betapa frustrasinya saya sepanjang pagi ini sampai saya menemukan jawaban Anda. Pasti memperbaikinya untuk saya.
Gasper Kolenc
1
Perlu diketahui bahwa Xcode akan membuat profil penyediaan untuk Anda, dan membuat profil penyediaan kustom Anda tidak valid.
Van Du Tran
@VanDuTran tidak, tidak akan.
Nik
Ini terjadi di aplikasi Xamarin juga di Visual Studio untuk mac. Jadi tidak hanya diisolasi ke Xcode.
Dan Beaulieu
19

Tidak ada solusi yang berhasil untuk saya sampai saya memeriksa dan menetapkan target Tes aplikasi ke profil penyediaan yang sama dengan aplikasi utama. Atau jika Anda menggunakan nyanyian otomatis, pastikan Anda memilih tim yang sama di target Tes.

Matej Ukmar
sumber
Poin yang sangat bagus, ini terjadi ketika Anda mengubah tim Anda di target utama tetapi tidak di target tes. Mengubah tim dalam target tes menjadi tim di target utama, memecahkan masalah bagi saya.
dan
Terima kasih!! Inilah yang akhirnya memperbaikinya untuk saya. Hak adalah ikan haring merah total.
Reid
19

Untuk XCode 10, seseorang mungkin perlu menggunakan sistem build lama

Perubahan dapat dilakukan dari File / Project Settings. ERROR ITMS-90174: "Profil Penyediaan Tidak Ada - Aplikasi iOS harus berisi profil penyediaan dalam file bernama embedded.mobileprovision."

Pengumuman cordova / ionic: https://github.com/apache/cordova-ios/issues/407

Chen Xing
sumber
1
ingin menambahkan untuk pengguna Cordova / Ionic bahwa Anda mungkin juga perlu mengubah proyek Xcode yang Anda buat untuk menggunakan mode lama dengan "File> Project / Workspace Settings" dan mengubahnya ke sistem Legacy Build "seperti yang dijelaskan di sini: stackoverflow.com/a / 52605878/2503520
Vyrnach
12

Solusi untuk Xcode terbaru :

Pertama, Anda harus memeriksa apa yang diaktifkan di pusat Anggota Anda untuk AppID spesifik Anda :

masukkan deskripsi gambar di sini

Kemudian pada sasaran yang tepat Anda di Xcode Anda harus mengaktifkan kemampuan yang sama: Dalam hal ini: App Group, Game Center, In-App Purchase. Semuanya harus diaktifkan di target Anda di Xcode.

masukkan deskripsi gambar di sini

Namun tidak masalah untuk mode DEBUG :

masukkan deskripsi gambar di sini

itu sangat penting untuk mode RELEASE Anda : masukkan deskripsi gambar di sini

Perhatikan bahwa Game Centerdan In-App Purchasediaktifkan secara default di Pusat Anggota tetapi dinonaktifkan di target Xcode.

Bartłomiej Semańczyk
sumber
3
Apakah mungkin untuk menghapus game center, dan pembelian dalam aplikasi dari developer.apple.com?
Noitidart
11

Saya pikir masalah Anda terletak karena profil yang Anda gunakan xCode4.6 dan sekarang Anda menggunakan xCode5.

Anda perlu menyegarkan sertifikat / profil penyediaan melalui XCode> Preferensi> Akun

XCode> Preferensi> Akun> Klik AKUN DEV Anda> tombol Lihat Detail (kanan bawah)> Layar Penandatanganan Iden / PPs muncul> tekan Segarkan.

Kemudian pilih lagi dari pengaturan membangun profil yang benar dan bersihkan dan bangun proyek Anda.

Semoga ini bisa membantu Anda.

Manthan
sumber
1
Terima kasih atas bantuan Anda. Saya menemukan masalahnya. Aplikasi yang saya buat di developer.apple.com tidak menyertakan audio antar-aplikasi. File plist hak proyek di Xcode memiliki audio antar-aplikasi yang disetel ke YA (secara default). Setelah saya mengubah pengaturan pada konfigurasi aplikasi saya di developer.apple.com untuk mengaktifkan audio antar-aplikasi. Kemudian aplikasi saya berjalan di perangkat saya. Saya rasa itu adalah aturan baru Apple untuk membuat pengaturan aplikasi Anda konsisten di developer.apple.com dan pengaturan proyek xcode Anda.
Emmy
6

Saya harus mencocokkan kemampuan aplikasi di Xcode5 di bawah

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

dengan itu di profil penyediaan.

Nithin Haridas
sumber
Juga memecahkan respons kesalahan "Token tidak valid" dari APN.
hiroshi
menambahkan hak pusat permainan dan menghapusnya kembali, bekerja untuk saya juga. Tidak tahu kenapa.
Rukshan Marapana
5

xcode 6.1 (sampel HealthKit)

Saya mendapatkan kesalahan ini karena integrasi HealthKit: Saya telah mengaktifkan Pembelian Dalam Aplikasi, Game Center dan Healkit menyelesaikan masalah saya .. Hal yang sama telah saya aktifkan di profil Penyediaan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Vinod Joshi
sumber
Harus melakukan hal yang sama untuk berbagi rantai kunci. Saya juga memiliki ekstensi aplikasi, saya harus melakukannya di kedua tempat agar dapat berfungsi.
CaseyB
5

(Xcode 6.1)

Masalahnya bagi saya adalah di Build Settings saya; Saya menetapkan Profil Penyediaan saya ke Profil Produksi App Store saat mencoba menerapkan ke perangkat. Saya mengalihkannya ke 'Otomatis' dan itu menyelesaikan masalah saya. Anda juga dapat mengaturnya ke Profil Penyediaan Pengembang Anda.

Saya juga memiliki 2 Sertifikat, jadi saya menambahkan Sertifikat kedua saya ke provisi dev saya. Orang lain mungkin tidak akan mengalami masalah ini.

Ian Newland
sumber
Terima kasih! Mengalihkannya ke 'Otomatis' berhasil untuk saya
Emastmagy MastMagy
Aneh bahwa mengubah ke otomatis memperbaikinya, tetapi berhasil untuk saya. Profil penyediaan saya disetel ke com.mycompany. * Dan mendapatkan kesalahan ini. Ada FixMe merah di bawah tab Capabilities, tetapi setelah memperbaiki masalah itu saya masih menerima kesalahan hak yang tidak valid. Saya kemudian mencoba mengubah profil penyediaan saya dari com.mycompany. * Menjadi otomatis dan memperbaiki masalah tersebut. Saya memeriksa ulang bahwa bundleID adalah com.mycompany.blabla, jadi sepertinya ada semacam bug Xcode. Saya menggunakan Xcode 6.3.2.
Jim Range
5

Saya mengalami masalah yang sama ketika saya memperbarui ke Xcode 10, saya memecahkan masalah dengan membuka File> Project Setting, di opsi "New Build System" pilih "Legacy Build System". Ini membuat trik bagi saya, saya harap ini membantu seseorang.

Jose Rojas
sumber
4

Clean-and-build yang sederhana sepertinya bisa memperbaikinya untuk saya.

Maxwell
sumber
Ini juga perbaikan bagi saya.
Enijar
4

Jika masalah ini sama dengan saya. Anda mungkin lupa mengatur tim dalam unittest dalam proyek target Anda coba lakukan gambar ini

masukkan deskripsi gambar di sini

Papon Smc
sumber
3

Saya menyelesaikan ini dengan menghapus semua "PROVISIONING_PROFILE=..."dan "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...di project.pbxproj dan memulai ulang Xcode dan mengatur profil penyediaan untuk target lagi.

BabyPanda
sumber
3

Jika memulai ulang xcode tidak berhasil, buat profil penyediaan baru dan pastikan untuk menyertakan perangkat uji Anda.

mohammad alabid
sumber
Memulai ulang / membersihkan tidak berhasil untuk saya, tetapi kemudian saya menyadari bahwa saya belum menambahkan ponsel uji baru saya ke profil Ad Hoc yang saya gunakan untuk membuat. Saya membuat ulang / mengunduh profil yang diperbarui dan kesalahannya hilang. Catatan: Anda mungkin mendapatkan kesalahan "keamanan" setelah melakukan ini, yang berarti perangkat memerlukan Anda untuk mengotorisasi aplikasi, cukup ketuk aplikasi pada perangkat untuk mengaktifkan peringatan "percaya pengembang".
SafeFastExpressive
3

Dalam kasus saya, perangkat tidak ditambahkan. Jadi saya harus menambahkan perangkat dan membuat profil penyediaan baru.

Xavi Valero
sumber
3

Hal lain untuk diperiksa - pastikan Anda memilih entitas yang benar di keduanya

Target -> Target Anda -> Pengaturan Bangun -> Penandatanganan

dan

Proyek -> Proyek Anda -> Pengaturan Bangun -> Entitas Penandatanganan Kode

Saya mendapat pesan ini ketika saya memiliki profil pengembang lengkap yang dipilih di satu dan ID Apple (non-pengembang) yang berbeda dipilih di yang lain, bahkan tanpa hak yang diminta dalam aplikasi.

CupawnTae
sumber
2

Sepertinya ada bug kecil di dalam Xcode. Cobalah untuk tetap mengarsipkannya , meskipun ada masalah dengan entitlements. Jika hak Anda baik-baik saja, itu akan diunggah tanpa masalah. Apple menerimanya, dan aplikasi Anda akan dipublikasikan ke AppStore.

Saya melakukannya, dan berhasil :)

Bartłomiej Semańczyk
sumber
2

Ini bisa jadi karena menjalankan skema yang salah juga.

Saurabh Bisht
sumber
1

Saya memiliki masalah yang sama di XCode 5. Ini membantu saya.

XCode > Preferences > Location tab > DerivedData

Tekan panah kiri kecil untuk membuka DerivedData di Finder. Pindah ke folder sampah proyek Anda dan bangun kembali.

Screenshot

Prcela
sumber
Saya kira harus ada alasan yang tepat tentang mengapa menghapus data turunan akan menyelesaikan masalah.
Kavita
1

Ada masalah. Selesaikan: buka target yang benar -> kemampuan -> bagi saya ada masalah dengan "Pembelian Dalam Aplikasi" dan tombol untuk memperbaikinya. Operasi off-on memperbaiki masalah.

Anton Plebanovich
sumber
1

Dalam kasus saya: Saya perlu mengaktifkan Inter-App Audio in

Capabilities -> Inter-App Audio

Saya pikir karena saya menggunakan Pemberitahuan Parse.com, itu memerlukan tautan ke AudioToolbox.framework

Nguyen Tran
sumber
1

Mengaktifkan Kemampuan -> Audio Inter-Aplikasi memperbaiki masalah ini untuk saya juga. Saya juga mencoba mengirim notifikasi push melalui parse

jstn
sumber
1

Jawabannya di sini tampaknya agak tidak memadai jadi saya menambahkan dua sen saya:

Solusi sebenarnya adalah umumnya ada ketidakcocokan antara apa yang disimpan dalam profil penyediaan Anda (periksa di developer.apple.com -> anggota -> sertifikat -> sertifikat yang Anda gunakan [pastikan untuk memeriksa apakah dev / produksi) dan apa yang diaktifkan di aplikasi Anda (klik dua kali nama proyek), di bawah menu horizontal pilih 'Kapabilitas' (di samping 'Umum').

Jika Anda baru saja mengubah salah satunya, pastikan untuk menyegarkan sertifikat Anda di bawah XCode -> Preferensi -> Akun -> Detail -> Segarkan Ikon dan mulai ulang XCode.

jdero
sumber
1

Dalam kasus saya, sertifikat APNS kedaluwarsa, hapus sertifikat yang kedaluwarsa dan buat ulang profil penyediaan untuk memperbaiki masalah.

BillChan
sumber
1

Dalam kasus saya, saya harus menerima Perjanjian Lisensi Pengembang Apple.

Masuk ke akun pengembang apple dan amati pesan pemberitahuan seperti di bawah ini.

"Perjanjian Lisensi Program Pengembang Apple telah diperbarui. Untuk mengakses sumber daya keanggotaan tertentu, **** harus menerima perjanjian lisensi terbaru sebelum 28 Juni 2016."

Sebelumnya, saya tidak dapat menambahkan / mengedit Kontainer iCloud ke App ID meskipun saya mengubah / memeriksa Kemampuan, Profil Penyediaan, Sertifikat, dll. Setelah perjanjian dengan kontrak, semuanya mulai bekerja dengan lancar.

Mudah-mudahan, ini akan menghemat waktu berharga seseorang.

Danboz
sumber
1

Saya menemukan masalah yang persis sama baru-baru ini. Setelah membaca banyak nasihat berbeda yang tidak ada yang berhasil untuk saya, saya akhirnya mencari tahu dan menemukan akar penyebab masalahnya.

File penyediaan seluler sebenarnya TIDAK cocok dengan file Hak yang dibuat oleh Xcode.

Meskipun semua file dianage secara otomatis oleh alat Apple, mereka tidak benar.

Jika Anda mengunduh file penyediaan dari portal Apple dan membukanya (Anda dapat membukanya karena hanya file plist yang ditandatangani oleh sertifikat Anda, sehingga dapat dibaca oleh editor teks) dan membandingkannya dengan file Hak Anda (dibuat secara otomatis oleh Xcode dan berada di file proyek (jadi sekali lagi file XML plist dapat dibaca oleh editor teks) Kemudian Anda dapat melihat perbedaannya.

Dalam kasus saya, itu adalah hak Game Center. Itu ditampilkan di portal sebagai dicentang (dicentang secara default) tetapi sebenarnya hak ini tidak disertakan dalam file penyediaan seluler. Jadi itu masalah menghapusnya dari file Entitlements.

Hasilnya - konten profil penyediaan seluler terkadang tidak sesuai dengan yang ditampilkan di halaman konfigurasi ID APP.

Radek
sumber
1

Bagi mereka yang memiliki masalah yang sama dengan Provisioning Profile Automatic di target Build Settings:

Berhati-hatilah saat Anda mengedit file hak target! Ini mungkin memutus korespondensi ke profil penyediaan yang dibuat secara otomatis, dan Anda akan mendapatkan kesalahan ini.

Dalam kasus saya, saya harus menggunakan sementara kontainer produksi iCloud dengan build debug. Untuk melakukannya, saya menyisipkan

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

di file hak dan ini berhasil!
Untuk mengingatkan saya bahwa saya nanti harus menghapus baris-baris ini, saya selanjutnya hanya menyisipkan komentar berikut:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

Dan ini merusak korespondensi, dan menciptakan kesalahan .

Reinhard Männer
sumber
Di manakah lokasi file hak?
Noitidart
Itu ada di folder proyek Anda, dan disebut "yourProject.entitlements". Anda dapat menemukannya di navigator proyek Xcode.
Reinhard Männer
Terima kasih. Sepertinya itu tidak dibuat sampai saya mencentang lalu menghapus centang "inter app audio". Saya memiliki game center dan pembelian dalam aplikasi di developer.apple.com tetapi saya tidak menggunakannya, ini adalah default. Jadi saya menandai kemampuan saya di xcode sebagai "aktif" tetapi apa pun yang saya dapatkan, "Eksekusi ditandatangani dengan hak yang tidak valid." kesalahan. :(
Noitidart
1

Saya menggunakan pemberitahuan push di aplikasi saya dan setelah pengembangan selesai saya mencoba untuk menguji pemberitahuan push untuk konfigurasi rilis . Saat itu saya mendapat kesalahan ini.

Saya menggunakan Profil Penyediaan Produksi untuk menjalankan rilis . Jadi saya bisa mengatasi kesalahan ini dengan menggunakan Adhoc Provisioning Profile.

Mahesh
sumber