Synopsis
agvtool what-version | vers [-terse]
agvtool [-noscm | -usecvs | -usesvn] next-version | bump [-all]
agvtool [-noscm | -usecvs | -usesvn] new-version [-all] versionNumber
agvtool [-noscm | -usecvs | -usesvn] tag [-force | -F] [-noupdatecheck | -Q] [-baseurlfortag]
agvtool [-noscm | -usecvs | -usesvn] submit [-bytag | -notbytag] [-baseurlfortag] release ...
agvtool what-marketing-version | mvers [-terse | -terse1]
agvtool [-noscm | -usecvs | -usesvn] new-marketing-version | vers version
Description
agvtool, Apple Genel Sürüm Oluşturma (Apple Generic Versioning) sistemini kullanan Xcode projeleri için yaygın işlemlerin hızlandırılmasına yardımcı olur.
Projenizde bazı yapılandırma ayarlarını (build settings) kurarak sürüm oluşturma desteğini etkinleştirirsiniz.
Build Settings Apple genel sürüm oluşturma sistemi tarafından kullanılan ayarlar aşağıdaki gibidir:
VERSIONING_SYSTEM Sürüm oluşturmayı etkinleştirmek için bu ayarın proje düzeyinde “apple-generic” olarak ayarlanması gerekir.
CURRENT_PROJECT_VERSION Bu ayar projenin geçerli sürümünü tanımlar. Değer, 57 veya 365.8 gibi bir tamsayı veya ondalıklı sayı olmalıdır.
DYLIB_CURRENT_VERSION Bu ayar, proje tarafından oluşturulan herhangi bir çerçevenin (framework) geçerli sürümünü tanımlar. CURRENT_PROJECT_VERSION gibi, değer 57 veya 365.8 gibi bir tamsayı veya ondalıklı sayı olmalıdır. Varsayılan olarak “$(CURRENT_PROJECT_VERSION)” değerine ayarlanmıştır.
VERSION_INFO_PREFIX Üretilen sürüm bilgisi kaynak dosyasındaki sürüm bilgisi sembolünün adı için önek olarak kullanılır. Dışa aktarılan sembollerinize önek koyuyorsanız, muhtemelen bunu aynı öneke ayarlamak isteyeceksiniz.
VERSION_INFO_SUFFIX Üretilen sürüm bilgisi kaynak dosyasındaki sürüm bilgisi sembolünün adı için sonek olarak kullanılır. Bu nadiren kullanılır.
VERSION_INFO_BUILDER Bu ayar, derlemeyi gerçekleştiren kullanıcıya yapılan bir referansı tanımlar ve bu referans üretilen taslağa dahil edilir; varsayılan olarak USER çevre değişkeninin değeridir.
VERSION_INFO_EXPORT_DECL Bu ayar, üretilen taslaktaki sürüm bilgisi sembolü bildirimi için bir önek dizgisi tanımlar. Bu, örneğin sürüm sembolü bildirimine isteğe bağlı bir 'export' anahtar sözcüğü eklemek için kullanılabilir. Bu nadiren değiştirilmelidir.
VERSION_INFO_FILE Ürününüzün içinde üretilecek ve derlenecek olan kaynak dosyasının adını belirtmek için kullanılır. Varsayılan olarak “$(PRODUCT_NAME)_vers.c” olarak ayarlanmıştır.
Apple Genel Sürüm Oluşturma özelliğini etkinleştirmek için, sürümünün oluşturulmasını istediğiniz her proje için en azından VERSIONING_SYSTEM ve CURRENT_PROJECT_VERSION proje yapılandırma ayarlarını kurmalısınız. Sürümü belirlenmiş bir projenin hedefi için üretilen ve ürününüze bağlanan iki genel değişken olacaktır. Bunlardan biri double türündedir ve sadece CURRENT_PROJECT_VERSION değeridir. Diğeri ise ne olduğunu (what(1)) göstermekle uyumlu olacak şekilde biçimlendirilmiş bir sürüm dizgisidir. Bu değişkenler kodunuzda kullanılmak üzere mevcuttur.
Birden fazla hedefe (target) sahip projelerin, her hedef için aynı CURRENT_PROJECT_VERSION değerine sahip olması gerekir. Bunu başarmanın en kolay yolu, CURRENT_PROJECT_VERSION değerini proje düzeyinde ayarlamaktır.
Usage agvtool, çalışma dizini proje dizininize ( .xcodeproj proje dosyanızı içeren klasör) ayarlanmış olarak çağrılmalıdır.
agvtool, CVS kullanımı için şu varsayılan değerleri dikkate alır: CVSEnabled, CVSSubmitByTag ve CVSToolPath.
CVSEnabled değeri YES olarak ayarlanırsa agvtool, değiştirilen proje dosyalarını işleme (committing) ve etiketleme işlemleri gibi belirli CVS işlemlerini gerçekleştirecektir. Aşağıdaki komutu vererek bu varsayılan değeri ayarlayabilirsiniz:
defaults write agvtool CVSEnabled YES
Bu varsayılan değerin mantığı, açıkça -noscm (CVS ve Subversion kullanımını kapatır), -usecvs (CVS kullanımını açar ve Subversion kullanımını kapatır) veya -usesvn (CVS kullanımını kapatır ve Subversion kullanımını açar) sağlanarak geçersiz kılınabilir.
CVSSubmitByTag değeri YES olarak ayarlanırsa agvtool, projenizi etiketleme işlemiyle aynı sürümü kullanan CVS etiketiyle gönderecektir (submit). Bu varsayılan değerin mantığı, gönderme işlemine açıkça bir -bytag veya -notbytag bağımsız değişkeni sağlanarak geçersiz kılınabilir. Aşağıdaki komutu vererek bu varsayılan değeri ayarlayabilirsiniz:
defaults write agvtool CVSSubmitByTag YES
CVSToolPath değerini, kullanılacak cvs aracının konumunu gösterecek şekilde ayarlayın. Bu varsayılan değer ayarlanmazsa agvtool, varsa /usr/bin/ocvs aracını kullanacaktır. Aksi takdirde /usr/bin/cvs kullanılacaktır. Aşağıdaki komutu vererek bu varsayılan değeri ayarlayabilirsiniz:
defaults write agvtool CVSToolPath cvsYolu
agvtool, Subversion kullanımı için şu varsayılan değerleri dikkate alır: SVNEnabled, SVNSubmitByTag ve SVNToolPath.
SVNEnabled değeri YES olarak ayarlanırsa agvtool, değiştirilen proje dosyalarını işleme ve etiketleme işlemleri gibi belirli Subversion işlemlerini gerçekleştirecektir. Aşağıdaki komutu vererek bu varsayılan değeri ayarlayabilirsiniz:
defaults write agvtool SVNEnabled YES
Bu varsayılan değerin mantığı, açıkça -noscm (CVS ve Subversion kullanımını kapatır), -usecvs (CVS kullanımını açar ve Subversion kullanımını kapatır) veya -usesvn (CVS kullanımını kapatır ve Subversion kullanımını açar) sağlanarak geçersiz kılınabilir.
SVNSubmitByTag değeri YES olarak ayarlanırsa agvtool, projenizi etiketleme işlemiyle oluşturulanla aynı sürümü kullanan Subversion URL'si ile gönderecektir. Bu varsayılan değerin mantığı, gönderme işlemine açıkça bir -bytag veya -notbytag bağımsız değişkeni sağlanarak geçersiz kılınabilir. Aşağıdaki komutu vererek bu varsayılan değeri ayarlayabilirsiniz:
defaults write agvtool SVNSubmitByTag YES
SVNToolPath değerini, kullanılacak svn aracının konumunu gösterecek şekilde ayarlayın. Bu varsayılan değer ayarlanmazsa agvtool, varsa /usr/local/bin/svn aracını kullanacaktır. Aşağıdaki komutu vererek bu varsayılan değeri ayarlayabilirsiniz:
defaults write agvtool SVNToolPath svnYolu
Commands And Options what-version | vers [-terse] Projenin geçerli sürüm numarasını yazdırır.
-terse seçeneği, çıktıyı yalnızca sürüm numarasıyla sınırlamak için kullanılabilir.
next-version | bump [-all] Sürümü belirlenmiş tüm hedeflerin sürüm numaralarını bir sonraki en yüksek tam sayı değerine artırır. Örneğin, 54 değeri 55 olarak değişecek ve 234.6 değeri 235 olarak değişecektir.
CURRENT_PROJECT_VERSION ve DYLIB_CURRENT_VERSION güncellenecektir. -all seçeneği ayrıca CFBundleVersion Info.plist anahtarını da güncelleyecektir.
CVS desteği etkinse, değiştirilen proje dosyası işlenecektir (committed).
new-version [-all sürüm] Tüm hedeflerin sürüm numaralarını verilen sürüme ayarlar.
CURRENT_PROJECT_VERSION ve DYLIB_CURRENT_VERSION güncellenecektir. -all seçeneği ayrıca CFBundleVersion Info.plist anahtarını da güncelleyecektir.
CVS desteği etkinse, değiştirilen proje dosyası işlenecektir.
tag [-force | -F] [-noupdatecheck | -Q] [-baseurlfortag] Yeni bir projeadı-geçerlisürüm etiketi oluşturur; burada projeadı, Xcode proje dosyasının adıdır (uzantısı olmadan) ve geçerlisürüm, '.' karakterleri '~' karakterine dönüştürülmüş CURRENT_PROJECT_VERSION değeridir (çünkü CVS etiket adlarında noktalara izin vermez).
-force veya -F seçeneği, etiketleme işlemine bir -F ekleyecektir.
-noupdatecheck veya -Q seçeneği, işlenmemiş değişikliklerin olmadığından emin olmak için genellikle etiketleme öncesinde yapılan cvs update işlemini atlar.
-baseurlfortag seçeneği, Subversion kullanırken "etiketi" (tag) yerleştireceğiniz dizini gösteren bir URL sağlamak için kullanılabilir. Bu, SVNBaseTagURL varsayılan değerini geçersiz kılar. Subversion kullanılmıyorsa bu seçenek yoksayılır.
Not: Bu komut yalnızca CVS veya Subversion desteği etkinse çalışacaktır.
submit [-bytag | -notbytag] [-baseurlfortag] release ... Projenizi Build & Integration içindeki belirtilen sürümlere gönderir.
-bytag seçeneği, doğrudan proje kaynağından göndermek yerine gönderme işlemini etikete göre gerçekleştirir. -notbytag seçeneği ise proje kaynağından gönderir.
CVSSubmitByTag ayarlanmışsa varsayılan -bytag seçeneğidir. Aksi takdirde, varsayılan -notbytag seçeneğidir.
-baseurlfortag seçeneği, Subversion kullanırken "etiketleri" (tags) bulmak için dizini gösteren bir URL sağlamak için kullanılabilir. Bu, SVNBaseTagURL varsayılan değerini geçersiz kılar. Subversion kullanılmıyorsa bu seçenek yoksayılır.
Not: Bu komut yalnızca Apple çalışanları için geçerlidir.
what-marketing-version | mvers [-terse | -terse1] Projenin geçerli pazarlama (marketing) sürümünü yazdırır. Yerel hedefler için, bulunan her Info.plist dosyası için bir pazarlama sürümü listelenir. Jambase hedefleri için ortak bir değer bulunursa pazarlama sürümü gösterilir.
Pazarlama sürümü, CFBundleShortVersionString Info.plist anahtarıdır. Bu genellikle ürün pazarlama ekibi tarafından belirlenen tamamen farklı bir sürümdür.
-terse seçeneği, Jambase hedefleri için sürüm numaraları görüntülenirken çıktıyı yalnızca sürüm numarasıyla sınırlayacaktır.
-terse1 seçeneği, çıktıyı bulunan ilk sürüm numarasıyla sınırlayacak ve yalnızca sürüm numarasını görüntüleyecektir.
new-marketing-version sürüm Sürümü belirlenmiş tüm hedeflerin pazarlama sürüm numaralarını verilen sürüm numarasına ayarlar.
Pazarlama sürümü, CFBundleShortVersionString Info.plist anahtarıdır. Bu genellikle ürün pazarlama ekibi tarafından belirlenen tamamen farklı bir sürümdür.
CVS desteği etkinse, değiştirilen proje dosyası işlenecektir.
Farklı pazarlama sürümlerini takip eden hedeflere sahip bir projede bu komutu kullanmayın.
OS X April 11, 2012 OS X