使用openssl 1.0.1j导出Mac应用程序

时间:2014-12-31 10:38:56

标签: xcode dynamic embedded-resource libssl

我刚刚开始为Mac开发应用程序。

现在我使用最新的openssl导出应用程序时遇到问题。

  1. 我正在下载并制作“.a”和“.dylib”文件。
  2. 我将它导入XCode项目。
  3. 它可以在我的MAC-PC上运行。但是当我为另一台MAC-PC导出app时。 因为:bug library not loaded: /usr/local/..../libcrypto.1.0.0.dylib
  4. 我尝试使用运行脚本:

    的execfile = $ {BUILT_PRODUCTS_DIR} / $ {EXECUTABLE_PATH}

    install_name_tool -id @executable_path /../ Frameworks / libcrypto.1.0.0.dylib'lib的'路径'/ libcrypto.1.0.0.dylib install_name_tool -id @executable_path /../ Frameworks / libssl.1.0.0.dylib'lib'的路径'/ libssl.1.0.0.dylib

    目标ID = otool -DX 'path to lib'/libcrypto.1.0.0.dylib NEWTARGETID = @ executable_path /../框架/ libcrypto.1.0.0.dylib install_name_tool -change $ {TARGETID} $ {NEWTARGETID} $ {EXECFILE}

    TARGETID1 = otool -DX 'path to lib'/libssl.1.0.0.dylib NEWTARGETID1 = @ executable_path /../框架/ libssl.1.0.0.dylib install_name_tool -change $ {TARGETID1} $ {NEWTARGETID1} $ {EXECFILE}。

  5. 我当然会将复制文件添加到框架并将运行搜索路径设置为。

    1. 但最后,它仍显示库未加载,如下所示:

      Dyld错误消息:   未加载库:/usr/local/ssl/lib/libcrypto.1.0.0.dylib   引自:'app to app'/ Contents / Frameworks / libssl.1.0.0.dylib   原因:未找到图像

    2. 任何人都可以帮我解决。

      非常感谢。

1 个答案:

答案 0 :(得分:2)

我显然已经解决了这个问题:

./Configure darwin64-x86_64-cc -shared --openssldir="@rpath"

构建应用程序后,我将结果dylibs添加到 Frameworks 文件夹,并通过install_name_tool修改应用程序二进制文件:

install_name_tool -change /usr/lib/libcrypto.0.9.8.dylib\
 ../Frameworks/libcrypto.1.0.0.dylib BinaryName

install_name_tool -change /usr/lib/libssl.0.9.8.dylib\
 ../Frameworks/libssl.1.0.0.dylib BinaryName

Bash script