我想提供两个版本的iOS应用:付费和免费广告。我的目标是保持代码库相同,只更改一个标志以指示我想要构建的版本。
我为我的应用准备了两个构建目标,以支持这种分离,如here所述。这些目标在Bundle ID中有所不同。
现在,我想根据给定的Bundle ID更改标志。我试图阅读主捆绑标识符,它完美地工作。在这里我的问题开始了。
是否可以在下载免费应用程序后更改主捆绑ID以获取未经授权的付费版本访问权限?我发现它不是here,here和here。
但是...... 越狱手机怎么样?我读过一些评论,是的。
如果是这样,我如何保护我的应用程序?
我还在考虑定义像#define FREE_APP
这样的预处理程序指令。然后我会检查:
#ifdef FREE_APP
//show ads
#endif
但是这个解决方案不能仅通过选择构建来完全自动化 - 我仍然需要手动更改此值 - 因此它不是最好的。将不胜感激的建议。
答案 0 :(得分:3)
要直接回答你的问题,几乎肯定是的。但我认为这无关紧要。
想要盗版你的应用的人可能只是等到有人购买并破解你的付费应用;我怀疑他们是否会经历黑客攻击你的免费版本。
就个人而言,我的项目中有两个目标。这两个应用具有不同的Info.plist
s,免费版本在构建设置中有#define
。在我的代码中,我建议你有很多#ifdef
个。它可以自动化(但有时可能会有点混乱)。
当然,您的另一个选择是使用InAppPurchase升级到完整版的单个应用程序。小心专利巨魔。