如何查找应用程序具有哪些权利?


28

沙盒应用程序必须声明其权利。当然,如果我不知道它声明了什么权利,那对我没有任何好处。在我不知情的情况下,拥有“核心位置”,“网络服务器”和“我的通讯簿”权利的文本编辑器可能比未装箱的应用程序差很多。

我如何查看应用程序具有哪些权利?

Answers:


35

经过更多搜索后,我找到了命令行答案:

codesign -d --entitlements :- /Applications/Whatever.app/

这将打印出一个XML plist,其值如下:

<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>

有关更多信息,请参见https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS

但是,如果有人知道更简单/更巧妙的方法,我很想听听。



在Mojave 10.14.4上,以上命令在开始处额外打印8个字节:fade7171000000fb,从而使XML无效。有什么办法可以避免这种情况或将其剥离?
luckman212

codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" 也许还有另一种解决方案,但这就是我剥离那些字节的方式。但是我认为没有必要:您可以codesign通过指向权利xml 来创建应用程序,而macOS仍然会忽略这些字节。
JayB

添加冒号以忽略这些字节:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.