Xcode 4 - membangun direktori keluaran

217

Saya memiliki masalah dengan pengaturan / penempatan file output saya di Xcode4 (beta 5). Mereka ditempatkan di suatu tempat di ~/Library/Developer/ugly_path/.... Saya bahkan tidak bisa memilih "show in finder" pada produk saya. Ini sama untuk proyek C sederhana, alat Foundation dan bahkan bundel Kakao. Debugging berfungsi dengan baik.

Bisakah Anda tunjukkan saya di mana dan bagaimana mengatur / membangun direktori keluaran? (Saya tahu ini terdengar bodoh, saya telah mengkode dalam Xcode3 selama berbulan-bulan, tapi saya tidak bisa mengetahuinya dalam Xcode4 beta).

Terima kasih banyak.

kubbing
sumber

Jawaban:

342

Dari menu Xcode di atas, klik preferensi, pilih tab lokasi, lihat opsi membangun lokasi.

Anda memiliki 2 opsi:

  1. Tempatkan produk build di lokasi data turunan (disarankan)
  2. Tempatkan produk build di lokasi yang ditentukan oleh target

Pembaruan: Pada xcode 4.6.2 Anda harus mengklik tombol lanjutan di sisi kanan di bawah bidang teks data yang diturunkan. Bangun Lokasi pilih warisan.

Yang Mulia
sumber
27
Jawaban ini menjelaskan mengapa perubahan ini dilakukan: stackoverflow.com/questions/5331270/…
toofah
3
Bangga Anggota, apa maksud Anda ini tidak ada dalam Xcode 5? Mereka berada di Preferensi -> Lokasi -> Data Turunan -> Lanjutan.
Richard Venable
Ok, jadi build saya masuk ke .../XCode/DerivedData/folder, cukup sederhana. Kecuali bahwa tampaknya subfolder AppName-asdflkjqwergoobledygook. Karena saya sedang membangun dari sebuah skrip, saya ingin benar-benar menemukan build (jadi saya dapat mengemasnya dan mengirim melalui TestFlight :) Bagaimana saya menentukan mana dari banyak MyAppName-xxxx-s yang benar? Terima kasih!
Olie
@ Olie Anda juga dapat mengubah lokasi data turunan ke jalur yang Anda pilih sendiri
Gerard
@ Gerard: Saya bisa, tapi bukan itu yang ingin saya lakukan. Saya memeriksa sumber dari repo, lalu membangun melalui command line, dan saya ingin tahu kemana build itu pergi. Akan tidak pantas untuk skrip build saya untuk memodifikasi proyek dengan cara apa pun (katakanlah, dengan mengubah pengaturan proyek.)
Olie
140

Jika Anda membangun dari baris perintah, Anda dapat mengatur direktori output dengan cara berikut:

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'
Igor
sumber
Untuk membuat skrip sh saya berfungsi, saya perlu menghapus tanda kutip tunggal dan menulis hanya CONFIGURATION_BUILD_DIR = / Pengguna / ...
Stanislav Pankevich
@occulus, Anda memang benar karena ini akan gagal membangun target pengujian setelah membangun proyek, saya pikir jika Anda hanya membangunnya MUNGKIN boleh saja, tetapi lebih baik gunakan jalur absolut!
Mostafa Berg
Jika ada orang lain yang mencoba untuk menyelesaikan masalah yang sama, saya meyakinkan XCode 6.x untuk menempatkan biner yang terhubung persis di tempat yang diperlukan dengan menggunakan kombinasi ini:/Users/moi/src/mozbuilds/xul3604/$(CONFIGURATION)/dist/bin
J Evans
29

Dalam Xcode 5: Xcode menu> Preferences ... item> Lokasi tab> Lokasi sub-tab> Lanjutan ... tombol> Kustom pilihan.

Kemudian pilih, misalnya, Relatif terhadap Workspace .

Grumdrig
sumber
8
Semoga Anda hidup sampai umur seratus tahun, kuat, dan sehat, Tuan. Terima kasih !
WhozCraig
13

Jika Anda memiliki pengaturan Lokasi Build Xcode 4 diatur ke "Tempatkan produk build di lokasi data turunan (disarankan), seharusnya berada di ~ / Library / Developer / Xcode / DerivedData. Direktori ini akan memiliki proyek Anda di sana sebagai direktori, direktori nama proyek akan ditambahkan dengan banyak huruf yang dihasilkan jadi perhatikan dengan teliti.

