Anda pasti berada di jalur yang benar sehubungan dengan file .xcscheme - Saya mengalami masalah ini muncul saat menyiapkan proyek saya sendiri!
Untuk anak cucu, atau setidaknya siapa pun yang sampai di sini dari pencarian, berikut adalah dua versi dari hal-hal - versi "Saya sibuk, jadi tolong fakta-fakta saja" dan diskusi dan alasan yang lebih terlibat. Kedua versi ini menganggap Anda mencoba membangun dari file Workspace; jika Anda tidak maka saya mohon maaf karena ini sebagian besar berlaku untuk proyek berbasis ruang kerja.
Versi 'Fix-it' yang kental
Akar penyebabnya adalah bahwa perilaku default Skema adalah menjaga skema 'pribadi' hingga secara khusus ditandai sebagai dibagikan. Dalam kasus build yang dimulai dengan command line, Xcode UI tidak pernah berjalan dan alat xcoderun tidak memiliki cache Skema sendiri untuk digunakan. Tujuannya adalah untuk menghasilkan, membagikan, dan menjalankan skema yang Anda inginkan untuk dijalankan oleh Bamboo:
- Pada salinan kerja kode yang bersih, buka ruang kerja Proyek Anda.
- Pilih Skema> Kelola Skema ... dari Menu Produk.
- Daftar Skema yang ditentukan untuk proyek muncul.
- Temukan Skema yang coba dijalankan Bambu
- Pastikan kotak 'Shared' dicentang untuk skema itu dan pengaturan 'Container' disetel ke Workspace dan bukan file proyek itu sendiri.
- Klik 'OK' untuk menutup lembar Kelola Skema.
- File .xcscheme baru telah dibuat dalam proyek Anda di WorkspaceName.xcworkspace / xcshareddata / xcschemes.
- Komit file ini ke repositori Anda dan jalankan versi Bamboo.
Diskusi dan Dasar Pemikiran yang Lebih Dalam
Xcode 4 memperkenalkan Ruang Kerja dan Skema sebagai cara untuk membantu mencoba dan menjinakkan beberapa kekacauan yang melekat dalam menangani mekanisme proyek Xcode terkait kabel, membangun target, dan membangun konfigurasi bersama-sama. Ruang kerja itu sendiri memiliki kumpulan data konfigurasinya sendiri yang mendeskripsikan setiap 'kotak' kecil dari data yang dikandungnya dan bertindak sebagai kerangka untuk melampirkan file .xcodeproj dan sekumpulan data konfigurasi bersama yang dicerminkan ke setiap mesin pengembang atau sistem CI . Ini adalah kekuatan dan kelemahan Workspaces - ada 1) banyak cara di mana seseorang dapat mengkonfigurasi 100% dengan benar, tetapi dimasukkan ke dalam penampung yang salah atau 2) dimasukkan ke dalam penampung yang benar, tetapi dikonfigurasi dengan tidak tepat sehingga merender data tidak dapat diakses oleh bagian lain dari sistem!
Perilaku default skema Xcode 4 adalah secara otomatis menghasilkan skema baru saat proyek ditambahkan ke file Workspace. Anda yang telah menambahkan beberapa file .xcodeproj mungkin telah memperhatikan bahwa daftar skema Anda dengan cepat menjadi sulit diatur terutama saat file proyek ditambahkan, kemudian dihapus, dan kemudian dibaca kembali ke ruang kerja yang sama. Semua skema, dibuat secara otomatis atau dibuat secara manual, defaultnya adalah skema 'pribadi' yang hanya terlihat oleh pengguna saat ini bahkan ketika file .xcuserdata dijalankan dengan data dan konfigurasi proyek. Ini adalah akar penyebab dari kesalahan build samar Laporan Bamboo dari xcodebuild - Karena Bamboo mengoperasikan build melalui baris perintah dan bukan UI Xcode, ini tidak memiliki kesempatan untuk Skema untuk dibuat secara otomatis dan hanya bergantung pada yang ditentukan di ruang kerja itu sendiri.
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyApplication -configuration Debug
xcodebuild pergi mencari file <'scheme' Parameter Value> .xcscheme yang ada di <'workspace' Parameter Value> / xcshareddata / xcschemes.
Jelas ada banyak cara di mana seseorang dapat mengonfigurasi Bamboo dan ruang kerja, jadi perlu diingat bahwa konfigurasi unik Anda mungkin tidak memetakan 100% ke apa yang disajikan di sini. Poin utama:
- Tugas otomatis tertentu yang ditangani secara ajaib oleh Xcode UI tidak tersedia melalui CLI Xcodebuild.
- Anda dapat melampirkan skema dan membangun data konfigurasi ke banyak tempat di 'hierarki penampung' - Pastikan data Anda berakhir di penampung yang tepat (Ruang Kerja, Proyek, dan / atau Bangun Target)
- Pertimbangkan di bagian mana dalam hierarki container alat xcodebuild mungkin mencari data konfigurasi; indikator yang bagus tentang di mana ia akan mulai mencari didasarkan pada penggunaan argumen '-workspace' atau '-project'.
Kotak 'Bersama' sudah dicentang ... sekarang apa?
Saya mengalami masalah yang sama di instance Bamboo saya sendiri; ternyata skema yang dilakukan di repositori saya sudah usang dan versi terbaru dari alat baris perintah tidak menanganinya dengan baik. Karena ini ada sebelumnya, saya melihat melalui pengaturan untuk memastikan tidak ada sesuatu yang sangat khusus tentang skema, menghapus dan membuat ulang skema memastikan bahwa saya menandainya sebagai 'Dibagikan', dan memasukkan kembali file .xcscheme baru ke gudang.
Jika semuanya terlihat baik dan membangunnya kembali tidak menyelesaikan masalah, periksa kembali pengaturan kontainer - sangat mudah untuk memasang skema itu ke kontainer yang salah dalam hierarki!