2011-04-12 89 views
12

在Xcode中我有Bundle VersionBundle Version string, short。 iTunes Connect中還有一個版本。試圖看看我應該爲每個應用使用什麼,以及iOS使用哪一個來確定應用的版本,以便新版本可以正確替換舊版本。需要幫助瞭解如何版本iOS應用程序

回答

19

長話短說:您可以將Bundle Version和Bundle Version字符串都設置爲short值以達到相同的值。您需要在提交之間增加它們。 iTunes Connect中的版本是在App Store中向用戶顯示的版本,不需要與Info.plist中的版本字符串相匹配。

+5

感謝您的信息 - 是否有可能獲得有關兩個不同值背後的預期目的更多的細節。或者至少在哪裏可以找到我自己的信息。感謝您及時的回覆。 – Brian 2011-04-12 15:28:19

+0

請注意,用戶可以看到多個版本號。蘋果不要求它們匹配。 '捆綁短版本字符串'是在設置>常規>存儲>中可在用戶設備上看到的版本。您可能希望將其設置爲與應用商店中可見的版本相匹配。 – user984003 2016-10-17 21:43:47

13

這裏是excellent post關於如何進行版本控制的簡單方法。我的一般方法是使用x.y.z,其中'x'在主要版本中得到增加,'y'對於引入新功能的版本增加,'z'用於錯誤修復版本。例如:1.0.0,1.0.4,3.2.1等... 捆綁版本和iTunes連接之間的關係很簡單:無論您在Xcode中使用的版本是否在iTunes中使用,您的用戶應用程序可以輕鬆識別您的應用程序版本 - 您只需要保持一致。稍後,您可以引入更多粒度,例如建立號碼。

編輯: 重要補充:如果你使用編號不一致您的應用程序可以被拒絕。更多詳情 here死鏈接,但它仍然是真的,因爲版本控制不一致的應用程序可以被拒絕。

+0

@RaffiKhatchadourian:是的。 – rdurand 2012-12-07 09:22:39

+0

但第二個鏈接被打破。 – rdurand 2012-12-07 09:23:49

0
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSLog(@"version is%@",version); 
+10

歡迎使用堆棧溢出。當您將這樣的答案發布到一年多前已接受答案的問題時,您的答案需要涵蓋新材料(您的答案),並且需要解釋,因此很明顯,爲什麼您的答案是比其他人更好。一行代碼可能是不夠的。你能提供一個解釋嗎? – 2012-09-23 02:35:53

+1

這並沒有回答這個問題。 – rdurand 2012-12-07 09:21:44