一个sh脚本每次build的时候动态修改info.plist文件 达到动态更改版本号的目的 但是估计是因为缓存的缘故 每次只有clean之后再运行才会修改成功 看script执行的log 好像是先修改之后然后xcode去copy了一份旧的plist给覆盖了。。。 但是clean之后却没有这个copy操作 这是为什么 ????

提出临时解决办法  删掉当前app目录下的plist的文件 跑过去修改原plist文件 哈哈哈  每次强迫xcode去copy

 echo ${SRCROOT}
FILE_PATH=${SRCROOT}/../version.json

info_plist="$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/Info.plist"
echo ${info_plist}
echo $info_plist
echo "Removing Info.plist from build dir in order to force rebuild of it and reading of correct xcconfig variables, plist path $info_plist"
rm "$info_plist"

publicNet=$(cat $FILE_PATH | jq .PublicNet)
vCode=$(cat $FILE_PATH | jq .IOS.vCode)
vName=$(cat $FILE_PATH | jq .IOS.vName | sed 's/\"//g')
if [ "$publicNet" == "false" ];then
deployKey=$(cat $FILE_PATH | jq .IOS.CodePushDeploymentKey_staging | sed 's/\"//g')
elif [ "$publicNet" == "true" ];then
deployKey=$(cat $FILE_PATH | jq .IOS.CodePushDeploymentKey_production | sed 's/\"//g')
else
deployKey=$(cat $FILE_PATH | jq .IOS.CodePushDeploymentKey_staging | sed 's/\"//g')
fi
echo ${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}
echo ${TARGET_BUILD_DIR}/${INFOPLIST_PATH}

_publicNet=$(/usr/libexec/PlistBuddy -c "Print :PublicNet" "${SRCROOT}/$TARGETNAME/Info.plist")
_vName=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${SRCROOT}/$TARGETNAME/Info.plist")
_vCode=$(/usr/libexec/PlistBuddy -c "Print :VersionCode" "${SRCROOT}/$TARGETNAME/Info.plist")
_vDeployKey=$(/usr/libexec/PlistBuddy -c "Print :CodePushDeploymentKey" "${SRCROOT}/$TARGETNAME/Info.plist")
echo "current PublicNet value is : $_publicNet"
echo "current version name is : $_vName"
echo "current version code is : $_vCode"
echo "current deploy key is : $_vDeployKey"

script 修改 plist遇到的问题的更多相关文章

  1. Xcode下修改plist文件

    plist文件在Mac OS下的重要性,如同Windows下的注册表文件.而很多场景下面,我们需要修改plist文件来实现一些"自动化"操作   Mac OS本身提供了一个工具:P ...

  2. 用PlistBuddy修改Plist文件

    Plist文件是以.plist为结尾的文件的总称. 众所周知, Plist在Mac OSX系统中起着举足轻重的作用,就如同Windows里面的Registry一样,系统和程序使用Plist文件来存储自 ...

  3. Mac 下,修改plist文件

    /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName $DISPLAY_NAME" "${PROJECT_TEMP_D ...

  4. plist文件、NSUserDefault 对文件进行存储的类、json格式解析

    ========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...

  5. ios修改产品名

    在创建项目的时候,会设置一个项目名,以后生成的APP名字也就是这个了,但由于某种原因,我想修改APP名字,也就是屏幕程序图标下面显示的那个,这该怎么办呢? 下面有三种方法都可以: 修改Product ...

  6. Unity3D研究院之IOS全自动编辑framework、plist、oc代码

    Unity打IOS时会先生成一个Xcode工程,如果你需要增加一些第三方的framework那么需要手动一条一条的添加,这太烦了..而且可能你还需要修改Plist文件,甚至还可能要修改unity自动生 ...

  7. cocos2d-x 读取.plist文件

    转自:http://blog.csdn.net/hgplan/article/details/8629904 在cocos2d-x中可以用.plist格式的文件来保存数据,它是XML文件格式的一种,在 ...

  8. ecshop去官方化的修改

    1:如何修改网站"欢迎光临本店" 回答:languages\zh_cn\common.php文件中, $_LANG['welcome'] = '欢迎光临本店';将他修改成你需要的字 ...

  9. 修改整个app的字体

    在项目开发中  有时候为了一些好的UI效果  可能需要自定义字体  app导入字体库的教程网上有很多 导进去 修改plist文件  然后如何将整个app的字体都换成自定义的字体呢  一个个去写太麻烦了 ...

随机推荐

  1. [INS-40724] No locally defined network interface matches the SCAN subnet.

    环境如下 OS:AIX 7.1 DB:11.2.0.4 2节点RAC 报错信息 在安装11.2.0.4 RAC的时候报如下错误 INS-40724] No locally defined networ ...

  2. 18. C# 转换

    1.重载转换运算符 到目前为止,我们使用的类型转换,包括隐式类型转换和显示类型转换都是在两个相关的类中进行的,这几个类要么是简单类型之间的转换,比如int 隐式转换成double,要么是有继承关系,或 ...

  3. Python3.0科学计算学习之绘图(四)

    绘制三维图: mplot3d工具包提供了点.线.等值线.曲面和所有其他基本组件以及三维旋转缩放的三维绘图. 1.散点的三维数据图 from mpl_toolkits.mplot3d import ax ...

  4. matlab——之class类(详细总结)

    https://blog.csdn.net/qinze5857/article/details/80545885 开篇:搜了一下网上介绍matlab的class类,信息不全,且总结不全面,于是单独he ...

  5. The world is in my hands

    Null项 其实我还是比较希望你能理解我的心情 无聊666回味

  6. fork()相关的源码解析

    fork()的真正执行采用的是do_fork()函数,所以下文将从do_fork()函数对fork()进行源码解析.下图是do_fork()的源码函数设计: 从上图我们可以看到do_fork()涉及到 ...

  7. powerdesigner的PDM模型name和comment相互复制替换

    在[Tools]-[Execute Commands]-[Edit/Run Script] 下.输入以下命令,这些命令也可以保存起来,扩展名为 vbs ,以便下次使用. 1.name的值复制到comm ...

  8. NGUI之使用UISprite画线

    代码如下: static void DrawLine(UISprite spriteLine, Vector3 start, Vector3 end) { Vector3 center = (star ...

  9. [Android] 对于com.google.gson.JsonElement的转义问题

    不多说了,com.google.gson.JsonElement使用的时候,toString()跟getAsString()这两个方法对于特殊字符的转义是不同的, 看这里的解释: https://st ...

  10. 个人作业4-Alpha阶段个人总结

    一.个人总结 在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 有 ...