是否可以修改iOS应用程序的主要捆绑?

时间:2011-06-07 13:31:36

标签: ios security ios4 nsbundle

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

我为我的应用准备了两个构建目标,以支持这种分离,如here所述。这些目标在Bundle ID中有所不同。

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

是否可以在下载免费应用程序后更改主捆绑ID以获取未经授权的付费版本访问权限?我发现它不是hereherehere

但是...... 越狱手机怎么样?我读过一些评论,是的。

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

我还在考虑定义像#define FREE_APP这样的预处理程序指令。然后我会检查:

#ifdef FREE_APP
    //show ads
#endif

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

1 个答案:

答案 0 :(得分:3)

要直接回答你的问题,几乎肯定是的。但我认为这无关紧要。

想要盗版你的应用的人可能只是等到有人购买并破解你的付费应用;我怀疑他们是否会经历黑客攻击你的免费版本。

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

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