Xcode 4: Build Gagal, Tidak Ada Masalah

90

Aplikasi ini berfungsi dengan baik di simulator, membangun dan menjalankan.

Saat saya memasang perangkat saya (iPhone 3GS menjalankan iOS 4.3) dan menargetkan iPhone, hasilnya adalah "Build gagal" dengan "Tidak ada masalah".

Melihat jendela hasil build, semuanya berwarna hijau, memiliki tanda centang, termasuk pemberitahuan Build gagal .

Memperluas transkrip tidak menunjukkan kesalahan.

Saya tidak dapat mengecualikan kemungkinan kesalahan penandatanganan atau penyediaan, tetapi itu memberi saya kesalahan itu, saya memperbaikinya, dan sekarang tidak memberi saya kesalahan atau masalah apa pun, hanya "Build gagal; Tidak ada masalah"

  • Dengan cara apa build dapat gagal tanpa masalah?
  • Adakah cara agar saya dapat melihat keluaran build untuk mengetahui apakah saya dapat menemukan alasan kegagalannya tanpa masalah?
  • Apakah ada keluaran build yang dihasilkan di luar daftar masalah?
  • Saya tidak melihat di jendela build tempat ia mencoba memuat aplikasi ke perangkat saya - apakah ini keluarannya di tempat lain?
Adam Davis
sumber
Ini sedang terjadi pada saya sekarang! Sangat membuat frustasi!
tallen11
1
Saya pikir stackoverflow.com/a/28064945/1709587 biasanya akan menampilkan semacam pesan kesalahan; ini jauh lebih berguna daripada berbagai tebakan yang disertakan dalam jawaban lain dan harus menjadi titik awal bagi siapa pun yang mencoba men-debug situasi ini. Apakah Anda akan menerimanya untuk menampilkannya di bagian atas halaman?
Mark Amery

Jawaban:

76

Saya mendapatkan 'Build Failed' tanpa kesalahan di navigator Masalah (hanya peringatan). Namun, navigator laporan menampilkan kesalahan dengan benar.

Lincah
sumber
4
Bagus, ini menunjukkan kesalahan saya. Sekarang saya bisa berhenti membuang-buang waktu dan benar-benar menyelesaikan kesalahan :)
Daniel Ryan
Menyelamatkan hariku !! Terima kasih
DZenBot
Saya harus membersihkan DerivedData + menonaktifkan BitCode (untuk berjaga-jaga).
DevAndArtist
33

Apakah Anda menggunakan "Garis bawah" dan "Spasi", dll. Untuk pengenal Paket?

Apakah Anda menggunakan .m, bukan .h di salah satu impor Anda? #import "Photo.h"

revs674180
sumber
1
Tidak, saya tidak menggunakan spasi atau garis bawah di ID bundel saya.
Adam Davis
2
Terima kasih! Bagi saya, itu adalah garis bawah dalam pengenal Bundle.
cocoapriest
Terima kasih! IDetifier paket saya kosong karena beberapa alasan.
tallen11
2
Terima kasih. Setelah menghapus garis bawah, proyek saya terkompilasi dengan baik. Saya merasakan kombinasi aneh dari kemarahan, kelegaan, dan rasa syukur yang membutakan. BAGAIMANA SAYA BISA SEPERTI MENGGUNAKAN UNDERSCORE DALAM NAMA PROYEK?!?
Tina D.
1
WOW! Saya punya masalah itu juga. Sebuah garis bawah. Diubah menjadi tanda hubung dan semuanya baik-baik saja. Ini benar-benar APPLE ABSURD! Saya suka iOS. Saya membenci proses berbelit-belit yang digunakan Apple untuk memasukkan aplikasi Anda ke perangkat untuk diuji. Bagaimanapun, terima kasih untuk perbaikan ini!
DA.
21

Hal pertama yang saya coba adalah membersihkan semuanya (menu Produk / Bersihkan) dan membangunnya lagi. Anda mungkin sudah mencobanya.

Anda akan menemukan (dan Anda dapat menonton selama pembuatan) keluaran build lengkap di Log Navigator. Itu ikon paling kanan dari ikon kecil tepat di bawah tombol Run dan Build.

File log build (dan debug) ditemukan di direktori / Users / you / Library / Developer / XCode / DerviedData / YourProject-abcdefg / Logs / Build (dan ../Debug masing-masing).

Saya tidak berpikir ada keluaran untuk penginstalan aplikasi Anda di perangkat.

