2017-03-24 3 views
0

Wir verwenden ein Skript, das einen Zeitstempel erstellt und die Buildnummer der App ersetzt.Xcode: Inkrement-Build-Nummer

#!/bin/bash 
echo "Update Build Number to Timestamp" 
echo "--------------------------------" 
# fail on error 
set -e 
agvtool new-version -all $(date +%Y%m%d%H%M%S) 

Dadurch ändert sich die Build-Nummer etwas wie folgt aus: 201703241425.

Wir haben unserem Projekt einen internen Rahmen hinzugefügt. Der obige Befehl ersetzt auch die Frameworks Build Nummer und Current Library Version. Allerdings baut die mit dem folgenden Fehler fehlschlagen:

▸ Linking In-HouseFrameworkLayer 

❌ ld: malformed 64-bit a.b.c.d.e version number: 201703241425 
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation) 

enter image description here

Als ich das Format für den Build Nummer des Rahmens zu ändern, Current Library Version zu 1.0.0 und erstellen einen Build ohne mit dem Skript oben, Die Builds sind erfolgreich.

Frage: Wie kann ich die Build Nummer NUR für die App, aber NICHT der Rahmen Current Library Version Nummer?

Antwort

2

Offensichtlich verwendet die App CFBundleVersion + $(CURRENT_PROJECT_VERSION); Bibliotheken/Frameworks sollen (Current Library Version) + $(DYLIB_CURRENT_VERSION)

standardmäßig verwenden, um es $(CURRENT_PROJECT_VERSION) gesetzt ist, so ist dies, was Sie zum $(DYLIB_CURRENT_VERSION) Zeichenfolge ändern müssen.

Important: For macOS apps, build numbers must monotonically increase even across different versions. In other words, for macOS apps you cannot use the same build numbers again in different release trains. iOS apps have no such restriction and you can re-use the same build numbers again in different release trains.

Der Wert für eine Versionsnummer oder Build-Nummer muss nur bestehen‘. 'S und Zahlen und muss beginnen und mit einer Zahl enden. Jeder ganzzahlige Wert, der durch einen Punkt getrennt ist, ist eine Komponente der Version. Die maximale Anzahl von Zeichen in Ihrer Versionsnummer oder in Ihrer Build-Nummer darf insgesamt nicht mehr als achtzehn Zeichen betragen.

iOS Versionsnummern und Build-Nummern haben kann drei oder mehr Komponenten, aber die maximale Größe der gesamten Versionsnummer oder Build-Nummer darf nicht achtzehn Zeichen nicht überschreiten.

macOS apps sind etwas restriktiver als iOS apps. Für macOS Apps gibt es eine Grenze von drei Komponenten, die durch Punkte getrennt sind, und es darf nicht mehr als drei Komponenten geben.

Version Numbers and Build Numbers

Automating Version and Build Numbers Using agvtool

+0

Vielen Dank für Ihre ausführliche Antwort. Innerhalb der Framework-Build-Einstellungen sehe ich keinen Schlüssel für 'DYLIB_CURRENT_VERSION'. Suche ich am richtigen Ort? – user1107173

+0

Wenn ich das Projekt suche, erscheint es. Wenn ich darauf klicke, erscheint es als 'Current Library Version' und der Wert ist '20170324162615'. – user1107173

+0

Es tut mir leid, aber ich habe keinen Schlüssel für 'CFBundleVersion'. Alle und Kombiniert sind ausgewählt. – user1107173