W Xcode 4 widzę to jako podsumowanie celu:
Wejście „Wersja” odpowiada CFBundleShortVersionString
w pliku info.plist, a wejście „Kompilacja” odpowiada CFBundleVersion
.
Jaka jest różnica między tymi dwoma? Widzę wiele osób w Internecie, które chcą przypisać tę samą wartość do obu i podejrzewam, że jest to kompatybilność wsteczna.
Mam dwa pytania:
1) Gdybym zaczynał od zera, jaka byłaby najlepsza praktyka w zakresie wersjonowania Twojej aplikacji?
2) We wszystkich poprzednich wersjach mojej aplikacji używałem tylko CFBundleVersion
. Aby nie zepsuć procesu aktualizacji, czy powinienem kontynuować przyrosty w CFBundleVersion
ten sam sposób, czy jest możliwe przejście na „właściwą drogę”, zakładając, że taka istnieje?
objective-c
xcode
Philip Walton
źródło
źródło
Odpowiedzi:
Dokument Apple „Information Property List Key Reference” mówi, że
CFBundleShortVersionString
reprezentuje wersję wydania, aCFBundleVersion
reprezentuje dowolną kompilację, wydaną lub nie. Ponadto,CFBundleShortVersionString
mogą być zlokalizowane, choć nie wiem dlaczego chcesz chcą, bo mówią, że to ma być „łańcuch składa się z trzech liczb całkowitych oddzielonych epoki”. W przypadku wydania wydania rozsądne byłoby uczynienie tych dwóch takich samych liczb. W przypadku kompilacji deweloperskiej możesz dołączyć do niej coś innegoCFBundleVersion
, może inną kropkę i liczbę całkowitą.źródło
CFBundleVersion
i nic jak mójCFBundleShortVersionString
, a ja chcę, aby przełączyć się używającCFBundleVersion
do reprezentowania wewnętrzny buduje, to trzeba przynajmniej początek z liczbą całkowitą większa niż 1.3.1, prawda? A może dokonanie tej zmiany tylko prosi o kłopoty?CFBundleShortVersionString
) jest jedyną rzeczą, która ma znaczenie przy przesyłaniu do Apple. Build (CFBundleVersion
) jest przeznaczony do użytku w programowaniu lub do wyświetlania w aplikacji. Użyj liczby ósemkowej (podstawa-8) i iteruj w odwrotnej kolejności o 12, jeśli chcesz.201606070620
dla obu wartości w dostarczanej aplikacji na iOS 7-8-9.Na pytanie JWWalkera, dlaczego chcesz zlokalizować CFBundleShortVersionString, byłby to separator dziesiętny. Na przykład w lokalizacjach, w których separatorem dziesiętnym jest przecinek, wersja „1.5” będzie miała wartość „1,5”.
źródło
Szybka naprawa:
Po prostu dodaj
CFBundleShortVersionString
do pliku plist i edytuj swoją wersję.InfoPlist.strings
źródło
Zobacz dokumentację Apple dotyczącą przesyłania plików binarnych.
Przesyłanie pliku binarnego dla aplikacji
źródło