将OpenSSL库加载到MacOS应用程序
问题描述:
我在将OpenSSL合并到我的MacOS应用程序以验证苹果收据方面遇到问题。 这是我得到:将OpenSSL库加载到MacOS应用程序
dyld: Library not loaded: /usr/local/ssl/lib/libcrypto.1.0.0.dylib
下面是我在做什么:
我使用这个脚本来编译我的OpenSSL的lib:
#!/bin/bash
OPENSSL_VERSION="1.0.1e"
curl -O -L http://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
mv openssl-$OPENSSL_VERSION openssl_i386
tar -xvzf openssl-$OPENSSL_VERSION.tar.gz
mv openssl-$OPENSSL_VERSION openssl_x86_64
cd openssl_i386
./Configure darwin-i386-cc -shared
make
cd ../
cd openssl_x86_64
./Configure darwin64-x86_64-cc -shared
make
cd ../
lipo -create openssl_i386/libcrypto.dylib openssl_x86_64/libcrypto.dylib -output libcrypto.dylib
lipo -create openssl_i386/libssl.dylib openssl_x86_64/libssl.dylib -output libssl.dylib
rm openssl-$OPENSSL_VERSION.tar.gz
这给了我libssl.dylib
和libcrypto.dylib
然后我用我的podfile运行pod install
:
target 'MyApp' do
use_frameworks!
pod 'OpenSSL', '~> 1.0'
end
然后我尝试运行我的项目只是为了获得:
dyld: Library not loaded: /usr/local/ssl/lib/libcrypto.1.0.0.dylib
Referenced from: /Users/me/Source/myApp/DerivedData/myApp/Build/Products/Debug/myApp.app/Contents/MacOS/myApp
Reason: image not found
我明白我没有添加librypto LIB还,但为什么它试图找到它在我的/usr/local/ssl/lib/
?我应该在哪里放置它?
答
谢谢您的意见,最后我解决它通过使用不同的吊舱OpenSSL-Universal
你或许应该增加一些'DYLD_PRINT_ *'调试库加载问题;请参阅['dyld(1)'手册页](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/dyld.1.html)。如果它只是*“Reason:image not found”*,则使用'install_name_tool'来更改位置。创建胖库的过程似乎有点过时。你需要确保''opensslconf.h'保存为i386和x86_64;请参阅[在OS X上构建多元OpenSSL](http://stackoverflow.com/q/25530429/608639)。 – jww
下面是一些dups:[dyld:Library not loaded ...原因:图像未加载](http://stackoverflow.com/q/17703510/608639),[install_name_tool更新可执行文件以在Mac OS X中搜索dylib] (http://stackoverflow.com/q/33991581/608639),[错误:dlopen()库未加载原因:图像未找到](http://stackoverflow.com/q/19776571/608639)等 – jww