Xcode 15中的版本控制发生了什么变化?

10
我有一个带有小部件的iOS应用程序。 正常的更新工作包括提升应用程序的CFBundleVersion和扩展的版本以保持同步。
我刚刚下载了Xcode15(发布版),虽然应用程序目标仍然在General/Identity的同一位置具有版本和构建信息,但扩展的General/部分现在缺少了版本和构建信息。版本信息在pList中,但构建号不在其中,除了在那里进行更改之外,还有一个技巧。
有人知道我可以在哪里干净地更新扩展的版本/构建吗?
3个回答

10
苹果删除了更改扩展的构建和版本的简单便捷方式。现在,对于扩展,您必须转到目标并在构建设置/版本控制下进行更改。
由于应用程序和扩展始终应具有相同的版本/构建,为什么不能将其作为简单的默认设置,并在需要时提供更改的路径呢?

这一定是个bug。请提交一份报告。 - undefined
这不是一个错误,而是明显的设计决策,旨在隐藏到非可选参数设置的路径。它不符合错误的定义,但确实破坏了我的开发体验。 - undefined
我不明白为什么要做出这个决定?刚刚收到了一个警告:应用扩展的CFBundleShortVersionString('3.0')必须与其所属的父应用的版本('3.1')相匹配。但根据我的经验,如果不设置相同的版本,似乎并没有什么问题。不确定过去是否有过类似情况发生... - undefined

1
这里有一个解决方法:项目(顶级)设置中还包含版本控制部分。所以我在那里添加了我的“当前项目版本”(=“版本”)和“营销版本”(=“构建”)的值,然后从所有目标中删除了相同的条目(这样它们就会自动继承在项目级别设置的相同值)。
这样可以使应用程序成功构建,而无需出现任何版本警告,并且只需要在一个地方进行更新。
主要的缺点是,你必须记住将来再次在项目设置中更新版本,并且不能使用目标的常规选项卡,否则它将采用需要在将来独立更新的版本控制。

很遗憾,与进入Target/Build Settings/Versioning的工作流程一样繁琐 - 苹果将一个简单、顶层可见且经常使用的设置埋藏起来了。 - undefined
我的应用程序之前运行得非常好,但是在尝试您建议的解决方案时出现了这个错误。无法安装"应用名称" 域:com.apple.dt.MobileDeviceErrorDomain 代码:-402653081 恢复建议:请检查您的项目设置,并确保已构建有效的产品。 用户信息:{ DVTErrorCreationDateKey = "2023-11-01 06:51:40 +0000"; IDERunOperationFailingWorker = IDEInstalliPhoneLauncher; } - undefined
@Anand 当你现在查看所有版本密钥时,你看到了什么?那个错误信息听起来不像是你仅仅修改应用程序版本密钥所导致的。 - undefined

0
最近的Xcode版本(我想说的是14版)已经改变了Xcode和App Store Connect之间的应用程序提交工作流程。
现在有一个选项,托管服务会告诉你它认为下一个版本号是什么。它还会进行一些基本的数字冲突检测。
总体行为意味着你可以在不改变版本号的情况下持续构建和提交,每次上传很可能不会因为版本+构建号与已经上传到团队账户的内容匹配而被拒绝。
我对苹果可能已经将某些版本魔法扩展到扩展程序的可能性持开放态度。
此外,我想大约在Xcode 12时,我注意到扩展版本检查到App Store基本上停止了。(我有一个参考项目,其中有许多扩展,我经常无法同步所有扩展的版本号,所以我已经多次看到了这个错误)。
我不确定是否有任何官方的变化,但我可以说自从WWDC以来,我最近重新阅读了所有可用的扩展文档,没有提到任何版本匹配的变化。

是的!现在可以使用自动版本控制,尤其是在使用Xcode Cloud时。 像大多数独立开发者一样,我认为没有理由使用云端,所以一直以来都是手动进行版本控制,包括使用Xcode 14.3.1发布了3个更新版本,并且每次都手动同步应用程序和扩展。因此,在15中,您可以设置应用程序的版本/构建,然后收到更新扩展的警告。在构建设置中仔细查找后,可以找到多个层级的字段进行更新。 - undefined
4
没有版本魔法:我刚刚尝试更新我的主应用程序的版本号,并保持应用程序扩展不变,结果得到了一个构建警告。我鼓励每个发现这个问题让人烦恼的人向苹果提交一个错误报告。我刚刚自己这样做了。请恢复应用程序扩展的身份选项卡,这样我们就可以快速更新构建号和版本字符串,而不必在构建设置中寻找它们。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接