8

我有一个项目,我想给它贴上白标。基本上只需要更改图标、启动图像和 info.plist。问题是项目太大了,我真的不想给它添加额外的目标和资源。

我看到的解决方案是创建一个单独的项目并将第一个添加为依赖项目。这个白标项目没有代码,只有一堆带有不同图像和 info.plist 的目标。在这种情况下,每次我想给应用程序贴上白标签时,我都会用自己的一组图像创建另一个目标。每当我想发布另一个版本时,我都可以轻松构建所有这些目标,并为同一个应用程序获得一堆变体。听起来很容易。

问题在于实施。我将项目链接为依赖项,所以我与目标相同。但是每次我构建应用程序时,它都会使用原始名称创建一个可执行文件,即使它在 info.plist 中有所不同。这可能是因为原始目标有自己的 info.plist。另一件事是如何将原始目标中的资源替换为另一个资源。

感谢任何帮助

4

4 回答 4

19

我目前管理一个带有白标签的 iOS 应用程序。我们将每个白标客户端的目标添加到主项目中,并通过Theme.plist文件使我们的应用程序的大部分部分可配置。

因此,每个目标都包含应用程序的所有类,但具有自定义Info.plist、图标、启动屏幕、字体文件和Theme.plist.

我们避免了@dtrotzjr 上面提到的方法,因为Info.plist文件之外有一些我们需要更改每个目标的东西......供应配置文件是一个很好的例子,以及预处理器宏来处理偶尔#ifdef针对每个客户端的黑客攻击.

它还使新开发人员更容易理解构建过程。

于 2014-04-20T18:33:03.863 回答
2

我在我的工作中做到了这一点,我是如何做到的,我编写了一个 python 脚本,该脚本进入并使用我存储在替代 plist 文件中的替换值列表来操作 Info.plist。我们还有一个构建步骤脚本,用于注入我们为特定构建所需的任何资源。

您可以随心所欲地操作捆绑包,但您必须在 Xcode 签署应用程序之前执行此操作。在某些情况下,您可能还想进入并编辑捆绑包中的 Info.plist,这很好,只需在签名步骤之前进行。

于 2013-09-06T02:13:33.207 回答
0

我们使用 Bash 脚本。复制和替换应用程序图标、启动屏幕、常见问题解答、分析配置文件等。然后将不同功能的品牌颜色和布尔值传递到配置 JSON 文件中。当您开始使用 sed 添加和删除平板电脑支持时,它会变得有点复杂。运行需要几秒钟。它还有助于将 PDF 用作资产,如果资产只有一种颜色,那么您可以使用 tintColor 作为品牌颜色。

使用 Bash 的好处是它将在所有 CI 系统上可用。

ps Apple 仍然接受白标应用程序。只要客户签署了您将其作为自己发送的 xcarchive 文件,那么您应该没问题。

于 2019-04-17T12:01:58.763 回答
0

Apple 现在将拒绝所有白标应用程序,请参阅:https ://blog.summitsync.com/did-apple-just-crush-white-label-apps-4aee14d00b78

于 2017-10-16T18:32:21.930 回答