1

FTPおよびSFTP転送を使用するCocoaアプリケーションに取り組んでいますが、これを実現するための最良の方法は、libcurlを使用することです。これで、Mac OS Xにはlibcurlがインストールされた状態で出荷されないことは間違いありません。出荷されたとしても、libsshでビルドされていない可能性があります。これも必要です。

私が頭の中で思いつくことができる唯一の解決策は、ビルド済みバージョンのlibcurlをアプリケーションに同梱することです。ある種のカスタムインストーラーを作成して、ユーザーのコンピューターでlibcurlを確認し、必要に応じてビルド済みバージョンをインストールします。私はこれで正しいですか?もっと良い方法があるようです。

...そして、カスタムインストーラー必要な場合、誰かが私に良いチュートリアルを教えてもらえますか?

4

4 に答える 4

2

これで、MacOSXにはlibcurlがインストールされた状態で出荷されないと確信しています…</p>

はい、そうです:

curl --version                                                            %~(0)
curl 7.19.4 (universal-apple-darwin10.0) libcurl/7.19.4 OpenSSL/0.9.8k zlib/1.2.3

…そしてそれが行われたとしても、おそらくlibsshで構築されていなかったでしょう。これも私が必要とするでしょう。

正解:そうではありません。

Protocols: tftp ftp telnet dict ldap http file https ftps 
Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz 

共有ライブラリを構築してアプリのFrameworksサブディレクトリにコピーするよりも、静的ライブラリとしてlibcurlを構築し、それに対してリンクする方が簡単な場合があります。

于 2009-12-27T07:48:38.387 に答える
2

install_name_toolを使用して、ダイナミックリンクライブラリの検索パスを変更できます。

@executable_pathを使用すると、アプリケーションの実行可能ファイルに相対的なパスを使用して、ライブラリをフレームワークフォルダー( "@ executeable_path /../ Frameworks / libcurl.dylib")または実行可能ディレクトリ内(例: "@ executeable_path / lib")に配置できます。 /libcurl.dylib ")。

このようにして、動的にリンクされた独自のライブラリを構築し、それらをアプリケーションバンドル内に出荷できます。

于 2009-12-27T16:14:29.723 に答える
1

OS Xがlibcurlに同梱されていないことを確認する理由は何ですか?

$ locate libcurl
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.2.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.3.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.4.0.0.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.4.dylib
/Developer/SDKs/MacOSX10.5.sdk/usr/lib/libcurl.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.2.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.3.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.4.dylib
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/libcurl.dylib

いずれにせよ、あなたがあなた自身のものを必要とするならば、あなたのバンドルにそれを入れるだけです。

于 2009-12-27T04:28:05.500 に答える
0

libcurlを使用する前に、 ConnectionKitを確認することをお勧めします。

于 2009-12-27T16:31:52.497 に答える