本文主要是介绍Mac OS 10.5 shell 使用defaults read读取文件显示does not exis,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Mac OS 10.5 shell 使用defaults read读取文件显示does not exist
Snip20191014_4.png
Mac os 升级到10.15后打包tweak项目失败,原因在于执行iosod
这个sh时出错,以下方法为根据key读取plist中value:
function readDefaultsValue() # args: plistPath, propertyName
{$setCmdlocal plistPath="$1"local propertyName="$2"local valuevalue=`defaults read "${plistPath%.*}" "$propertyName"` || \panic $? "Failed to read defaults property $propertyName from $plistPath"# return #echo "$value"
}function getVersionFromVersionPList() # args: plistPath
{$setCmdlocal plistPath="$1"local versionlocal majorlocal minorlocal bugFixlocal stagelocal pkgRevmajor=`readDefaultsValue "$plistPath" "Major"`minor=`readDefaultsValue "$plistPath" "Minor"`bugFix=`readDefaultsValue "$plistPath" "BugFix"`stage=`readDefaultsValue "$plistPath" "Stage"`pkgRev=`readDefaultsValue "$plistPath" "PackageRevision"`version="$major.$minor"[[ "$bugFix" == "" ]] || version+=".$bugFix"[[ "$stage" == "" ]] || version+="$stage"[[ "$pkgRev" == "" ]] || version+="-$pkgRev"# return #echo "$version"
}
上面的方法作用在于读取PackageVersion.plist
中的key和value,等同于,在终端中读取plist文件
swae@swaedeMacBook-Pro ~ % defaults read /Users/swae/Desktop/work/Tweak/tweakpro/tsprite/tsprite/PackageVersion.plist Major
2019-10-14 23:04:42.792 defaults[7909:308363]
The domain/default pair of (/Users/swae/Desktop/work/Tweak/tweakpro/tsprite/tsprite/PackageVersion.plist, Major) does not exist
从上面的输出可以看出,读取这个plist文件不存在,而经过我的验证使用defaults read
读取大部分的plist文件都显示does not exist
,但是当我使用defaults write 时
,却显示exiting
无法写入,尴尬,下面为输入:
swae@swaedeMacBook-Pro ~ % defaults write /Users/swae/Desktop/work/Tweak/tweakpro/tsprite/tsprite/PackageVersion.plist Major1 200
2019-10-14 23:08:47.076 defaults[7976:310697] Could not write domain /Users/swae/Desktop/work/Tweak/tweakpro/tsprite/tsprite/PackageVersion.plist; exiting
无奈中,我尝试使用defaults write
写入一个新的plist
文件,然后再使用defaults read
读取却是正常的:
swae@swaedeMacBook-Pro ~ % defaults write /Users/swae/Desktop/work/Tweak/tweakpro/tsprite/tsprite/PackageVersion1.plist method 1000
swae@swaedeMacBook-Pro ~ % defaults read /Users/swae/Desktop/work/Tweak/tweakpro/tsprite/tsprite/PackageVersion1.plist method
1000
以上是我在Mac os 10.15
上实际操作得到的结果,我把锅甩给了新系统,但是当我在Mac os 10.14.6
的终端上操作时,依旧是以上结果,目前还不清楚原因,待近一步排查。
下面两张图为了说明这两个plist的不同
无法通过defaults_read打开的plist.png
通过defaluts_write创建的plist,可以通过defaults read 读取key。
Snip20191014_3.png
无法通过defaults_read打开的plist
最终我使用新建的PackageVersion1 .plist
替换调旧的,重新执行build for->profiling,问题暂时解决:
Snip20191014_6.png
作者:多网
链接:https://www.jianshu.com/p/a933e25a7c91
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇关于Mac OS 10.5 shell 使用defaults read读取文件显示does not exis的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!