Codo
sumber
Ya, membersihkan tidak membantu. Saya telah menggunakan dan melihat-lihat keluaran build di navigator log dan log sesi terkait. File log yang Anda tunjuk tampaknya biner, jadi sepertinya satu-satunya akses yang saya miliki adalah melalui navigator log dan log sesi.
Adam Davis
Mengenai Log Navigator, dalam kasus saya, saya memiliki log yang ada di masa mendatang (karena saya mengubah tanggal di komputer menjadi 1 hari ke depan untuk menjalankan beberapa tes). Sepertinya xcode menggunakan log terbaru (berdasarkan tanggal pembuatan). Untuk memperbaikinya (di xcode 5), saya menghapus tanggal turunan untuk proyek, dan memulai ulang xcode, sehingga log yang akan datang menghilang, dan Issue Navigator mulai menampilkan peringatan dan kesalahan yang benar.
alex-i
19

Apakah ada spasi di Nama Produk Target Anda?

Saya tahu bahwa di versi Xcode sebelumnya ini tidak ada masalah, tetapi tampaknya mereka merusak sesuatu di Xcode 4 sehingga tidak berfungsi lagi (saya curiga itu ada hubungannya dengan jalur DerivedData yang tidak masuk akal). Anda dapat menambahkan spasi ke nama aplikasi Anda seperti yang muncul di Launchpad iDevice Anda dengan mengatur CFBundleDisplayNamekunci Info.plistke sesuatu selain ${PRODUCT_NAME}.

damian
sumber
Tidak, nama aplikasi hanya terdiri dari satu kata, tidak ada karakter khusus, spasi, atau apa pun.
Adam Davis
Itu berhasil untuk saya. Sobat, apple menemukan cara baru untuk mempersulit pengembang untuk pindah ke platform mereka. Kesalahan pikiran bertiup. !!
CF_Maintainer
Anda juga tidak boleh memiliki garis bawah dalam nama produk
afrederick
13

Di salah satu milis Cocoa Heads lokal, saya didorong untuk mencoba proyek sampel default kecil - sesuatu yang seharusnya saya lakukan di awal untuk memastikan penyediaan dan penandatanganan saya berfungsi. Itu dibangun dan berjalan di perangkat saya tanpa masalah, jadi semua tanda mengarah ke masalah dengan kode atau proyek saya.

Saya akan membuang hal-hal dari proyek yang ada ke proyek sampel baru, dan jika gagal dengan cara yang sama, saya harus dapat mempersempit masalah ke wilayah minat yang lebih kecil.


Saya telah menambahkan fungsionalitas utama aplikasi ke dalam proyek baru, dan itu berjalan dengan baik. Satu-satunya hal yang saya lakukan secara berbeda kali ini adalah saya tidak menyiapkan biner universal (hanya iPhone sekarang) dan mematikan semua kecuali orientasi potret. Sejauh yang saya tahu bahwa semuanya sama, meskipun jika saya memutuskan untuk memeriksanya lebih jauh nanti, saya akan membedakan file proyek dan melihat apa lagi yang mungkin berbeda.

Jadi solusi bagi saya adalah memulai proyek baru, port semua fungsionalitas dari proyek lama ke proyek baru.

Mungkin saja membuat ulang target, seperti yang disarankan Paul dalam jawaban lain, akan memperbaikinya juga, tetapi dengan proyek sederhana yang dimulai ulang dari awal itu mudah bagi saya.

Adam Davis
sumber
Saya punya masalah ini juga. Saya telah membuat proyek Xcode4 baru sebelum menyiapkan profil sertifikat / penyediaan saya dan itu akan error tanpa masalah. Setelah mereka diatur dan saya memulai ulang Xcode, saya dapat memulai proyek baru dan berjalan tanpa masalah. (Tidak banyak bantuan dengan proyek yang ada, saya tahu.)
zekel
@zekel Menarik! Saya mendapatkan proyek dan menjalankan simulator juga, sebelum melalui proses mendapatkan sertifikat dan penyediaan selesai. Saya membayangkan orang-orang yang tidak membiarkan provisi mereka kedaluwarsa selama peningkatan tidak akan mengalami masalah ini ...
Adam Davis
7

Saya memiliki masalah yang sama, dan seperti orang lain menyarankan itu ada hubungannya dengan pengenal bundel. Saya baru saja mengubahnya, sebagai ujian, dan telah memberi tanda bintang di dalamnya. Saya memperbaikinya, dan harus membersihkan target, lalu berhasil.

Cortis
sumber
Saya juga memiliki tanda bintang dan menghapusnya menyelesaikan masalah saya. Terima kasih telah menyebutkannya.
SteveB
Menggunakan pengenal wild card (mis. Com.developername. *) Adalah penyebab masalah bagi saya juga. Mengembalikannya ke com.developername default. $ {PRODUCT_NAME: rfc1034identifier} menyelesaikan masalah. Saat ini saya menjalankan Xcode 4.0.2
GnarlyDog
7

