Variabel Xcode

103

Di Xcode, saya tahu bahwa Anda bisa mendapatkan variabel seperti PROJECT_DIRuntuk digunakan dalam beberapa situasi, seperti fase pembuatan skrip run. Saya ingin tahu apakah mungkin untuk mendapatkan tipe build (mis., Rilis atau Debug ). Ada ide?

Allyn
sumber
5
kemungkinan duplikat dari daftar Kanonis Variabel Lingkungan Xcode
mmmmmm

Jawaban:

147

Sumber terbaik mungkin adalah dokumentasi resmi Apple . Variabel spesifik yang Anda cari adalah KONFIGURASI.

smorgan
sumber
8
Saya suka cara Xcode menolak menampilkan halaman itu jika Anda mengetikkan "build settings" di kotak telusur - Anda mendapatkan jenis setelan build LAINNYA, tanpa referensi ke variabel ini. Ditto jika Anda meletakkan "variabel build". Seseorang harus mengajari Apple cara menulis algoritme pencarian :)
Adam
24
Jika Anda mencoba membuat "run script build phase", Anda dapat memulai skrip ini dengan mengetik "env" (tanpa tanda kutip) sebagai baris pertama dari skrip bash shell Anda (atau perintah yang setara untuk shell you ' menggunakan kembali) dan membangun proyek Anda. Ini akan menampilkan semua variabel lingkungan yang tersedia untuk Anda. Anda dapat menggunakan ini bersama dengan dokumentasi untuk memastikan Anda mendapatkan data yang Anda harapkan.
Ryan H.
3
Saya rasa saya telah menyia-nyiakan setengah jam mencoba menemukan dokumen yang mencantumkan / menjelaskan variabel lingkungan yang tersedia untuk skrip. Saya mengirimkan permintaan "peningkatan" yang menanyakan mengapa mereka tidak bisa meletakkan salah satu tombol tanda tanya bulat di sana dengan link ke halaman bantuan yang tepat. HZC saran yang bagus, meskipun saya berharap itu tidak perlu.
Brian
3
Juga menyedihkan bahwa $ PROJECT_DIR dasar tidak disebutkan di mana pun dalam dokumen resmi itu. Saya kira itu hanya alias (lebih baik bernama) untuk $ SRCROOT.
Ricardo Sanchez-Saez
4
Apple suka mengatur ulang semua dokumentasi mereka secara berkala dan memutus semua tautan yang ada. Seseorang harus memburu tautan baru.
smorgan
20

Berikut daftar variabel lingkungan . Saya pikir Anda mungkin ingin CURRENT_VARIANT. Lihat juga BUILD_VARIANTS.

Naaff
sumber
Oke, jadi saat saya menggunakan char * cv = getenv ("CURRENT_VARIANT"); Saya mendapatkan NULL. Apa yang saya lewatkan?
Brooks
1
Jawaban lainnya benar. Ini tidak. KONFIGURASI adalah apa yang mereka inginkan.
Baxissimo
Dan itu bahkan bukan daftar lengkap ... setengah kebenaran
Kejahatan