是否可以在不复制所有代码的情况下复制 iOS 应用程序?

Posted

技术标签:

【中文标题】是否可以在不复制所有代码的情况下复制 iOS 应用程序?【英文标题】:Is it possible to duplicate an iOS application without duplicating all the code? 【发布时间】:2013-01-31 15:54:18 【问题描述】:

我有 3 个共享很多功能的应用程序。只是它们之间的内容和样式发生了变化。

除了简单地为每个应用程序复制项目之外,有没有办法制作一个“基础”应用程序,然后让 3 个应用程序扩展它?

简单地复制项目将难以维护,而扩展“基础”将允许它们同时更新。

我知道您可以创建项目,然后将旧项目中的所有文件复制到新项目中。这将使文件保持最新,但是如果添加或删除了任何文件,则必须手动执行此操作。

【问题讨论】:

如何通过修订控制来实现这一点,我认为通过 git 是可行的 【参考方案1】:

拥有一个使用多个目标的基础项目。每个目标都可以包含主项目中的文件子集,和/或添加自己的独立文件。每个目标还可以在构建配置中设置自己的一组预处理器定义。

【讨论】:

另外,每个目标可以(并且应该)使用不同的 info.plist 文件来区分它的名称、包标识符等。 每个目标都应该有一个预处理器宏,然后在你的代码中你可以去#ifdef MYMACROFORTARGETONE 并且该代码将特定于那个目标。【参考方案2】:

您可以在 Xcode 中为您的项目添加更多目标。

【讨论】:

【参考方案3】:

创建一个为可重用组件构建静态库的项目。您可以使用 Aggregate 目标来打包任何关联的资源,例如 nib 文件、故事板、图像等。

然后,您的应用项目都可以使用静态库和资源。对静态库的任何更改都将适用于所有相关项目。

【讨论】:

以上是关于是否可以在不复制所有代码的情况下复制 iOS 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

我的客户如何在不访问源代码的情况下上传 ios 应用程序? [复制]

是否可以在不做任何更改的情况下在 Android 手机中运行 JavaFX 桌面应用程序? [复制]

是否可以在不创建全新文件的情况下修改 .jar 文件? [复制]

是否可以在不使用文本包装器的情况下使用不同的列表编号字体大小和列表内部文本? [复制]

是否可以在不运行 QEMU 的情况下将文件复制到 QEMU 映像?

是否可以在不复制的情况下删除大文件的两端?