macos - codesign 在哪里存储 OSX 上已签名文本文件的签名?

标签 macos code-signing codesign code-signing-certificate

我有一个具有以下结构的简单应用程序包:

myapp.app/Contents/
myapp.app/Contents/MacOS/myapp
myapp.app/Contents/Resources/empty.lproj
myapp.app/Contents/Info.plist
myapp.app/Contents/PkgInfo

如果我执行

codesign -s "Developer ID" myapp.app/Contents/Info.plist

我可以检查文件是否已签名

codesign -d -v myapp.app/Contents/Info.plist

给出以下输出

Executable=/pathToApp/quicknanobrowser.app/Contents/Info.plist
Identifier=Info
Format=generic
CodeDirectory v=20100 size=113 flags=0x0(none) hashes=1+2 location=embedded
Signature size=1278
Signed Time=26 Jan 2016 12:31:24
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=80

文件签名的数据存储在哪里?文件夹结构没有改变(没有新文件),文件的大小没有改变。它是否存储在某些文件系统特定的元数据中?是否可以访问/读取此元数据?

最佳答案

对于非 mach-o 二进制文件,codesign 将签名存储在称为 HFS+ 扩展属性的每个文件元数据中:

ls -l@ Info.plist

com.apple.cs.CodeDirectory  142 
com.apple.cs.CodeRequirements   180 
com.apple.cs.CodeSignature  8551 

可以通过xattr查看这些属性的内容

xattr -p com.apple.cs.CodeSignature Info.plist

但该工具似乎喜欢以十六进制转储。似乎没有用于访问属性的 shell 简写,尽管您过去可以通过将 /rsrc 附加到文件名(例如 cat blah/rsrc).

关于macos - codesign 在哪里存储 OSX 上已签名文本文件的签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35013006/

相关文章:

MacOS 照片 - 使用 applescript 更新关键字及其所在相册的名称

xcode -/usr/include/mach-o/loader.h 从哪里来?

linux - 使用 VPN 连接仅路由特定 IP 范围

ios - 来自 Xamarin Studio 的 "The codesign tool could not be found"

objective-c - objective-c - 你如何使用 Mac OSX lion 中的恢复功能

windows - 我的 Windows 应用程序是否需要使用受信任的证书进行签名?

blackberry - 如何为代码签名安装 .CSI 文件并将应用程序加载到黑莓?

ios - 退出应用商店导出带有开发证书的 IPA

ios - 创建没有代码签名的 iOS 应用程序,卡住安装应用程序

macos - 协同设计输出未打印到文件