2014-07-02 6 views
5

Ich versuche, bauen ein Verweis auf meine Xcode Projekte CFBundleVersionString oder CFBundleVersion in meinem Jenkins zu bekommen.Referenz Xcode Versionsnummer von Jenkins

Mein Ziel ist es, die Build-Nummern in dieser Art von Mode $ einstellen {CFBundleVersionString}. $ {BUILD_NUMBER}. Auf diese Weise wird die Version vom Projekt diktiert und die Build-Nummer wird hinzugefügt, wenn das Projekt erstellt wird.

Ist das überhaupt möglich? Ich weiß, dass Sie $ {build_number} referenzieren können. Außerdem weiß ich, dass ich einen Parameter in den Build aufnehmen könnte, der diktiert wird, aber ich würde es vorziehen, dass alles über das Xcode-Projekt verwaltet wird, da unsere Builds durch github-Commits ausgelöst werden.

Antwort

3

Sie können mit CFBundleVersionString von Ihrem Info.plist Datei lesen:

export VERSION=`defaults read ${INFO_PLIST} CFBundleVersionString` 

Ausgang dieses auf eine Eigenschaft Datei:

echo VERSION=$VERSION > version.properties 

und diese Datei verwenden, um Umgebungsvariablen für jenkins bauen zu injizieren. Sie können dann diese Variable mit Build Name Setter plugin oder einfach uns in Build-Mails verwenden.

Ebenso können Sie die Version in der plist aktualisieren mit:

defaults write ${INFO_PLIST} CFBundleVersionString ${VERSION}.${BUILD_NUMBER} 
+0

Wie würde ich die Eigenschaften aus der Datei in den Jenkins-Build-Prozess injizieren? Ich gehe davon aus, dass die Export-Befehle nur aus dem Shell-Befehl ausgeführt werden? –

+0

[EvnInject Plugin] (https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin) – antweiss

+0

Wo würde ich die beiden Zeilen oben fügen Sie die Ausgabe, die Datei zu bekommen? Zu welchem ​​Zeitpunkt in Jenkins oder verwende ich diese in Xcode? –

2

Wenn Sie die Xcode Plugin verwenden, haben Sie CFBundleVersion als $ VERSION und CFBundleShortVersionString wie $ SHORT_VERSION.

Ich fand SHORT_VERSION $ durch die XCode Plugin source code Suche.

+0

Ich sehe, wo Sie im Xcode Plugin-Quellcode verweisen, aber es funktioniert nicht. –

+0

@JamesParker - nur überprüfen, aber verweisen Sie diese Variablen in einem Schritt, der folgt, nachdem das Xcode-Plugin die Variable festgelegt hat. Außerdem habe ich die Variable $ SHORT_VERSION in der Benennung meiner archivierten .ipa-Datei verwendet, die im Build-Schritt des Xcode-Plugins auftritt. Vielleicht sind diese Variablen nur im Build-Schritt des Xcode-Plugins zugänglich? und nicht als Umgebungsvariablen für alle Builds von Jenkins? Wenn das so ist, werde ich die Antwort aktualisieren und würde darum bitten, entsprechend abzustimmen. Prost – YoCoh

+0

Ich verweise sie in der Versionierung Option, die Teil des XCode-Plugins ist. –

0

Ich habe etwas schon überall gesucht, die von Jenkins arbeitet.

shortversionnumber = /usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}

Aber wenn Ihr Build noch nicht geschehen ist, werden Sie manuell die Position der plist-Datei angeben.

Das ist alles!