将OpenSSL库加载到MacOS应用程序

将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.dyliblibcrypto.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/?我应该在哪里放置它?

+0

你或许应该增加一些'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

+0

下面是一些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

谢谢您的意见,最后我解决它通过使用不同的吊舱OpenSSL-Universal