自定义cocoa安装程序和应用程序依赖项

自定义cocoa安装程序和应用程序依赖项,cocoa,installation,libcurl,Cocoa,Installation,Libcurl,我正在开发一个使用FTP和SFTP传输的Cocoa应用程序,我发现实现这一点的最好方法是使用。现在我很确定MacOSX没有安装libcurl,即使安装了libcurl,它也很可能不是用libssh构建的,这也是我需要的 我脑海中唯一能想到的解决方案就是用预构建版本的libcurl发布我的应用程序。创建某种自定义安装程序来检查用户计算机上的libcurl,必要时安装预构建版本。我说的对吗?似乎有更好的办法 …如果我需要一个自定义安装程序,有人能给我一个好的教程吗?是什么让你确信OS X没有随lib

我正在开发一个使用FTP和SFTP传输的Cocoa应用程序,我发现实现这一点的最好方法是使用。现在我很确定MacOSX没有安装libcurl,即使安装了libcurl,它也很可能不是用libssh构建的,这也是我需要的

我脑海中唯一能想到的解决方案就是用预构建版本的libcurl发布我的应用程序。创建某种自定义安装程序来检查用户计算机上的libcurl,必要时安装预构建版本。我说的对吗?似乎有更好的办法


…如果我需要一个自定义安装程序,有人能给我一个好的教程吗?

是什么让你确信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

不管怎样,如果你需要自己的,就把它放在你的包里

是什么让你确信OSX没有附带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
不管怎样,如果你需要自己的,就把它放在你的包里

现在我很确定MacOSX没有安装libcurl

是的,它有:

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 
您可能会发现,将libcurl构建为一个静态库并与之链接比构建一个共享库并将其复制到应用程序的Frameworks子目录更简单

现在我很确定MacOSX没有安装libcurl

是的,它有:

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 
您可能会发现,将libcurl构建为静态库并进行链接比构建共享库并将其复制到应用程序的Frameworks子目录更简单。

您可以使用它更改动态链接库的搜索路径

使用@executable\u path,您可以使用与应用程序可执行文件相关的路径,然后将库放在框架文件夹(“@executable\u path/./frameworks/libcurl.dylib”)或可执行目录(例如“@executable\u path/lib/libcurl.dylib”)中

通过这种方式,您可以构建自己的动态链接库,并将它们发布到应用程序包中。

您可以使用更改动态链接库的搜索路径

使用@executable\u path,您可以使用与应用程序可执行文件相关的路径,然后将库放在框架文件夹(“@executable\u path/./frameworks/libcurl.dylib”)或可执行目录(例如“@executable\u path/lib/libcurl.dylib”)中



通过这种方式,您可以构建自己的动态链接库,并将它们发布到应用程序包中。

在使用libcurl之前,您可能想看一看。

在使用libcurl之前,您可能想看一看。

好的,我想是这样的。然而,我的机器上的一个并没有构建SFTP支持。“把它放在我的包里”是什么意思?我是说把它放在你的包里。好吧,我想是的。然而,我的机器上的一个并没有构建SFTP支持。“把它放在我的包里”是什么意思?我是说把它放在你的包里。我发现ConnectionKit的FTP支持是可靠的,但是SFTP支持有很多缺陷。我很喜欢写C,到目前为止,libcurl给人留下了深刻的印象。再加上我之前的评论,ConnectionKit也明显比libcurl慢。我发现ConnectionKit的FTP支持非常可靠,但是SFTP支持非常有缺陷。我很喜欢写C,到目前为止,libcurl给人留下了深刻的印象。再加上我之前的评论,ConnectionKit也明显比libcurl慢。听起来我需要这样做。使用静态库与动态库相比是否存在缺点?此外,我也不确定如何构建或使用静态库,但静态库文件是否也必须存在于我的应用程序包中;链接编辑器将把静态库的内容集成到可执行文件中。听起来这就是我需要做的。使用静态库与动态库相比是否存在缺点?此外,我也不确定如何构建或使用静态库,但静态库文件是否也必须存在于我的应用程序包中;链接编辑器将把静态库的内容集成到您的可执行文件中。过去几天我一直在做一些关于构建静态/动态库和使用install\u name\u工具的研究。对我来说都是新概念,但我最终还是成功了。与Peter相比,我更喜欢这个解决方案,因为它允许我单独发布应用程序的更新和/或仅发布捆绑包中的动态库文件。谢谢你的帮助!你好,尼克,我有一个这样的问题,你能告诉我你是如何解决这个问题的,也许你能给我举一个使用install\u name\u工具的例子吗?谢谢,过去几天我一直在做一些关于构建静态/动态库和使用install\u name\u工具的研究。对我来说都是新概念,但我最终还是成功了。与Peter相比,我更喜欢这个解决方案,因为它允许我单独发布应用程序的更新和/或仅发布捆绑包中的动态库文件。谢谢你的帮助!你好,尼克,我有一个这样的问题,你能告诉我你是如何解决这个问题的,也许你能给我举一个使用install\u name\u工具的例子吗?非常感谢。