Ini terjadi pada saya setelah menghapus target yang tidak digunakan. Tampaknya Xcode memberi spasi di CFBundleIdentifier (com.company.etc) target saya yang tersisa. Saya harus mengedit Info.plist dengan editor teks eksternal untuk menghapusnya dan kemudian berfungsi dengan baik.

AbePralle
sumber
ini juga terjadi pada saya. di bawah target, ringkasan, pengenal, saya menyingkirkan spasi di awal. Apel Sheesh. Berapa banyak gotcha yang bisa Anda buat?
fregas
Bundle Identifier adalah masalah saya. Ini ada di file Info.plist.
bentford
7

Saya baru saja bermain dengan menambahkan banyak proyek di dalam ruang kerja dan mendapatkan masalah ini. Saya memiliki perpustakaan sederhana di salah satu proyek dan saya sedang membangun dan saya menambahkan target berbasis jendela iOS untuk mengujinya. Saya menghapus target pertama yang saya buat untuk ini untuk mengganti namanya. Setelah membaca ini saya mencoba menghapus xcuserdata dari dalam paket .xcodeproj dan itu memperbaiki masalah saya. Saya harap ini membantu orang lain. Menjalankan Xcode 4.1 di OS X 10.7.1.

Andrew
sumber
7

Setelah memeriksa semua jawaban ini, saya memiliki masalah yang sama persis, tetapi sesuatu yang berbeda menyelesaikannya untuk saya.

Masalah:

Build gagal tanpa masalah setelah refactoring. (Mengganti nama kelas menggunakan Edit -> Refactor -> Rename).

Solusi Terbodoh Yang Pernah Ada:

