我有一个项目,我喜欢白色标签。基本上只需更改图标,启动图像和info.plist。问题是项目太大了,我真的不想为它添加额外的目标和资源。
我看到的解决方案是创建一个单独的项目,并将第一个项目添加为依赖项目。这个白色标签项目没有代码,只有一堆具有不同图像和信息的目标。在这种情况下,每次我想要为应用程序添加白色标签时,我只会使用自己的一组图像创建另一个目标。每当我想要制作另一个版本时,我都可以轻松构建所有这些目标并为同一个应用程序获取一系列变体。听起来很简单。
问题在于实施。我将项目链接为依赖项,因此我与目标相同。但每次我构建应用程序时,它都会创建一个带有原始名称的可执行文件,即使它在info.plist中有所不同。可能这是因为原始目标有自己的info.plist。另一件事是如何用原来的目标替换原始目标的资源。
感谢任何帮助
答案 0 :(得分:17)
我目前正在管理一个带有白标的iOS应用。我们将每个白标客户端的目标添加到主项目中,并通过Theme.plist
文件使我们的应用程序的大多数部分可配置。
因此,每个目标都包含应用的所有类,但包含自定义Info.plist
,图标,启动屏幕,字体文件和Theme.plist
。
我们避免使用上面提到的@dtrotzjr的方法,因为我们需要为每个目标更改Info.plist
文件之外的一些内容...供应配置文件是一个很好的示例以及预处理器宏到为每个客户端黑客处理偶尔的#ifdef
。
它还使新开发人员更容易理解构建过程。
答案 1 :(得分:2)
我在我的工作中做到了这一点,我是如何做到的是我有一个我编写的python脚本,并使用我存储在备用plist文件中的替换值列表来操作Info.plist。我们还有一个构建步骤脚本,可以为该特定构建注入所需的任何资源。
您可以随意操作捆绑包,但必须在Xcode签署应用程序之前执行此操作。在某些情况下,你可能想要进入并编辑捆绑包中的Info.plist,这很好,只需在签名步骤之前完成。
答案 2 :(得分:0)
Apple现在会拒绝所有白标应用,请参阅:https://blog.summitsync.com/did-apple-just-crush-white-label-apps-4aee14d00b78
答案 3 :(得分:0)
我们使用Bash脚本。复制并替换应用程序图标,启动屏幕,常见问题,分析配置文件等。然后将不同功能的品牌颜色和布尔值传递到JSON配置文件中。当您开始使用sed添加和删除平板电脑支持时,它会变得有些复杂。运行需要几秒钟。它还有助于将PDF用作资产,如果资产只有一种颜色,则可以将tintColor用作品牌颜色。
使用Bash的好处是它将在所有CI系统上都可用。
p.s。苹果仍然接受带有白色标签的应用程序。只要客户对xcarchive文件进行签名,您就可以将它们作为自己的文件发送,那么就可以了。