加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

用于编辑PROJECT-Info.plist文件的CFBundleVersion字段的Bash脚

发布时间:2020-12-16 01:23:21 所属栏目:安全 来源:网络整理
导读:为了建立一个持续的集成系统,哈德森,我写了一个bash脚本来自动构建 Xcode项目. 此外,在Debug配置中,被要求我将PROJECT-Info.plist文件的CFBundleRevision字段中的项目的svn修订版本插入${BUNDLE_VERSION} .r ${SVN_REVISION}. 你可以在下面找到PROJECT-Info.
为了建立一个持续的集成系统,哈德森,我写了一个bash脚本来自动构建 Xcode项目.
此外,在Debug配置中,被要求我将PROJECT-Info.plist文件的CFBundleRevision字段中的项目的svn修订版本插入${BUNDLE_VERSION} .r ${SVN_REVISION}.

你可以在下面找到PROJECT-Info.plist文件的源代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
[...]
    <key>CFBundleVersion</key>
    <string>1.0</string>
[...]
</dict>
</plist>

我尝试过以下bash脚本:

sed 'N;s_^.*<key>CFBundleVersion</key>.*<string>[0-9][0-9]*.[0-9][0-9]*</string>$_<key>CFBundleVersion</key>
<string>'"$BUNDLE_VERSION"'.r'"$SVN_REVISION"'</string>_' $PROJECT-Info.plist

该脚本应该用${BUNDLE_VERSION} .r ${SVN_REVISION}替换“1.0”字符串(仅在当前的标准输出中).
但是,替换工作没有“N”选项,其中包括sed进程中的下一行和一次一行.但是有很多行与“< string> […]< / string>” PROJECT-Info.plist文件中的字符串…

我认为这是我处理两行之间的未知字符的方式(“N”选项和“.*”表示任何字符)是错误的.

任何想法 ?

提前感谢,抱歉我的英文水平不好.

$myversion=1.0.3
$perl -O777 -i.bak -pe 's|<key>CFBundleVersion</key>s*<string>[d.]*</string>|<key>CFBundleVersion</key></key>'"$myversion"'<string>|' bundle

将文件包移动到bundle.bak,并将1.0.6.9替换为新捆绑文件中的1.0.3.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读