适用于白标应用的iOS静态库代码库

时间:2012-06-14 05:32:12

标签: ios xcode white-labelling

我正在寻找自定义iOS应用程序的最佳方法,以便我们可以轻松创建它的白标版本并使它们保持同步。

一种方法是将整个代码库放在静态库项目中。然后为我们的主应用程序和每个白标应用程序创建一个单独的项目。这些项目每个都包含对代码库库作为子项目的引用,以及它们自己的资产,如图标,加载图像和Info.plist文件。

我的同事已成功将这种方法用于Eclipse中的Android姐妹项目。

不幸的是,这种方法在xcode中可能不起作用。 xcode似乎不允许某些资源与静态库捆绑在一起,例如必须的Settings.bundle和Localizable.strings。

我有什么方法可以在xcode中使用这种方法,或者我最好只引用每个项目的codebase文件夹?

修改

最初我打算只引用每个项目的codebase文件夹,但发现每次在代码库中添加/删除/重命名文件时,这种方法都需要在每个项目中重新添加codebase目录。

3 个答案:

答案 0 :(得分:4)

我已经完成了白色标签应用。你应该先尝试目标。目标包含在项目中。您可以在同一项目中包含您的源。将所有不同的内容放在几个文件中,并改变每个目标中包含的那些文件。

您仍然需要确保文件在所有目标中,但是系统会提示您或者出现链接错误,如果您错过了包含它的文件,只需选中一个复选框。

您可以保持特定于目标的文件非常有限。我有一个共同的xcassets文件,每个目标一个。我还为每个目标都有单独的plist和其他一些资源。其他一切都是共享的。

参考文献:

答案 1 :(得分:3)

作为付费咨询项目,我正在审查公司的白标战略。他们创建了一系列的.sh文件,将整个版本复制到新名称中 - 包括一个新的.plist和项目文件。

他们没有考虑的是这些应用的版本控制;因此,如果您可以构建您的应用程序,我认为库是最好的方法。您可能拥有相同白标应用的多个版本。 (充其量的噩梦!LOL)

你可能想要看的另一件事是CocoaPods。我没有使用它,但我有朋友 - 他们喜欢它,因为它有助于lib管理 - 特别是从一个开发环境到另一个开发环境。我需要在下个月使用它,因为每个人都要处理的Zxing路径混乱。

https://github.com/CocoaPods/CocoaPods

最后的推荐 - 使用Source Control就像没有明天一样!!!

答案 2 :(得分:2)

您无法自动将资源与静态库捆绑在一起,但没有什么可以阻止您手动包含共享资源。您可以为自定义项目创建工作区,将库的项目插入工作区,然后将资源组从库的项目树拖到主项目中。