2011-06-07 74 views
1

我想提供iOS应用的两个版本:付费和免费的广告。我的目标是保持代码基础相同,只更改一个标志来指示我想要构建哪个版本。是否可以修改主应用程序的iOS版本?

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

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

在下载免费应用程序以获得未经授权的访问付费版本后,是否可以更改主包ID?我发现它不是here,herehere

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

如果是这样,我怎么能保护我的应用程序?

我也在想如何定义像#define FREE_APP预处理指令。然后我会检查:

#ifdef FREE_APP 
    //show ads 
#endif 

但这种方法不能完全自动化的只是选择Build - 我仍然需要手动修改这个值 - 所以它是不是最好的。将不胜感激的建议。

回答

2

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

谁想要盗用您的应用程序很可能只是等待,直到有人买和破解您的付费应用程序的人;我怀疑他们会经历黑客入侵免费版本的麻烦。

就我个人而言,我在我的项目中有两个目标。这两个应用程序在构建设置中有不同的Info.plist s和免费版本有#define。在我的代码中,我有很多#ifdef,正如你所建议的。有可能实现自动化(但它有时会变得有点麻烦)。

当然,你的其他选择将是一个单一的应用程序与InAppPurchase升级到完整版本。只要注意专利巨魔。

+0

你可能是对的 - 它会比较容易等待。我只是不想让创建一个可笑的简单:) 只是还有一个问题 - 你的意思是“免费版本在构建设置中有#define”?你是怎么把定义放在构建设置中的? – 2011-06-07 14:32:53

相关问题