Xcode中的版本控制构建设置框架

6
我正在开发一个基于以下模板的iOS框架:https://github.com/jverkoey/iOS-Framework 现在我需要做一些打磨工作,并设置适当的构建/营销版本号的版本控制系统。
该框架项目有3个目标,第一个生成静态库,第二个生成资源包,第三个目标是静态库和资源包的聚合目标。 因此,我的第一个问题是确定要在哪个目标上配置版本构建设置(或者是否应该在所有目标上进行配置)。
我的第二个问题是,我应该配置哪些设置以及它们的含义:
当前项目版本=>这是构建版本还是营销版本?所以如果我发布版本为1.2.3.4的应用程序,我应该将其设置为4吗?还是1.2.3?还是1.2.3.4?
生成版本源文件名=>包含整数构建编号的生成的.c文件的名称,我猜是这样的?
生成版本变量=>这是什么?
版本名称前缀=>包含构建编号的变量名称的前缀
版本名称后缀=>包含构建编号的变量名称的后缀
版本控制系统:每个人都使用Apple通用版本控制,所以我猜这是唯一可用的。
版本控制用户名:这是什么?
还有其他设置,如“打包”部分中的“框架版本”,在iOS上应始终使用“A”,我猜这是因为它们实际上是静态框架,版本并不重要?对于“链接”部分的“兼容性版本”/“当前库版本”设置,我应该只在静态库目标上进行配置吗?或者它们由链接库的应用程序使用?

你找到版本控制位放在哪里了吗? - Arsalan Habib
2个回答

3

除非您正在构建商业的闭源框架,我强烈建议使用CocoaPods。它将处理依赖项、资源、版本控制、更新和安装等所有大头痛问题,随着您的库随时间变化。

即使您想要为闭源代码分发仅限二进制文件,也可以使用CocoaPods构建二进制文件,然后使用不同的podspec进行分发。此外,您还将避免嵌入其他库的代码,这是一种非常糟糕但常见的做法。

至于版本控制,您可以在这里查看。


回到制作静态库...

该版本对于应用程序不可见,仅仅是文档,因此我认为您应该将其添加到所有目标中。如果您真的想要能够在运行时检测到库的版本,则需要提供类方法或全局变量,例如[MyLibrary version]

这些密钥的文档已包含在Xcode中,或者您可以选择其中一个并检查“快速帮助”窗格:

enter image description here


即便您的框架需要是闭源的,如果它使用开源软件,则存在潜在冲突的可能性(例如另一个框架使用不同版本)。像 CocoaPods 这样的依赖管理器可以为您解决这些传递依赖问题。因此,通过 CocoaPods 分发库是有意义的,不仅因为它方便广泛使用,而且因为它管理了上述问题。 - Jasper Blues
谢谢,那基本上就是我在第二段试图解释的内容。 - Rivera
是的,我想我可以试着详细说明一下那个好点子。 - Jasper Blues
我真的很想了解这些参数,所以我对 CocoaPods 的方法不感兴趣,但还是谢谢 :) - LiohAu
好的,通过帮助面板,我几乎可以获取所有答案。我不知道它在构建设置中是可用的,你就因为这个而获得了奖励 :) - LiohAu

3

苹果提供了相当全面的文档来构建和分发框架。

框架编程指南涵盖了您需要的大部分内容。如果您想获取有关开发人员工具如何使用项目中的信息的更多特定信息,请查看agvtool的手册页面,该工具是Xcode与苹果版本控制系统一起使用的工具。

您还应该对Cocoa编码指南感兴趣,该指南还涵盖了一些最佳实践方法。


虽然我非常感谢您提供这些好的参考资料,但如果您能够提供一些具体的问题答案,那就更好了。 - Motti Shneor

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