具有相同代码库的两个 iPhone 应用程序

Posted

技术标签:

【中文标题】具有相同代码库的两个 iPhone 应用程序【英文标题】:Two iPhone Apps with same code base 【发布时间】:2010-09-27 00:01:07 【问题描述】:

我想创建两个代码库非常相似的 iPhone 应用程序。唯一的区别是一些设置和 UI 皮肤。而不是创建两个 xcode 项目并将所有代码复制过来。有没有更好的方法来设置它?为了更好的可维护性? 95% 的代码都是一样的。

【问题讨论】:

【参考方案1】:

是的,你可以这样做。您不应该按照您的猜测创建两个 XCODE 项目。

对于每个版本的代码差异,您可以使用 C 预处理器指令。 #ifdef 及相关命令。

对于 UI 的差异,您可以创建多个目标,如果需要,每个目标都使用不同的 XIB 文件。

对于设置差异,您还可以创建多个目标,每个目标使用不同的 .info 文件。

查看this 和this 关于在XCODE 中使用多个目标的博客文章。

【讨论】:

【参考方案2】:

将两个目标添加到同一个项目。为他们提供不同的 Info.plist(参见“Info.plist”构建设置;不必将它们添加到目标中);一个简单的方法是做 FooApp-Info.plist 和 BarApp-Info.plist。

将“可换肤”资源放在您添加到 Xcode 的应用特定目录中。在Xcode中的目录上“Get Info”,点击“targets”,确保只有正确的target包含每组资源)。

(您可以为不同的“皮肤”赋予不同的文件名,但这很容易变得难以管理,并且不适用于像 Def​​ault.png 这样具有固定名称的文件。)

【讨论】:

以上是关于具有相同代码库的两个 iPhone 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

我可以拥有两个具有不同捆绑 ID 和相同名称的应用程序吗?

2 个具有相同名称的 iPhone 应用程序。这怎么可能?

我可以提交具有相同 Icon.png 但不同包名称的 iPhone 应用程序吗

iphone:uitextfield,具有相同委托的多个文本字段?

单例模式 静态库和动态库的区别

将具有相同 iPhone 应用名称的 iPad 应用上传到 Appstore