iOS 脚本修改plist文件
目前我的项目是由一份Project多个Target多个shema构成的。因为代码逻辑都是一样的,仅仅是里面的资源和请求接口不一样,所以添加了多个Target.
项目中用到了JPush, 但是Jpush很坑爹,有一个PushConfig.plist文件,程序运行的时候会读取此文件中的值:
内容如下:
最主要的 APP_KEY 因为不同的Target , APP_KEY值不一样。这样一来每次编译打包的时候,都需要更改此文件.
太麻烦了。
步骤如下:
1. 存放所有Jpush AppKey的文件,如:JPUSHKEY
里面存放的key按照 $PRODUCTNAME=$APPKEY这种格式排列
2. shell 脚本一份. modifyJPushKey.sh
3. 项目中点中TARGETS,右边选择 Build Phases
点击 + (NEW Run Script Build Phase)
点击 Run Script 一栏,下拉展开:
里面可以填写脚本:
(我为了编写修改脚本便,脚本我拿出来单独写成一份文件。这个 Run Script 里面,就去执行这个写出来的脚本。)
SHELL_PATH=$PROJECT_DIR/modifyJPushKey.sh
chmod +x ${SHELL_PATH}
sh ${SHELL_PATH}
展开 Run Script 如图:
这时候可以把它(Run Script 这一栏)拖动到前面,以便脚本在合适的时候执行.
附录:
1. JPUSHKEY文件如下: = 号左右的是 PRODUCTNAME
=号右边的就是 key值
A_HD=8031cffad446b************
B_HD=0f4f8ff111ba38************
C_HD=e2ef1b1560833******
D_HD=6531d43b365e2******
E_HD=d7c71863e1d620******
F_HD=9b7a1d141e97f0******
G_HD=13c75c512e3feaaf******
2. modifyJPushKey.sh
#!/bin/bash#productName
PRODUCTNAME=${PRODUCT_NAME}
#JPUSHKEY文件 绝对路径
JPUSHKEY_FILE_PATH=$PROJECT_DIR/******/*******/JPUSHKEY
#PushConfig.plist文件 绝对路径
PushConfig_FILE_PATH=$PROJECT_DIR/******/******/PushConfig.plist
#存放AppKey值
keyString=""#根据PRODUCTNAME 查找JPUSHKEY文件中 对应的keyString值
cat ${JPUSHKEY_FILE_PATH} | while read line
doproductName=${line%%=*}if [ "${PRODUCTNAME}" == "${productName}" ]; thenkeyString=${line#*=}echo $productName $keyString#替换 PushConfig.plist 文件中 appkey的值sed -i '' "/<key>APP_KEY<\/key>/{ n; s/\(<string>\).*\(<\/string>\)/\1${keyString}\2/;}" ${PushConfig_FILE_PATH}exit 0fi
done
就是这样的。
iOS 脚本修改plist文件相关推荐
- iOS开发中plist文件的创建与简单读取(一)
iOS开发中plist文件的创建与简单读取(一) 1. 创建一个工程 2. 新建一个plist文件(command+N快捷键或者新建文件 如图下的红色圈) 3. 红色圈是plist的文件名,这里默认为 ...
- objective 修改plist文件
修改plist文件 首先必须保证plist文件存在于Library 或者Documents中 建议把plist文件放在Library/Caches中 (问过高手,放在这两个文件中有啥区别,高手说 苹 ...
- 自己服务器上部署APP应用(安卓和IOS版),下载页面的代码,以及IOS的xxx.plist文件的建立
第一 先安装nginx 第二 修改nginx配置 # vim /usr/local/nginx/conf/nginx.conf#配置用户和用户组 #user nobody; #工作进程数,建议设置为C ...
- IOS之Info.plist文件简介
http://my.oschina.net/hmj/blog/104196 元信息简介 为了提供更好的用户体验,IOS 和 OS X的每个app或bundle都依赖于特殊的元信息(meta Infor ...
- Reveal分析IOS界面,plist文件读取
Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 , 而IOS8的iTunesMetadata.plist (设备路径/var/mobi ...
- iOS学习之 plist文件的读写
在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist ...
- python脚本修改hosts文件
记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太麻烦,就写了这个脚本.本来以为感觉很简单 ...
- iOS开发中plist文件的创建与简单读取
1. 创建一个工程 2. 新建一个plist文件(command+N快捷键或者新建文件 如图下的红色圈) 3. 红色圈是plist的文件名,这里默认为Property List,点击创建就可以了 4 ...
- iOS 技术 info.plist文件的常用配置总结
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
最新文章
- 域渗透提权之MS14-068
- 吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?
- mysql select 查询选后5个_mysql 查询select语句汇总
- php导入csv文件,php实现CSV文件导入和导出
- IDEA启动项目报错:Error:(1, 1) java: 非法字符: '\ufeff'
- Spring| BeanCurrentlyInCreationException: Error creating bean with name ‘‘xxx“
- 【华为云技术分享】竞享实例:让你尽享云服务的“鱼”和“熊掌”
- html与js简单小游戏,JS实现简单贪吃蛇小游戏
- 《R in Action》读书笔记(3) 数据变换
- Python(十二):异常
- 读书笔记 大前研一《专业主义》
- 处理url时服务器发生错误,请和系统管理员联系,服务器处理URL时出错。请与系统管理员联系的解决方案...
- Django笔记十一之外键查询优化select_related和prefetch_related
- 凡诺cms2.1文件包含漏洞分析
- Hanoi塔问题图文详解
- js判断两个时间是否超过一年
- OA系统性能测试报告
- windows10命令行窗口cmd路径切换
- Tensorflow2(3)
- 都是北方蛮族,为什么欧洲的能开创现代文明,东亚的却只能“能歌善舞”?