2010-12-29 16 views
6

Xcode'taki gerçek yapmadan önce bazı ön işlem yapan bir komut dosyası var. Xcode'un bir "Build and Archive" yapması gerektiğini anlamanın bir yolu var mı? Arşiv adımının bir parçası olarak "svn commit" yapmak istiyorum. Bir yapı sırasında var olan ortam değişkenlerini döktüm, ancak normal bir yapı olarak bir arşiv için aynı görünüyorlar.Xcode bir komut dosyasında "yapı ve arşiv" yapıyor nasıl söylenir?

Arşiv oluşturup oluşturmadığını kontrol etmek için kontrol edilebilecek başka bir şey var mı?

Arşiv oluşturulmadan önce otomatik olarak bir taahhütte bulunmanın başka bir yolu var mı? Bu, svn ağacını IMO'da gezinmek için daha zor hale getirdiğinden, her yapı için bir taahhüt yapmak istemiyorum.

Xcode 3.2.5 kullanıyorum.

Teşekkürler! Norm

cevap

0

Xcode GUI'den bağımsız komut dosyasıyla günlük yapı sistemi almanızı öneririm. Bu sadece svn commit tetikleyici Build ve Archive ve dağıtım yapacak. Bunun gömülü provizyon profile sahip bir .ipa dosyası oluşturmak etmediğini okumak beri

Xcode "Build and Archive" from command line

+0

Sanırım almam gereken rota bu olabilir. Başka bir seçenek ise bir arşiv yapmak istediğimde farklı bir yapılandırma kullanmaktır. Yine de doğru yapılandırmayı seçmeme güveniyor, ancak Xcode yine de işi yapabilir. – TejasSoft

2

Ben komut satırı yapı ve arşiv kaçmak istedim: Burada anlatılan gibi Sen xcrun komutuyla Oluştur ve Arşiv çalıştırabilirsiniz içinde. Bunu kullanmak, test kullanıcılarına göndermeyi çok daha kolay hale getirir.

Ben 4 yapılandırmaları vardır: Ne yaptıysam

aşağıdaki oldu. Hata Ayıklama, Sürüm, Reklam Yayını ve App Store Sürüm.

Bir işlem yapmadan oluşturmak için Debug ve Release kullanıyorum. Beta testlerine göndermek istediğimde Ad Hoc'u ve son test için App Store'u ve App Store'u göndermek için kullanıyorum.

Önceden oluşturulmuş komut dosyasına eklediğim kod İşte.

# Get the version number from the .plist file 
VER_NUM=`cat "${SRCROOT}/${INFOPLIST_FILE}" | grep -A 1 CFBundleVersion | grep string | sed 's/]*>//g' | sed 's/^[ ]*//'` 

# Check build type to see if svn commit should be done 
if [ "${BUILD_STYLE}" == "App Store Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${BUILD_STYLE}" == "Ad Hoc Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${SVN_COMMIT}" == "yes" ] 
then 
echo "Commiting the project to SVN" 
BUILD_TIME=`date` 
svn commit -m "\"Version ${VER_NUM} for ${BUILD_STYLE} ${BUILD_TIME}\"" 
fi 

Bu, benim sorunuma hızlı ve kirli cevabımdı. Daha zarif bir çözüm olmalı, ancak bu şimdilik işe yarayacak. Apple, onu çözecek bir arşiv yapısı olduğunu göstermek için bir ortam değişkeni eklerse.

İlgili konular