一些黑客可以破解我的CFBundleDisplayName吗?

时间:2014-11-02 21:56:29

标签: ios xcode

我正在构建一个包含两个目标(免费和付费)的iOS应用程序,因为它们都具有相同的代码但几乎没有变化,例如iAd ...等等

在代码中,我使用以下代码区分这些目标:

IsFree = [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"] isEqualToString:@"Game.Free"];

但我担心如果infoDictionary文件容易受到黑客攻击(越狱或其他什么)。

请告诉我是否有更好的方法来区分目标。

谢谢。

1 个答案:

答案 0 :(得分:3)

更标准的方法是使用编译器指令。

在两个目标的构建设置中,编辑"其他C标志"设置。对于" Lite"版本目标,添加如下内容:

  

-DLITE_VERSION

对于付费版本目标,请添加以下内容:

  

-DPAID_VERSION

然后当你拥有特定于" lite"的代码时您可以做的版本:

#ifdef LITE_VERSION
    // Lite version specific code here
#endif

对于特定于付费版本的任何代码,您可以执行以下操作:

#ifdef PAID_VERSION
    // Paid version specific code here
#endif