macos - 为什么 OS X 10.9 上运行的版本 2 信封的应用程序不被 OS X 10.10 上的网守接受?

标签 macos code-signing osx-yosemite osx-gatekeeper

我们有一个 Mono Mac 应用程序,该应用程序在 AppStore 之外分发,由开发者 ID 证书签名。 Gatekeeper 在 OS X 10.9 上接受该应用程序(在 10.9.4 上测试),但在 10.10 DP 7 上无法接受。

10.10 DP 7 上一些故障排除命令的输出:

mactesters-Mac-mini:myapp 1 mactester$ spctl --assess -v ./myapp.app
./myapp.app: rejected
source=obsolete resource envelope

mactesters-Mac-mini:myapp 1 mactester$ codesign -v myapp.app
myapp.app: resource envelope is obsolete (custom omit rules)

mactesters-Mac-mini:myapp 1 mactester$ codesign -dv myapp.app/
Executable=/Volumes/myapp 1/myapp.app/Contents/MacOS/myapp.sh
Identifier=com.Company.myapp
Format=bundle with generic
CodeDirectory v=20100 size=145 flags=0x0(none) hashes=1+3 location=embedded
Signature size=8531
Timestamp=03 Sep 2014 16:55:21
Info.plist entries=32
TeamIdentifier=not set
Sealed Resources version=2 rules=5 files=813
Internal requirements count=2 size=224
mactesters-Mac-mini:myapp 1 mactester$ 

同一应用程序在 10.9 上的输出:

macadmins-iMac:myapp mactester$ spctl --assess -v ./myapp.app
./myapp.app: accepted
source=Developer ID

macadmins-iMac:myapp mactester$ codesign --verify --deep --verbose=4 ./myapp.app
./myapp.app: valid on disk
./myapp.app: satisfies its Designated Requirement

macadmins-iMac:myapp mactester$ codesign -dv myapp.app
Executable=/Volumes/myapp/myapp.app/Contents/MacOS/myapp.sh
Identifier=com.Company.myapp
Format=bundle with generic
CodeDirectory v=20100 size=145 flags=0x0(none) hashes=1+3 location=embedded
Signature size=8531
Timestamp=03 Sep 2014 16:54:50
Info.plist entries=32
TeamIdentifier=not set
Sealed Resources version=2 rules=5 files=813
Internal requirements count=2 size=224

使用的代码签名命令不包含 --resource-rules 标志:

codesign -v --force --sign 'dev id...' /Volumes/myapp/myapp.app/Contents/MonoBundle/libMonoPosixHelper.dylib
codesign -v --force --sign 'dev id...' /Volumes/myapp/myapp.app

自定义省略规则是什么意思?这个问题如何解决?

最佳答案

“自定义省略规则”错误是由于在签名期间使用 --resource-rules 标志造成的。该标志已被弃用一段时间,并且从 OSX 10.9.5 开始不再被 Gatekeeper 接受。不过,您可以安全地删除它,版本 2 签名向后兼容,甚至可以与 OSX 10.6 一起使用(我已经测试过)。

关于macos - 为什么 OS X 10.9 上运行的版本 2 信封的应用程序不被 OS X 10.10 上的网守接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25760651/

相关文章:

iphone - 加入多个 ALAC 文件。

c# - 为什么我签名的、点击一次的应用程序说它有一个未知的发布者

xcode - 在 Xcode 8 中运行单元测试会导致错误 "could not load inserted library ' .../IDEBundleInjection' 因为找不到图像”

python-2.7 - IOError : encoder jpeg not available on OS X 10. 10

macos - Mac Os 10.10 或 10.11 上的 Homebrew 不起作用

swift - 禁用所有元素的表格 View

git - Beyond Compare 4 在 OSX 上运行时失败,因为 git difftool

macos - 如何使用 osx 终端删除目录中文件夹名称为 X 的所有文件夹

Gradle uploadArchives 任务无法读取 key

ios - 快速使用选择器不起作用