Apple alanları yeniden düzenledi / yeniden tasarladı.
Bundan sonra, Uygulama Hedefiniz için Bilgi sekmesine bakarsanız, Sürümünüz olarak "Paket sürümleri dizesi kısa" (ör. 3.4.0) ve Derlemeniz olarak "Paket sürümü" (ör. 500 veya 1A500) kullanmalısınız. ). İkisini de görmüyorsanız, ekleyebilirsiniz. Bunlar Özet sekmesinde uygun Sürüm ve Derleme metin kutularıyla eşlenir; aynı değerlerdir.
Bilgi sekmesini görüntülerken, sağ tıklayıp Ham Anahtarları / Değerleri Göster'i seçerseniz , gerçek adların CFBundleShortVersionString
(Sürüm) ve CFBundleVersion
(Oluştur) olduğunu görürsünüz .
Sürüm genellikle Xcode 3 ile nasıl göründüğünüzde kullanılır. Sürüm / Derleme farkı hakkında hangi düzeyde sorduğunuzdan emin değilim, bu yüzden felsefi olarak cevaplayacağım.
Her türlü şema vardır, ancak popüler olan şudur:
{MajorVersion}. {MinorVersion}. {Revizyon}
- Ana sürüm - Büyük değişiklikler, yeniden tasarımlar ve işlevsellik değişiklikleri
- Küçük sürüm - Küçük iyileştirmeler, işlevselliğe eklemeler
- Düzeltme - Hata düzeltmeleri için yama numarası
Daha sonra Yapı, bir sürüm veya tüm ürün ömrü boyunca toplam yapı sayısını belirtmek için ayrı ayrı kullanılır.
Birçok geliştirici Yapı numarasını 0 ile başlatır ve her oluşturduklarında sayıyı birer birer artırır ve sonsuza dek artar. Projelerimde, her inşa ettiğimde otomatik olarak derleme sayısını artıran bir senaryom var. Aşağıdaki talimatlara bakınız.
- Sürüm 1.0.0 yapı 542 olabilir. Bir 1.0.0 sürümüne ulaşmak için 542 yapı aldı.
- 1.0.1 sürümü 578 inşa edilmiş olabilir.
- 1.1.0 sürümü 694 derlemesi olabilir.
- Sürüm 2.0.0, 949 derlemesi olabilir.
Apple dahil olmak üzere diğer geliştiricilerin, bir ana sürüm + küçük sürüm + sürüm için derleme sayısından oluşan bir Yapı numarası vardır. Bunlar, pazarlama için kullanılan değerlerin aksine, gerçek yazılım sürüm numaralarıdır.
Eğer giderseniz Xcode menüsü> Xcode Hakkında , sen Sürüm ve Yapı numaralarını göreceksiniz. Eğer vurursanız Fazla Bilgi ... düğmesi farklı sürümleri bir demet göreceksiniz. Yana Fazla Bilgi ... düğmesi Xcode 5'de çıkarıldı, bu bilgiler de edinilebilir Yazılım> Geliştirici bölümünde Sistem Bilgisi , app açarak mevcut Elma > menüsü Bu Mac Hakkında > ... Sistem Raporu .
Örneğin, Xcode 4.2 (4C139). Pazarlama sürümü 4.2, Derleme ana sürümü 4, Derleme küçük sürümü C ve Derleme numarası 139'dur. Bir sonraki sürümde (muhtemelen 4.3) Derleme sürümü 4D olacak ve Derleme numarası 0'dan başlayıp oradan artacaktır.
İPhone Simulator Sürüm / Derleme numaraları iPhone'lar, Mac'ler vb. İle aynıdır.
- 3.2: (7W367a)
- 4.0: (8A400)
- 4.1: (8B117)
- 4.2: (8C134)
- 4,3: (8H7)
Güncelleme : İsteğe bağlı olarak, uygulamanızı Xcode'da derleme numarasını okumak, artırmak ve uygulamanın {App}-Info.plist
dosyasına geri yazmak için her oluşturduğunuzda çalışan bir komut dosyası oluşturma adımları . Sürüm / yapı numaralarınızı Settings.bundle/Root*.plist
dosyalarınıza yazmak istiyorsanız isteğe bağlı ek adımlar vardır .
Bu how-to makalesinden uzatılır burada .
Xcode 4.2 - 5.0'da:
- Xcode projenizi yükleyin.
- Soldaki bölmede, hiyerarşinin en üstündeki projenizi tıklayın. Bu, proje ayarları düzenleyicisini yükleyecektir.
- Orta pencere bölmesinin sol tarafında, HEDEFLER başlığı altındaki uygulamanızı tıklayın . Bu kurulumu her proje hedefi için yapılandırmanız gerekir.
- Derleme Aşamaları sekmesini seçin .
- Xcode 4'te, sağ altta Yapı Aşaması Ekle düğmesini tıklayın ve Çalışma Komut Dosyası Ekle'yi seçin .
- Xcode 5'te Editör menüsü> Derleme Safhası Ekle > Komut Dosyası Oluşturma Safhası Ekle'yi seçin .
- Yeni Komut Dosyası Çalıştır aşamasını, Paket Kaynaklarını Kopyala aşamasından hemen önce (app-info.plist dosyası uygulamanızla birlikte ne zaman paketlenecekse) taşımak için sürükleyip bırakın .
- Yeni Komut Dosyası Çalıştır aşamasında Kabuk : ayarını yapın
/bin/bash
.
Tamsayı derleme numaraları için aşağıdakileri kopyalayıp kod alanına yapıştırın:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
@Bdebeez'in işaret ettiği gibi, Apple Genel Versiyonlama Aracı ( agvtool
) da mevcuttur. Bunun yerine kullanmayı tercih ederseniz, önce değiştirilecek birkaç şey vardır:
- Oluşturma Ayarları sekmesini seçin .
- Altında Sürüm bölümünde, set Güncel Project Version Eğer kullanım istediğiniz başlangıç yapı numarası, örneğin üzere 1 .
- Derleme Aşamaları sekmesine geri dönün, derleme numaranızı içeren kaynak dosyayı hem oluşturmaya hem de güncellemeye çalışırken bir yarış koşulundan kaçınmak için Paket Kaynaklarını Kopyala aşamasından sonra Komut Dosyası Çalıştır aşamasını sürükleyip bırakın .
agvtool
Yöntemle birlikte, düzenli olarak başarısız / iptal edilmiş yapıların hatasız olabileceğini unutmayın . Bu nedenle, agvtool
bu komut dosyası ile kullanmanızı önermiyorum .
Bununla birlikte, Komut Dosyasını Çalıştır aşamasında aşağıdaki komut dosyasını kullanabilirsiniz:
"${DEVELOPER_BIN_DIR}/agvtool" next-version -all
next-version
Argüman yapı numarası (artırır bump
ayrıca aynı şey için bir diğer adıdır) ve -all
güncellemeler Info.plist
Yeni inşa numarası ile.
Sürüm ve Derleme'yi görüntülediğiniz bir Ayarlar paketiniz varsa, sürümü güncellemek ve derlemek için aşağıdakileri komut dosyasının sonuna ekleyebilirsiniz. Not: PreferenceSpecifiers
Değerleri ayarlarınıza uyacak şekilde değiştirin . PreferenceSpecifiers:2
anlamına gelir PreferenceSpecifiers
plist dosyanızdaki dizinin altındaki dizin 2'deki öğeye bakın , bu nedenle 0 tabanlı bir dizin için dizideki 3. tercih ayarıdır.
productVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
Doğrudan agvtool
okumak yerine kullanıyorsanız Info.plist
betiğinize aşağıdakileri ekleyebilirsiniz:
buildNumber=$("${DEVELOPER_BIN_DIR}/agvtool" what-version -terse)
productVersion=$("${DEVELOPER_BIN_DIR}/agvtool" what-marketing-version -terse1)
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
İPad ve iPhone için evrensel bir uygulamanız varsa, iPhone dosyasının ayarlarını da yapabilirsiniz:
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root~iphone.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root~iphone.plist