7

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

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

Java包的Objective-C等价物?

4

5 回答 5

7

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

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

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

不要忘记文档和单元测试是一件好事™,特别是对于框架,与大多数最终用户代码相比,它们本质上更有可能被多个客户端使用。您可以将更多目标添加到您的框架 Xcode 项目以记录和测试它。

由于您正在寻找示例,请查看CHDataStructures.framework(我开发的一个项目)和PSMTabBarControl.framework(其中包括框架中的大量额外资源)。两者都是开源的,应该提供足够的例子来滚动你自己的。

一句忠告让您省去一些麻烦:除非您单击框架目标并将角色更改为“公共”(或“私人”),否则您的头文件不会被复制到构建的框架中。

于 2009-07-13T17:51:01.703 回答
5

你想创建一个框架。Xcode 中有一个新项目的起点来创建其中之一。有一些注意事项和陷阱,但总的来说过程很简单。

编辑:澄清:如果您打算将其作为 FOSS 分发;将其打包在一个框架中可能是矫枉过正;仅仅分发源代码可能是一个更明智和更简单的选择。但是,如果您想自己保留源代码或将其与相关资源的集合一起分发,那么框架绝对是一个好主意。

重新编辑:有关介绍,请参阅http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/

于 2009-07-13T15:58:09.420 回答
1

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

于 2009-07-13T15:58:29.810 回答
0

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

于 2009-07-16T04:47:35.810 回答
-1

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

像 C 一样,Objective-C 被编译成本机机器代码,例如 Win .exe 文件,可由操作系统直接运行。

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

于 2009-07-13T16:28:30.903 回答