2016-12-01 40 views
0

編譯我的應用程序的發行版並將該軟件包複製到另一臺計算機進行測試。崩潰與此:嘗試在「代碼簽名無效」錯誤的另一臺計算機上運行應用程序發行版時失敗

Dyld Error Message: 
    Library not loaded: @rpath/libxxx.dylib 
    Referenced from: /Users/USER/Downloads/*/ndncon.app/Contents/MacOS/ndncon 
    Reason: no suitable image found. Did find: 
    /Users/remap/Downloads/ndncon2-testing/ndncon.app/Contents/MacOS/../Frameworks/libxxx.dylib: code signature invalid for '/Users/remap/Downloads/ndncon2-testing/ndncon.app/Contents/MacOS/../Frameworks/libxxx.dylib' 

我跑了驗證:

$ codesign -vv --deep-verify /Users/remap/Downloads/ndncon2-testing/ndncon.app 
/Users/remap/Downloads/ndncon2-testing/ndncon.app: valid on disk 
/Users/remap/Downloads/ndncon2-testing/ndncon.app: satisfies its Designated Requirement 

$ codesign -dvv /Users/remap/Downloads/ndncon2-testing/ndncon.app 
Executable=/Users/remap/Downloads/ndncon2-testing/ndncon.app/Contents/MacOS/ndncon 
Identifier=ucla.edu.ndncon 
Format=bundle with Mach-O thin (x86_64) 
CodeDirectory v=20200 size=8819 flags=0x0(none) hashes=434+3 location=embedded 
Signature size=4688 
Authority=Mac Developer: [email protected] (H79XXXX834) 
Authority=Apple Worldwide Developer Relations Certification Authority 
Authority=Apple Root CA 
Signed Time=Dec 1, 2016, 12:51:19 PM 
Info.plist entries=26 
TeamIdentifier=XXXXXXXXX 
Sealed Resources version=2 rules=12 files=44 
Internal requirements count=1 size=180 

最後,

$ sudo spctl --assess -v /Users/remap/Downloads/ndncon2-testing/ndncon.app 
/Users/remap/Downloads/ndncon2-testing/ndncon.app: accepted 
override=security disabled 

不知道爲什麼它抱怨1)內部動態圖書館和2)爲什麼它抱怨所有?

回答

3

過去幾天我們一直在處理這個問題,最後找出問題所在。雖然你沒有在問題中提到它我強烈懷疑你正在運行到這個上運行OS X Yosemite 10.10.5

的問題是,你[很可能]需要有一個SHA1哈希在你的代碼簽名在優勝美地,你只有一個sha256散列。 codeign實用程序將檢查二進制文件的部署目標[LC_VERSION_MIN_MACOSX],以檢測它是否需要包含sha1或sha256並進行適當標記。無論出於何種原因,優勝美地的「codesign -vv」在明顯失敗時都會錯誤地報告有效簽名。

值得注意的是 - 這在OS X的早期版本中不是問題,因爲直到優勝美地之前,庫簽名才被驗證。

+0

感謝您的洞察!即使我的版本是El Captain 10.11.6,我認爲這可能是問題。我會檢查這個。那麼你是如何解決它的? – peetonn

+0

重建指定較早的部署目標。一個簡單的方法可能是在較早版本的OS X上重新構建庫並複製它。 – hemancuso

+0

試圖重建爲10.10和10.9 - 沒有幫助。該庫是使用GNU autotools構建的,你知道它是否將庫與特定的macOS版本聯繫起來? – peetonn

相關問題