首页 > 技术文章 > ios多语言适配文件加密及回滚

z-z-z 2017-11-22 16:20 原文

目标:公司需要上架一款游戏,里面加了网页支付,多次上架被拒。猜测苹果审核时看到代码中的某某支付等相关字样。所以

老板:你把sdk中所有相关内容都搞掉

解决办法:将所有注释内容替换无意义内容(这里),将多语言文件内容进行加密。

代码:

#coding=utf-8
import re
import base64
import os

#获取文件路径
def getFileWithPath():
    # file_path = raw_input("path=")
    file_path = '/Users/jb-mac/Desktop/JBSDKLanguage.strings'

    try:
        file = open(file_path)
        file_content = file.read()

        mth = re.findall('= *"(.+?)";', file_content)
        for string in mth:
            # if check_contain_chinese(string):

            if (code_type == '1'):
                encode_string = base64.b64encode(string)
            else:
                encode_string = base64.b64decode(string)

            file_content = file_content.replace('"' + string + '"', '"' + encode_string + '"')

        if os.path.exists("/Users/jb-mac/Desktop/sdk_language_base64") == False:
            os.mkdir("/Users/jb-mac/Desktop/sdk_language_base64")

        new_file = open('/Users/jb-mac/Desktop/sdk_language_base64/JBSDKLanguage.strings','w')
        new_file.write(file_content)
        new_file.close()
        print 'ok'

    except:
        print '文件打开异常'

#判断中文
def check_contain_chinese(check_str):
    for ch in check_str.decode('utf-8'):
        if u'\u4e00' <= ch <= u'\u9fff':
             return True
    return False

if __name__ == "__main__":
    code_type = raw_input('1加密 2解密:\n')
    getFileWithPath()

 

推荐阅读