Diperlukan penandatanganan kode untuk bundel Uji Jenis unit produk di SDK iOS 8.0

128

Mendapatkan

Diperlukan penandatanganan kode untuk jenis produk 'Bundel Uji Unit' di SDK 'iOS 8.0'

Target aplikasi saya adalah penandatanganan kode dengan baik - tetapi target pengujian saya tidak. Saya membeli komputer baru, membuat sertifikat pengembangan baru dari komputer, memperbarui profil penyediaan, menginstal keduanya, tetapi tidak dapat melewati kesalahan penandatanganan kode ini.

Adakah cara untuk menghapus semua sertifikat / profil secara lokal sehingga saya dapat menginstal ulang?

Mungkin semacam bug.

Spentak
sumber
Saya memiliki kesalahan yang sama - perbaikan saya adalah pergi ke pengaturan build, dan pilih profil bawaan, daripada memilihnya secara otomatis.
scb998

Jawaban:

129

Masalahnya adalah proyek ini di bawah kendali sumber dan setiap kali saya menarik .xcodeproj diperbarui. Dan karena profil penyediaan saya berbeda dari yang ada di kontrol sumber, target Uji Unit secara otomatis beralih ke "Jangan beri tanda kode". Jadi saya hanya perlu mengatur profil di sana setelah setiap tarikan git.

Rupanya jika digunakan untuk perangkat, jika ada target uji unit, itu harus ditandatangani kode.

Langkah:

1) Ubah target ke target pengujian Anda (AppnameTests)

masukkan deskripsi gambar di sini

2) Pastikan "Code Signing Identity" TIDAK "Don't Code Sign". Pilih profil untuk ditandatangani

masukkan deskripsi gambar di sini

Hanya itu yang harus saya ubah untuk membuatnya bekerja.

Spentak
sumber
saya menghadapi masalah yang sama seperti yang disebutkan dalam pertanyaan di atas tetapi tidak dapat menemukan cara untuk menyelesaikannya dan saya telah memposting pertanyaan mengenai hal yang sama. stackoverflow.com/questions/27312745/…
Neal
Bisakah Anda memberi tahu saya proses bertahap tentang cara melakukannya.
Neal
Punya masalah di Xcode 8. Resolusi tidak identik dengan Anda, tetapi tutup. Terima kasih telah menunjukkan jalan!
user3259235
Selain itu, selain menetapkan 'Identitas Penandatanganan Kode' Anda mungkin harus mengatur 'Tim Pengembangan' juga.
bit dan
100

Saya memperbaiki masalah (sementara) dengan pergi ke Edit Skema, lalu di bagian Bangun, menghapus target pengujian unit saya dari dipanggil di "Jalankan".

ZS
sumber
1
Tangkapan yang bagus! Mengapa Anda mengatakan sementara ? Sepertinya solusi yang masuk akal bagi saya. Apakah Anda mengirimkan aplikasi ke toko?
mokagio
Tidak ada masalah dengan mengirimkan aplikasi ke App Store. Saya mengatakan "sementara" karena saya pikir ada perbaikan yang lebih permanen dengan mengutak-atik penandatanganan kode, tapi ini adalah perbaikan cepat yang bebas gangguan.
ZS
2
Keren Terimakasih. Sepertinya solusi yang bagus untuk saya, target unit test seharusnya tidak berjalan. +1
mokagio
Bisakah Anda jelaskan lebih detail? maksudmu aku harus 'membangun'? dan saya tidak mengerti 'menghapus unit test saya dari dijalankan di Run'
LKM
66

Saran lain di sini tidak membantu saya, tetapi saya memperbaiki kesalahan ini dengan pergi ke Product > Scheme > Edit Scheme. Lalu saya mengklik Builddi sebelah kiri dan tidak memilih kotak centang di sebelah AppNameTests. Saya menggunakan XCode 6.3

masukkan deskripsi gambar di sini

