702 Stimmen

Version vs. Build in Xcode

Ich habe eine Anwendung, die ich mit Xcode 3 entwickelt habe und seit kurzem mit Xcode 4 bearbeite. In der Zielzusammenfassung habe ich das iOS-Anwendungszielformular mit folgenden Feldern: Bezeichner, Version, Build, Geräte und Bereitstellungsziel. Das Versionsfeld ist leer und das Build-Feld ist 3.4.0 (was der Version der App entspricht, als ich noch mit Xcode 3 gearbeitet habe).

Meine Fragen sind:

  1. Was ist der Unterschied zwischen den Feldern Version und Build?

  2. Warum war das Versionsfeld leer, nachdem ich auf Xcode 4 aktualisiert hatte?

6voto

iHS Punkte 5144

Danke an @nekno und @ale84 für die tollen Antworten.

Allerdings habe ich das Skript von @ale84 ein wenig modifiziert, um die Zahlen für Fließkommazahlen zu erhöhen.

Der Wert von incl kann entsprechend Ihren Anforderungen an das gleitende Format geändert werden. Zum Beispiel: wenn incl = .01, wäre das Ausgabeformat ... 1.19, 1.20, 1.21 ...

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
incl=.01
buildNumber=`echo $buildNumber + $incl|bc`
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

0voto

Eine andere Möglichkeit ist, die Versionsnummer in appDelegate didFinishLaunchingWithOptions :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
     NSString * ver = [self myVersion];
     NSLog(@"version: %@",ver);

     NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
     [userDefaults setObject:ver forKey:@"version"];
     return YES;
}

- (NSString *) myVersion {
    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
    NSString *build = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
    return [NSString stringWithFormat:@"%@ build %@", version, build];
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X