Bir "Komut Dosyası Çalıştır" oluşturma aşamasını yayın yapılandırmamla nasıl sınırlayabilirim?


138

Hedefimin derleme aşamasının sonunda çalıştırmak istediğim bir kabuk betiğim var. Ancak, bu komut dosyasının yalnızca yayın yapılandırmasıyla derlediğimde çalışmasını istiyorum . Bu nasıl yapılabilir? Teşekkürler!

Yanıtlar:


295
if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

Komut dosyası her konfigürasyonun sonunda çalışacaktır, ancak konfigürasyon Release olmadığı sürece bu durumda hiçbir şey yapmayacaktır (yaptığı her şeyin test bloğu içinde olduğu varsayılırsa).


1
Çok kelimeli konfigürasyon adlarıyla çalışmadığını yeni keşfettim. "Sürüm" ile çalışır ancak "Dahili Beta" ile çalışmaz.
Hedin

4
@Hedin - bu sadece bash; Çok kelimeli değişkeniniz varsa, değişkeni tırnak içine almanız gerekir. Böylece $ {YAPILANDIRMA}, "$ {YAPILANDIRMA}" olur. Cevabı bunu içerecek şekilde güncelleyeceğim.
Jason Coco

15
'Hata Ayıklama', 'Yayınlama' (Enstrümanlar için), 'Ad Hoc' ve 'App Store' yapılandırmalarım var (farklı kod imzalamalı), bu yüzden değiştirdim if [ "${CONFIGURATION}" != "Debug" ]; then....
Nicolas Miari

1
İf koşulu için .pch dosyasında depolanan bir #define TRUE / FALSE kullanmak istiyorum .. komut dosyası kodunda buna nasıl başvurabilirim?
newton_guima

2
Aynı şey ön işlemci bayraklarıyla da yapılabilir mi?
Justin Vallely

15

Bunu yapmanın en kolay yolu, "Komut dosyasını yalnızca yüklerken çalıştır" onay kutusunu işaretlemektir.



4
"Gerçek bir cihazda hata ayıklama (Xcode'dan derleme ve çalıştırma)" yükleme "olarak sayılmaz. Çalıştır komut dosyası yalnızca arşivleme sırasında çalışır (Xcode 9 ile test edilmiştir)." stackoverflow.com/questions/5913199/…
darkheartfelt

2
Uygulamanızı Releasearşivlemeden yapılandırmada oluşturmak istiyorsanız işe yaramaz . Soru açıkça Releasekonfigürasyon hakkındaydı .
Legonaftik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.