2

我想提供两个版本的 iOS 应用程序:付费和免费广告。我的目标是保持代码库不变,只更改一个标志来指示我要构建的版本。

我已经为我的应用程序准备了两个构建目标来支持这种分离,如此所述。这些目标的 Bundle ID 不同。

现在,我想根据给定的 Bundle ID 更改标志。我试图阅读主捆绑标识符,它工作得很好。我的问题从这里开始。

下载免费应用程序后是否可以更改主捆绑 ID 以获得对付费版本的未经授权的访问?我发现hereherehere并非如此。

但是……越狱手机呢?我读过一些评论,确实如此。

如果是这样,我该如何保护我的应用程序?

我也在考虑定义预处理器指令,例如#define FREE_APP. 然后我会检查:

#ifdef FREE_APP
    //show ads
#endif

但是这个解决方案不能仅仅通过选择构建来完全自动化——我仍然需要手动更改这个值——所以它不是最好的。将不胜感激的建议。

4

1 回答 1

3

直接回答你的问题,几乎可以肯定。但我认为这并不重要。

想要盗版您的应用程序的人可能会等到有人购买并破解您的付费应用程序;我怀疑他们会经历破解您的免费版本的麻烦。

就个人而言,我的项目中有两个目标。这两个应用程序有不同Info.plist的 s,免费版本#define在构建设置中有一个。在我的代码中,我有很多#ifdefs 你建议。可以实现自动化(但有时会有点混乱)。

当然,您的另一个选择是使用 InAppPurchase 升级到完整版本的单个应用程序。小心专利流氓。

于 2011-06-07T13:44:23.937 回答