1

Mac用アプリの開発を始めたばかりです。

現在、最新のopensslを使用してアプリケーションをエクスポートする際に問題があります。

  1. 「.a」および「.dylib」ファイルをダウンロードして作成します。
  2. XCode プロジェクトにインポートします。
  3. 私のMAC-PCで問題なく動作します。しかし、別の MAC-PC 用にアプリをエクスポートすると。なぜなら: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 へのパス

    TARGETID= otool -DX 'path to lib'/libcrypto.1.0.0.dylib NEWTARGETID=@executable_path/../Frameworks/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/../Frameworks/libssl.1.0.0.dylib install_name_tool -change ${TARGETID1} ${NEWTARGETID1} ${EXECFILE}.

私は確かにコピーファイルをフレームワークに追加し、実行検索パスをに設定します。

  1. しかし最後に、次のようにライブラリがロードされていないことを示しています。

    Dyld エラー メッセージ: ライブラリが読み込まれていません: /usr/local/ssl/lib/libcrypto.1.0.0.dylib 参照元: 'path to app'/Contents/Frameworks/libssl.1.0.0.dylib Reason: image not found

誰でも私がそれを解決するのを手伝ってくれますか?

どうもありがとう。

4

1 に答える 1

2

私は明らかにこの問題を解決しています:

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

アプリをビルドした後、結果の dylib を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

バッシュスクリプト

于 2015-04-11T16:02:06.247 に答える