Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在OSX中写入文件_Ios_Macos_Bash - Fatal编程技术网

Ios 在OSX中写入文件

Ios 在OSX中写入文件,ios,macos,bash,Ios,Macos,Bash,我有剧本。我为iTunes Connect在Mac Mini上自动上传iOS代码而设计。我的问题是,我必须更改CbundleShortVersionString,以隐藏我们的内部版本控制。这也很重要,因为iTunes Connect警告我版本无效 #!/bin/bash cat info.plist | grep -A1 "CFBundleShortVersionString" | sed "s/\(<string>\).*\(<\/string>\)/\1%CFBUND

我有剧本。我为iTunes Connect在Mac Mini上自动上传iOS代码而设计。我的问题是,我必须更改CbundleShortVersionString,以隐藏我们的内部版本控制。这也很重要,因为iTunes Connect警告我版本无效

#!/bin/bash
cat info.plist | grep -A1 "CFBundleShortVersionString" | sed "s/\(<string>\).*\(<\/string>\)/\1%CFBUNDLESHORTVERSION%\2/g" > info.plist_in.bk
cat info.plist_in.bk
cat info.plist | grep -A1 "CFBundleShortVersionString" | grep -v CFBundleShortVersionString | egrep "[A-z0-9]+" > delete.txt
cat delete.txt
cat info.plist | grep -v "CFBundleShortVersionString" > infoi.plist_in
cat infoi.plist_in
touch info.plist_in
cat infoi.plist_in | grep -v $(cat delete.txt) > info.plist_in
cat info.plist_in.bk >> info.plist_in
sed -i .bk2 -e "s/<\/dict>//g" info.plist_in 
sed -i .bk3 -e "s/<\/plist>//g" info.plist_in
echo "</dict>" >> info.plist_in
echo "</plist>" >> info.plist_in
cat info.plist_in > info.plist
有什么想法吗

编辑: xcrun-agvtool命令没有解决问题,这就是我编写自己脚本的原因
每个命令在语法上都是正确的,当我清楚地运行它们时,代码会执行我想要的操作

改用
PlistBuddy
()编写版本字符串:

$ /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString YourVersion" file.plist  

如果要在
plist
中自动增加内部版本号(一个好主意),请参见。

您可能需要使用
set-e
在出现第一个错误时停止脚本。您可能还希望使用
set-x
进行调试。这些错误表明您试图(有时)
cat
的文件不存在,并且您对
grep
的使用在语法上是错误的。我建议
man grep
,制作通用字符串,例如文件名、变量和使用。
$ /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString YourVersion" file.plist