bxiong
sumber
10

Simpan data yang diperoleh tetapi gunakan DSTROOT untuk menentukan tujuan.

Gunakan DEPLOYMENT_LOCATION untuk memaksa penyebaran.

Gunakan DWARF_DSYM_FOLDER_PATH yang tidak berdokumen untuk menyalin dSYM juga.

Ini memungkinkan Anda untuk menggunakan lokasi data turunan dari xcodebuild dan tidak perlu melakukan hal-hal aneh untuk menemukan aplikasi.

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build
Gabriel
sumber
8

Anda selalu dapat menemukan direktori build dengan melihat di build log viewer, dan menyalin path di sana ke jendela terminal.

Saya menggunakan ini untuk menganalisis bundel .app iOS saya sebelum diinstal untuk memastikan tidak ada file yang tersesat.

Radven
sumber
Apple begitu ramah. Tidak!
zaph
1
Dan di mana saya menemukan log build ini ?? Mencari "build log" di Xcode membantu mengembalikan 0 hasil.
devios1
1
Nm, temukan "Log Navigator", yang terlihat seperti gelembung ucapan.
devios1
4

Bagi siapa saja yang ingin menemukan direktori build dari skrip tetapi tidak ingin mengubahnya, jalankan yang berikut ini untuk mendapatkan daftar semua pengaturan build yang mengarah ke folder di DerivedData:

xcodebuild -showBuildSettings | grep DerivedData

Jika Anda menjalankan target dan skema khusus, harap taruh di sana juga:

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

Lihat output untuk menemukan output pengaturan yang Anda inginkan dan kemudian:

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

Bagian terakhir memotong string pada tanda sama dan kemudian memotong spasi di awal.

Berend Klein Haneveld
sumber
2

Jika Anda menggunakan Xcode4 Workspaces baru, Anda dapat mengubah Lokasi Data Turunkan di bawah File -> pengaturan Workspace ...

DaGaMs
sumber
1

Anda dapat mengkonfigurasi direktori keluaran menggunakan CONFIGURATION_BUILD_DIRvariabel lingkungan.

Sumber: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/0-Introduction/introduction.html#//apple_ref/doc/uid/TP40003931-CH1-SW1

Perbatasan Heath
sumber
tidak ada yang tidak terkait dengan perilaku lokasi lokasi / warisan (per target) yang
diturunkan
Ya itu. Cara itu berhasil. Dari dokumentasi: "Path direktori. Mengidentifikasi direktori di mana semua file yang terkait dengan pembangunan untuk konfigurasi build aktif ditempatkan."
Heath Borders
nggak. tidak dengan xcode4 itu tergantung pada Xcode > Preferences > Locations > Derived datapengaturan seperti yang dijelaskan dalam jawaban yang paling banyak dipilih. + dokumen yang Anda maksud terakhir diperbarui pada 2010
Gregory Pakosz
Saya sebenarnya menggunakan pengaturan ini untuk mengkonfigurasi direktori build dengan xcode4 dari xcodebuild. Cobalah.
Heath Borders
1
Yah saya sudah mencoba dengan Xcode 4.3.1 (dari IDE) dan tanpa mengubah pengaturan global, produk dibangun di suatu tempat ~/Library/Developer/Xcode/DerivedData/dan tidak di dalam direktori yang saya tentukan CONFIGURATION_BUILD_DIR. Jika saya ingin CONFIGURATION_BUILD_DIRmerasa terhormat, saya harus mengganti preferensi data turunan Xcode ke "Legacy"
Gregory Pakosz
0

Hal lain yang perlu diperiksa sebelum Anda mulai bermain dengan preferensi Xcode adalah:

Pilih target Anda dan pergi ke Pengaturan Bangun> Pengemasan> Ekstensi Pembungkus

Nilai harus ada: aplikasi

Jika tidak klik dua kali dan ketik "aplikasi" tanpa qoutes.

hasan
sumber
-1

Ini sangat menjengkelkan. Buka proyek Anda, klik pada Target, tab Buka Bangun Fase. Periksa Sumber Daya Salin Bundel Anda untuk setiap item merah.

marbleblue
sumber