Pergi refactor (rename) sesuatu yang lain (-_- "). Setelah melakukan itu, kesalahannya adalah Xcode gagal mengganti nama semua file yang sesuai, dan tidak menunjukkan kesalahan. Kemudian, setelah refactor lain, kesalahan dari refactor sebelumnya muncul .

Mazyod
sumber
itu dia ! saya mengganti nama properti secara manual dan itu menyebabkan masalah. terima kasih
Laszlo
6

Saya memiliki masalah yang sama. Saya mencoba memperbaikinya xcode rusak. Saya membukanya kembali dan berfungsi dengan baik. Mungkin aku beruntung atau apa? Apapun, saya tidak terlalu peduli apa yang salah dengan itu selama itu berhasil sekarang

Porter
sumber
6

Jika Anda mengubah pengenal bundel dan proyek yang dibersihkan, tetapi juga tidak berhasil, coba kosongkan direktori / Users / YOUR_USERNAME / Library / Developer / Xcode / DerivedData.

Ini bekerja untuk saya.

Kenial
sumber
6

Bagi saya, build gagal tanpa menampilkan kesalahan apa pun di Issue Navigator. Namun, di Log Navigator, dalam sesi pembuatan itu, saya bisa melihat kesalahan. Dalam kasus saya, kesalahannya adalah konstanta yang tidak dideklarasikan. Saya mengimpor file header yang diperlukan dan masalah telah teratasi. Saya tidak yakin, mengapa kesalahan ini tidak muncul di Issue Navigator.

Saya mencoba mereproduksi perilaku ini dengan sengaja mengubah nama variabel lain. Kali ini, kesalahan ditampilkan di Issue Navigator. Jadi, saya masih tidak yakin mengapa kesalahan sebelumnya tidak muncul di Issue Navigator.

Semoga ini membantu.

Sreejit
sumber
6

Solusi di atas tidak berhasil untuk saya.

Solusi saya adalah memindahkan proyek ke folder lain.

Kesalahan build kemudian muncul seperti biasa.

Alex
sumber
4

Sudahkah Anda membersihkan folder build Anda? Buka menu Produk, tahan tombol Option, dan pilih "Clean Build Folder…"

Jon Reid
sumber
Ini tidak mengubah hasil.
Adam Davis
Tidak menghasilkan perubahan
Jayprakash Dubey
4

Saya tahu apa masalahnya: Di Info.plist -> Bundle Identifier: Anda tidak dapat menggunakan '_'. Misalnya, com.mycompany.My_app tidak valid, tetapi com.mycompany.My-app OK.

Rubycon
sumber
3

Saya memiliki masalah yang persis sama ketika mencoba mengkompilasi proyek yang ada di xcode 4, dan hampir mengalami rasa sakit saat membuat ulang proyek tersebut.

Namun, dalam upaya terakhir saya mengganti file info.plist dengan yang baru dibuat yang menyertakan tag tambahan untuk "jenis dokumen", "jenis url", "Jenis UTI yang Diekspor" dan "Jenis UTI yang Diimpor"

Ini sepertinya berhasil dan merupakan perbaikan yang sangat sederhana untuk proyek saya.

pengguna696455
sumber
3

Ini terjadi pada saya dengan target UnitTest saya. Sedang bekerja dan kemudian berhenti. Saya lupa saya baru saja menghapus .h / .m pada sistem file dan tidak menghapusnya dari file proyek, namun XCode tidak melaporkannya.

Saya mengetahuinya dengan menjalankan proyek pada baris perintah, yang memberi tahu saya kesalahan:

/usr/bin/xcodebuild -target "UnitTest"

Jalankan ini di folder tempat Anda memiliki file proyek Anda, dan ganti UnitTest dengan target Anda - atau jangan berikan target untuk membangun target default.

bandejapaisa
sumber
3

Saya mengalami masalah ini juga, tetapi penyebabnya berbeda:

Saya memiliki ruang kerja dengan satu proyek di dalamnya. Dalam proyek ini saya menggunakan kerangka kerja yang disertakan dengan menambahkan proyek Xcode itu ke proyek saya. Saya mengimpor file header framework di header awalan saya (.pch). Ini bodoh.

Solusinya adalah menghapus #import file header framework dari file header awalan saya dan menambahkannya hanya jika diperlukan.

CodeStage
sumber
3

Masalah yang sama di sini saat membuat perangkat. Build gagal, tetapi log saya semuanya berwarna hijau. Membersihkan / menghapus folder build tidak memperbaikinya. Saya membaca di tempat lain bahwa seseorang memecahkan masalah ini dengan menghapus dan membuat ulang target, tetapi saya belum sepenuhnya menemukan cara melakukannya di XCode 4.


Solusi sementara saya adalah mengunduh dan menginstal XCode 3.2.6 w / iOS 4.3. Saya tidak menyadari bahwa Apple juga telah merilis versi XCode 3 yang mencakup iOS 4.3, memungkinkan Anda untuk menunda peningkatan ke XCode 4. Saya mengajukan laporan bug dengan Apple tentang masalah Build Failed.


udpate dari Apple:

Ketika kami membangun proyek ini - meskipun pada versi pasca-Xcode 4.0 - kami melihat yang berikut ini di langkah ProcessProductPackaging di log pembuatan:

(null): error: CFBundleIdentifier 'com.yourcompany.Magic_Carpet' berisi karakter ilegal '_' pengenal bundel tidak valid 'com.yourcompany.Magic_Carpet'

Kode ProcessProductPackaging mengalami perombakan baru-baru ini, jadi kami curiga kode itu tidak mengeluarkan kesalahan dengan benar di Xcode 4.0. Lihatlah transkrip dari build Anda sendiri, dan jika demikian, kemungkinan ini akan diperbaiki dalam rilis Xcode mendatang (kami tidak dapat berkomentar lebih lanjut hingga perbaikan telah dirilis).

Saya beralih dari garis bawah ke tanda hubung dan itu memperbaiki masalah.

Paul Slocum
sumber
2

Hal yang sama terjadi pada saya dengan penyebab yang berbeda.

Saya menghapus get-task-allow dari file Entitlements.plist saya, meninggalkan plist kosong. Pengaturan build masih memiliki file Entitlements.plist yang ditetapkan sebagai file Entitlements saya. Pilih untuk menjalankan menggunakan pengaturan build Ad-Hoc saya di perangkat iOS dengan iPhone saya terhubung, dan melihat perilaku yang dijelaskan dalam bug ini. Menambahkan get-task-allow back memperbaikinya.

Colin
sumber
2

Sepertinya ada banyak kemungkinan penyebab masalah ini. Punyaku ternyata seperti itu

Target saya disetel untuk menggunakan profil penyediaan yang tidak ada.

Saya mengatur proyek saya untuk menggunakan profil baru, dan saya menghapus yang lama. Tidak menyadari bahwa target memiliki pengaturan profil penyediaan sendiri, yang masih disetel ke profil lama (sekarang dihapus).

CharlieMezak
sumber
2

Hanya untuk menambahkan jawaban lain setelah mencoba SEMUA hal di atas tanpa hasil: Saya harus me-restart MacBook, tidak hanya menutup XCode, dan itu berhasil untuk saya. Itu berakhir dengan XCode yang menunjukkan beberapa kesalahan di Localizable.strings yang tidak ditampilkan sebelumnya.

Semoga membantu

sonxurxo
sumber
Saya mendapatkan sesuatu yang serupa, Xcode 5.0.2: ada kesalahan sintaks di salah satu string Localizable.strings saya yang tidak ditampilkan Xcode saat membuat.
Bart van Kuik
2

saya menghapus semua Spaces dalam skema proyek di xcschemes dan ini menyelesaikan masalah ini. Sialan Apple :( AppCode ROCKS!

Bimawa
sumber
1

lihat: http://developer.apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html

Kumpulan Karakter UTI Pengenal tipe seragam adalah string Unicode yang biasanya berisi karakter dalam kumpulan karakter ASCII. Namun, hanya sebagian dari karakter ASCII yang diizinkan. Anda dapat menggunakan alfabet Romawi dalam huruf besar dan kecil (A – Z, a – z), angka 0 sampai 9, titik ("."), Dan tanda hubung ("-"). Pembatasan ini didasarkan pada pembatasan nama DNS, yang ditetapkan dalam RFC 1035.

Pengenal tipe seragam juga dapat berisi salah satu karakter Unicode yang lebih besar dari U + 007F.

Penting: Karakter ilegal apa pun yang muncul dalam string UTI — misalnya, garis bawah ("_"), titik dua (":"), atau spasi ("") —akan menyebabkan string ditolak sebagai UTI yang tidak valid. Pada lapisan API, tidak ada kesalahan yang dibuat untuk UTI yang tidak valid.

sfjava.dll
sumber
1

Saya tidak punya masalah dengan nama paket sehingga solusi yang disarankan tidak berhasil untuk saya. Akhirnya saya telah mengatur Jangan kode tanda untuk membangun, lalu saya menutup proyek, kemudian menghapus penyediaan di penyelenggara, lalu mengunduh penyediaan baru dan menambahkannya ke penyelenggara, lalu mengaturnya untuk pembangunan. Berhasil.

Engeor
sumber
1

Ini bukan jawaban teknis, tetapi jawaban "kesalahan pengguna" yang mungkin tidak berlaku untuk situasi Anda. Itu terjadi pada saya dan pencarian saya membawa saya ke T&J ini tidak berhasil - sampai saya menyadari kesalahan saya. Saya memiliki filter yang disetel di Issue Navigator yang tidak cocok dengan apa pun yang dilaporkan sebagai masalah. Ketika saya menghapus filter, masalah ditampilkan.

Perhatikan gejalanya sama dengan yang Anda tanyakan dan saya tidak tahu kapan saya menyetel filter itu (harus diwarisi dari tampilan navigasi lain) karena saya tidak memerlukan pemfilteran apa pun pada daftar pendek.

mobibob
sumber
1

Saya baru saja mengalami masalah serupa. Tidak dapat menemukan kesalahan di mana pun. Menghapus semua profil penyediaan saya dan menambahkan yang baru.

Kemudian saya mencoba membuat aplikasi pengujian lain ke perangkat saya dan saya mendapat pesan kesalahan ini:

Kesalahan Tanda Kode: Identitas sertifikat 'Pengembang iPhone: xxxxxx' muncul lebih dari sekali di rantai kunci. Alat kode tanda hanya membutuhkan satu.

Jadi saya pergi ke Keychain, menemukan beberapa sertifikat kedaluwarsa dengan nama yang sama, dan menghapusnya, dan itu berhasil.

Cukup acak, tetapi mungkin jika Anda mencoba membangun aplikasi lain ke perangkat seperti yang saya lakukan, Anda mungkin cukup beruntung mendapatkan pesan kesalahan, seperti yang saya lakukan, untuk membantu mendiagnosis masalah.

mestevie.dll
sumber
1

Buka Penyelenggara di xcode. Dan di Tab Proyek, hapus proyek itu. Biarkan xcode membangun kembali data yang diturunkan lagi memperbaiki masalah saya.

AccBLue
sumber
1

Saya menghadapi masalah serupa di XCode4.5 dan ketika mengerjakan aplikasi saya XCode tiba-tiba macet.

Setelah mencari berjam-jam, saya menemukan salah satu file saya di aplikasi saya terhapus saat xcode rusak.

Saya memulihkan file dari Sampah dan masalah teratasi.

niks
sumber
1

Saya memprogram aplikasi Mac OS X tanpa kode kode . Saat saya mengaktifkan kotak pasir di bagian "Hak", penandatanganan kode otomatis aktif dan saya tidak dapat membuat versi baru.

Thomas Johannesmeyer
sumber