iPhone项目中的外部静态(.a)库

时间:2011-06-02 14:37:13

标签: iphone objective-c

在过去的几个月中,我遇到了各种外部/私人图书馆的喋喋不休的消息,不允许在iPhone应用程序中使用。[只是要明确一点,这不会发生什么事情,这是我错误的印象已经存在。]

我在看WunderRadio来源:http://www.wunderradio.com/code.html 我注意到他们在那个项目中有3个以上的.a文件。

libcCommon.a liblibmms.a和libffmpegLib.a是我正在关注的。

我是否被误导过在iPhone项目中使用这种类型的库? Apple会接受并批准使用它们的项目吗?如果是这样,那是不允许的?它只是使用苹果自己的私有和未记录的库,但你可以包括自己的?

非常感谢, -code

3 个答案:

答案 0 :(得分:3)

iOS开发一直允许使用静态库,没有任何迹象表明位置会随时改变(为什么会这样?)。不允许使用动态库,这会导致拒绝您的应用。

答案 1 :(得分:0)

我认为他们这样做会很疯狂。

有很多第三方图书馆,它几乎会杀死他们现在拥有的开发人员。想象一下,如果你必须从头开始编写每个库?那太难了......

当然,我没有这种或那种证据。我只是认为他们试图这样做是疯了。

答案 2 :(得分:0)

.a文件称为静态库。在构建代码时,它们基本上是在构建时编译的。 Apple肯定允许这些。事实上,XCode在创建新项目时为“Cocoa Touch静态库”提供了模板。

另一方面,

.dylib文件是动态库,Apple不允许这样做。它们是单独的代码文件,可以由多个应用程序共享,因为它们的代码会在运行时被引入您的应用程序。

Saurik(创建Cydia的人)通过为越狱的iPhone创建Mobile Substrate解决了这个问题。它允许开发人员创建动态库,以便改变现有Apple类的功能。

希望这能解决问题。