我的游戏有几个.plist和其他.xml文件。这些用于配置游戏的行为。
就我而言,任何用户都可以使用iFunBox来访问文件 - 即使设备没有越狱,也可以轻松修改其内容。
我想避免这种情况。是否有合理的方法来保护项目中的敏感配置文件?
有点类似的问题是protecting plist in ipad app,虽然它是关于保护钥匙串中的密码。但是,我的配置文件有几个,其中一些相当大 - 所以我不确定它是否相当可行。
答案 0 :(得分:4)
警告: 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
答案 1 :(得分:0)
您可以将.plist文件转换为binary plists。这至少会使它们在文本编辑器中无法查看。
除此之外,我还不知道Apple提供的任何编码或保护此类文件的方法。但是,您可以在.xml文件(或文本.plist文件)中使用某种加密。您可以在构建过程中通过加密算法简单地运行每个字符串(属性或属性)或整个文件,然后在读取时对其进行解密。