Olivia Stork
sumber
@Almo Jangan hapus centang pada kotak apa pun di bawah "Tes", tetapi hapus centang semua (yang dapat Anda hapus centang) pada baris yang berlabel APPNAMEtests. Saya akan menyertakan tangkapan layar dalam jawaban saya untuk membantu memperjelas.
Olivia Stork
1
Saya melakukan itu, dan semuanya tidak diperiksa kecuali Test. Ternyata saya harus menghapus file .plist untuk menghentikannya mencoba kode menandatangani tes. Proyek saya membangun perpustakaan statis, jadi tidak ada yang perlu diberi kode.
Almo
1
Ahh baiklah. Yah sepertinya ada banyak alasan mengapa masalah ini dapat disebabkan dan ada banyak cara untuk memperbaikinya. Jika tidak ada orang lain yang menyebutkan solusi Anda, Anda dapat mempertimbangkan mempostingnya sebagai jawaban lain yang mungkin.
Olivia Stork
3
@huggie ¯ \ _ (ツ) _ / ¯ Selamat datang di pemrograman iOS!
Olivia Stork
1
@OliviaStork kamu mewajibkan saya. terima kasih banyak telah menyelamatkan pekerjaan saya.
Anurag Shrivastava
29

Saya memperbaikinya dengan memilih profil bawaan secara manual di pengaturan build untuk target pengujian.

Menguji pengaturan target -> Pengaturan build -> Penandatanganan kode -> Identitas tanda kode. Sebelumnya, disetel ke "Jangan tandatangani kode".

Embun beku
sumber
Memilih profil penyediaan secara eksplisit berfungsi untuk saya, terima kasih.
Mike Weller
Pastikan juga filter "Semua" dipilih di bagian atas, bukan "Dasar".
Marty
13

Selain itu, jika Anda menetapkan perangkat target bangunan Anda, masalah akan hilang ketika Anda menguji dan debugging. Kode yang ditandatangani hanya diperlukan ketika Anda mencoba menggunakan aplikasi Anda ke perangkat yang sebenarnya fisikara

Saya mengubah milik saya dari "myIphone" menjadi simulator iPhone 6 Plus, dan itu memecahkan masalah saat saya sedang mengembangkan aplikasi.

Ian Zhao
sumber
1
tetapi bagaimana jika Anda INGIN menyebarkan aplikasi Anda ke perangkat fisik ±!
Marwen Trabelsi
8

Dalam kasus saya, masalah yang saya hadapi adalah:

Kesalahan CodeSign: diperlukan penandatanganan kode untuk jenis produk 'Bundel Uji Unit' di SDK 'iOS 8.4'

Fortunatelly, target tidak mengimplementasikan apa-apa, jadi solusi cepat adalah menghapusnya.

masukkan deskripsi gambar di sini

Javier Calatrava Llavería
sumber
2

Saya mendapatkan kesalahan ini ketika menjalankan xcodebuild dari commandline untuk tes integrasi pada CI pekerjaan saya. Saya berhasil membuatnya bekerja dengan mengatur pengaturan tingkat proyek ke codesign. Untuk beberapa alasan pengaturan target diabaikan dan dikembalikan ke pengaturan proyek.

Pelet
sumber
2

Jika tidak ada yang berhasil dari solusi di atas, ikuti langkah-langkah ini

Dari Target pilih appnameTests Di bawah "Info"

Ubah yang berikut

Bundle Identifier: com.ProjectName. $ (PRODUCT_NAME: rfc1034identifier)

untuk com.ProjectName.appname

Nama bundel: $ (PRODUCT_NAME)

Nama bundel: appname

Kompilasi & eksekusi

nirvana74v
sumber
1

Saya memecahkan masalah dengan mengubah 'Provisioning Profile' di bagian yang sama ('Code Signing') dari Otomatis ke 'MyProvisioningProfile name'

arniotaki
sumber
0

Hai, saya menghadapi masalah yang sama hari ini. Setelah membaca jawaban "Spentak", saya mencoba membuat penandatanganan kode target untuk diatur ke iOSDeveloper, dan masih tidak berhasil. Tetapi setelah saya mengubah "Provisioning Profile" menjadi "Automatic", proyek tersebut dibangun dan dijalankan tanpa kesalahan penandatanganan kode.

Sahan Maldeniya
sumber
0

Terkadang ini terjadi ketika Anda mengunduh proyek dari github atau situs tutorial pihak ketiga lainnya. Aplikasi ini biasanya ditandatangani dengan identitas atau perusahaan / nama yang berbeda. Ketika ini terjadi, jika Anda tidak dapat menyelesaikan solusinya, cukup buat proyek xcode baru dan salin semua file header dan implementasi ke proyek baru Anda. Juga jangan lupa file dependensi..seperti file framework. Ini berfungsi untuk saya.

BrainyMonkey
sumber