views:

1589

answers:

6

I would like to use libCurl in an app for communicating with web services, and unfortunately it is not included int he iPhone SDK. Now I've figured out how to include Curl as a static library in my app, however, I'm wondering if this will get my app rejected with Apple. Has anyone included Curl in an app and had it approved by Apple?

Thankyou.

EDIT: Guess I should have been more clear, I was wondering if anyone had actually done this, because I am unsure whether the Curl SDK contains undocumented functionality.

+5  A: 

It would appear from the curl license (http://curl.haxx.se/docs/copyright.html) that using it within an iPhone application is completely permissible because there are basically no restrictions specified in the license.

There is some debate about whether Apple's distribution restrictions preclude use of GPL software in your app, but curl is not GPL licensed.

I am not a lawyer, you should probably checked with one just to be sure. Isn't software development fun!

Jack Cox
I guess I should have been more clear, I was wondering if someone had used it in an App because I am unsure whether or not the Curl library utilizes "undocumented" sdk functionality.
Maniacdev
+1  A: 

As libcurl is MIT licensed I don't foresee any license issues when linking it statically.

Edit: If your application is GPL licensed, some configurations of libcurl can't be linked and distributed legally.

rpetrich
A: 

I don't believe Apple cares about what libraries you use within your application so long as they are statically linked. I mean why would they care if you were violating a license agreement (which I don't think you are) on someone else's IP?

Lounges
+1  A: 

I use the NSURLConnection and the related classes to talk to web services in my application. I have read (but have no first hand experience) that code that uses standard sockets interfaces can have problems with the sockets going away when the phone goes to sleep, and not coming back on wakeup. It might be easier to skip using Curl altogether.

Mark Bessey
Yep.. I just used the NS classes.. the reason I wanted to use Curl was just to use some legacy code.
Maniacdev
+1  A: 

I think you can. If you need to cross-compile libcurl, go visit my tutorial: http://sites.google.com/site/olipion/cross-compilation/libcurl

I show how to cross-compile it with libssh2 support.

Regards, Olipion.

A: 

I think its more an issue of what you do with it, since curl can be used to do a lot of things that may "toe the line" as far as legality (such as bots) some things done with curl are best not put into applications that are distributed / sold to 3rd parties, but if you're just doing stuff thats plainly allowed, such as connecting to an API, I don't see why it would be an issue, and I don't think Apple would get involved either way other than disapproving your app if they thought you stepped over the lines, but they wouldn't be directly affected by it so its unlikely they would do anything more than that.

Rick