2014-09-10 82 views
4

我们有一个Mono Mac应用程序,该应用程序在Developer Studio Id证书签名的AppStore之外分发。看门者接受关于OS应用X 10.9(上10.9.4试验),但它未能在10.10 DP 7.为什么在OS X 10.10上使用版本2信封工作在OS X 10.9上不被Gatekeeper接受?

一些故障排除的输出命令接受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:

使用不含有--resource规则标志
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 

的代码签名命令:

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

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

+0

你是否解决了这个问题?我今天偶然发现了这个问题,并且在寻找资源时遇到问题。 – 2014-09-12 18:12:03

+0

只是猜测:问题可能是非标准位置的dylib。 [技术说明2206](https://developer.apple.com/library/mac/technotes/tn2206/_index.html)列出了嵌套代码的标准位置。 – JWWalker 2014-09-13 15:38:08

+0

@JWWalker Thanx提示。一旦我们调查了这一点,我会更新帖子。 – 2014-09-15 13:45:55

回答

1

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

+0

这不提供问题的答案。要批评或要求作者澄清,在他们的帖子下留下评论 - 你总是可以评论你自己的帖子,一旦你有足够的[声誉](http://stackoverflow.com/help/whats-reputation),你会能够[评论任何帖子](http://stackoverflow.com/help/privileges/comment)。 – evanwong 2014-09-11 15:34:26

+0

由于我的信誉低,我无法在其帖子中添加评论。 – Iraklis 2014-09-11 15:44:44

+0

@lrakis感谢捐款,但这是SO政策,这就是为什么有评论特权。 – evanwong 2014-09-11 16:08:05

相关问题