将标准输入传递给 plistbuddy
Pass stdin to plistbuddy
我有一个脚本来显示 Info.plist .ipa 文件的内容:
myTmpDir=`mktemp -d 2>/dev/null || mktemp -d -t 'myTmpDir'`
unzip -q "" -d "${myTmpDir}";
pathToFile=${myTmpDir}/Payload/*.app/Info.plist
/usr/libexec/PlistBuddy -c "Print" ${pathToFile}
对于大文件,这可能需要一些时间才能将它们提取到临时文件夹以读取小的 Info.plist (xml) 文件。
我想知道我是否可以提取 Info.plist 文件并将其传递给 plistbuddy?我试过:
/usr/libexec/PlistBuddy -c "Print" /dev/stdin <<< \
$(unzip -qp test.ipa Payload/*.app/Info.plist)
但这会产生
Unexpected character b at line 1
Error Reading File: /dev/stdin
提取工作正常。当 运行 unzip -qp test.ipa Payload/*.app/Info.plist
我将 Info.plist 文件输出到终端:
$ unzip -qp test.ipa Payload/*.app/Info.plist
bplist00?&
!"#$%&'()*+5:;*<=>?ABCDECFGHIJKXYjmwxyIN}~N_BuildMachineOSBuild_CFBundleDevelopm...
如何将 Info.plist 的内容传递给 plistbuddy?
通常命令支持“-”作为标准输入的同义词,但此 PlistBuddy 工具不支持。
但是您仍然可以只从您的 ipa 中提取一个文件,将其保存为临时文件,然后 运行 PlistBuddy 在该文件上:
tempPlist="$(mktemp)"
unzip -qp test.ipa "Payload/*.app/Info.plist" > "$tempPlist"
/usr/libexec/PlistBuddy -c Print "$tempPlist"
rm "$tempPlist"
我按照 chepner 的建议最终得到了 plutil:
unzip -qp test.ipa Payload/*.app/Info.plist | plutil -convert xml1 -r -o - -- -
我有一个脚本来显示 Info.plist .ipa 文件的内容:
myTmpDir=`mktemp -d 2>/dev/null || mktemp -d -t 'myTmpDir'`
unzip -q "" -d "${myTmpDir}";
pathToFile=${myTmpDir}/Payload/*.app/Info.plist
/usr/libexec/PlistBuddy -c "Print" ${pathToFile}
对于大文件,这可能需要一些时间才能将它们提取到临时文件夹以读取小的 Info.plist (xml) 文件。 我想知道我是否可以提取 Info.plist 文件并将其传递给 plistbuddy?我试过:
/usr/libexec/PlistBuddy -c "Print" /dev/stdin <<< \
$(unzip -qp test.ipa Payload/*.app/Info.plist)
但这会产生
Unexpected character b at line 1
Error Reading File: /dev/stdin
提取工作正常。当 运行 unzip -qp test.ipa Payload/*.app/Info.plist
我将 Info.plist 文件输出到终端:
$ unzip -qp test.ipa Payload/*.app/Info.plist
bplist00?&
!"#$%&'()*+5:;*<=>?ABCDECFGHIJKXYjmwxyIN}~N_BuildMachineOSBuild_CFBundleDevelopm...
如何将 Info.plist 的内容传递给 plistbuddy?
通常命令支持“-”作为标准输入的同义词,但此 PlistBuddy 工具不支持。
但是您仍然可以只从您的 ipa 中提取一个文件,将其保存为临时文件,然后 运行 PlistBuddy 在该文件上:
tempPlist="$(mktemp)"
unzip -qp test.ipa "Payload/*.app/Info.plist" > "$tempPlist"
/usr/libexec/PlistBuddy -c Print "$tempPlist"
rm "$tempPlist"
我按照 chepner 的建议最终得到了 plutil:
unzip -qp test.ipa Payload/*.app/Info.plist | plutil -convert xml1 -r -o - -- -