2014-09-10 51 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