编译了我的应用程序的发行版本,并将捆绑包复制到另一台计算机进行测试。与此崩溃:
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: g....n@gmail.com (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)为什么它完全抱怨?
过去几天我们一直在处理这个问题,最后弄清楚了这个问题。尽管您在问题中没有提及它,但我强烈怀疑您是否在OS X Yosemite 10.10.5
上遇到了这一点。问题是,您[很可能]需要在Yosemite上的代码签名中具有SHA1哈希,而您只有SHA256哈希。CodeSign实用程序检查二进制的部署目标[LC_VERSION_MIN_MACOSX]检测是否需要包括SHA1或SHA256并适当签名。无论出于何种原因,优胜美地上的" codesign -vv"显然是错误地报告有效的签名。
of Note-这不是OS X的较早版本的问题,因为库签名直到YoSemite才验证。