如何在我的项目中保护.plist和其他.xml文件?

时间:2014-06-05 00:58:54

标签: ios iphone ipad

我的游戏有几个.plist和其他.xml文件。这些用于配置游戏的行为。

就我而言,任何用户都可以使用iFunBox来访问文件 - 即使设备没有越狱,也可以轻松修改其内容。

我想避免这种情况。是否有合理的方法来保护项目中的敏感配置文件?

有点类似的问题是protecting plist in ipad app,虽然它是关于保护钥匙串中的密码。但是,我的配置文件有几个,其中一些相当大 - 所以我不确定它是否相当可行。

2 个答案:

答案 0 :(得分:4)

更新2014/06/26

警告: iOS中有一些类使用NSURL,他们不使用NSURLProtocol因此我们不能以这种方式使用它们。 (例如:-[NSData dataWithContentsOfURL:],...)


原帖

您可以使用关键字"加密资源xcode"。

进行搜索

我认为您的解决方案是加密资源

很容易做到,添加新的构建阶段:

DIRNAME=EncryptedResources
ENC_KEY="abcdefghijklmnopqrstuvwxyz123456"

INDIR=$PROJECT_DIR/$DIRNAME
OUTDIR=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/$DIRNAME

if [ ! -d "$OUTDIR" ]; then
  mkdir -p "$OUTDIR"
fi

for file in "$INDIR"/*
do
  echo "Encrypting $file"
  "$PROJECT_DIR/crypt" -e -k $ENC_KEY -i "$file" -o "$OUTDIR/`basename "$file"`"
done

这是关于它的帖子:http://aptogo.co.uk/2010/07/protecting-resources/

详情请见:Xcode: hide / protect resource files in final iOS app?

答案 1 :(得分:0)

您可以将.plist文件转换为binary plists。这至少会使它们在文本编辑器中无法查看。

除此之外,我还不知道Apple提供的任何编码或保护此类文件的方法。但是,您可以在.xml文件(或文本.plist文件)中使用某种加密。您可以在构建过程中通过加密算法简单地运行每个字符串(属性或属性)或整个文件,然后在读取时对其进行解密。