如何共享/分发已编译的Objective-C代码(如Java中的JAR)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何共享/分发已编译的Objective-C代码(如Java中的JAR)?相关的知识,希望对你有一定的参考价值。

我想写一些Objective-C代码进行分发。打包输出的最佳方法是什么。在Java中,您可以将代码打包在JAR文件中并进行分发。 Objective-C中的等价物是什么?

以下链接很接近,但似乎解决了我不关心的更多命名空间问题。我最关心的是设置代码以便于分发。

Objective-C equivalent of Java packages?

答案

框架几乎肯定是要走的路。关于OS X上的Frameworks的一个非常好的事情是它们可以将可执行代码,标题,元数据,图像,图标等捆绑在一个包中。此外,框架可以包含在*/Library/Frameworks/中,甚至可以包含在应用程序包中,以完全脱离任何其他应用程序对给定版本框架的依赖性。

Apple的Framework Programming Guide是开始使用框架的最佳场所。

创建框架很简单。基本上,在Xcode中,选择File> New Project ...并选择Framework,然后选择Cocoa Framework。这将设置一个带有框架目标的新项目,并在您构建时自动为您打包所有内容。

不要忘记,文档和单元测试是一件好事,特别是对于框架而言,与大多数最终用户代码相比,这些框架本身更可能被多个客户端使用。您可以向框架Xcode项目添加更多目标以记录和测试它。

既然您正在寻找示例,请查看CHDataStructures.framework(我开发的项目)和PSMTabBarControl.framework(其中包含大量额外资源)。两者都是开源的,应该提供足够的例子来推销自己的。

一个建议就是为您节省一些麻烦:除非您单击框架目标并将角色更改为“公共”(或“私有”),否则您的头文件将不会复制到构建的框架。

另一答案

您想要创建一个框架。 Xcode中有一个起点,用于创建其中一个新项目。有一些警告和陷阱,但总的来说这个过程很简单。

编辑:澄清:如果您打算将其作为FOSS分发;将其打包在一个框架中可能会有点过分;只是分发源代码可能是一个更明智和更简单的选择。但是,如果您想将源代码保留给自己或者将其与一组相关资源一起分发,那么框架肯定是个好主意。

Reddit:有关介绍,请参阅qazxsw poi

另一答案

你没有说是否适用于iPhone。在iPhone上,它需要是.sa(静态链接库) - 但我认为正态分布将由.dylib或.so

另一答案

您可以将其编译为框架或静态库(我相信.so)。

另一答案

Java程序在虚拟机的上下文中运行。 Jar包含抽象字节码,必须由VM转换为本机代码。

与C类似,Objective-C被编译为本机机器代码,例如Win .exe文件,可由操作系统直接运行。

大多数复杂程序都包含多个文件,包括DLL,图标文件等。用于分发的文件配置通常由设置实用程序处理。

以上是关于如何共享/分发已编译的Objective-C代码(如Java中的JAR)?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用objective-c在xcode中使用共享偏好? [复制]

如何在c++中,调用objective-c

如何测试共享对象/共享库是否已正确编译?

如何禁用 XCode 编译器在 Objective-C 源代码文件中定义“-DXXX”

使用预编译库PREBUILT LIBRARY

应用程序的 Objective-C Facebook 视频共享