2011-04-12 86 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