大家好,欢迎来到IT知识分享网。
打包或生成工程项目的时候,我们常常需要给一些插件或者接入的SDK修改Info.plist文件,一些权限又或者设置等等,为了避免忘记和节省时间,我们可以结合python脚本执行处理。
1、首先安装一个plist格式处理的库
pip install plistlib
2、将Info.plist文件读入解析
plistDict = {} with open(plistFilePath, 'rb') as fp: plistDict = plistlib.load(fp)
3、然后直接对字典操作,例:
# 移除key plistDict.__delitem__('UIApplicationExitsOnSuspend') # 添加key plistDict['NSUserTrackingUsageDescription'] = "我们需要获取你设备的广告标识,以提供更好的广告体验"
4、保存,即利用API将修改后的内容重新保存到Info.plist中即可
with open(plistFilePath, 'wb') as fp: plistlib.dump(plistDict, fp)
附参考脚本:
#!/usr/bin/env python # coding=utf-8 import os import getopt,sys import plistlib def autoEditPlist(plistFilePath): plistDict = {} with open(plistFilePath, 'rb') as fp: plistDict = plistlib.load(fp) print("移除Plist中的UIApplicationExitsOnSuspend") if 'UIApplicationExitsOnSuspend' in plistDict: plistDict.__delitem__('UIApplicationExitsOnSuspend') print("添加权限说明-广告追踪-NSUserTrackingUsageDescription") if not ('NSUserTrackingUsageDescription' in plistDict): plistDict['NSUserTrackingUsageDescription'] = "我们需要获取你设备的广告标识,以提供更好的广告体验" with open(plistFilePath, 'wb') as fp: plistlib.dump(plistDict, fp) if __name__ == "__main__": plistPath = None opts, args = getopt.getopt(sys.argv[1:], "p:") if opts.__len__()==0: print(os.path.basename(__file__)+" 参数说明:\n-p 指定项目中的Info.plist文件路径 /path/to/Info.plist") # 参数解析 for args in opts: if args[0]=="-p": plistPath = args[1] # 执行 for args in opts: if args[0]=="-p": autoEditPlist(plistPath)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/182179.html