我想编写一些用于分发的 Objective-C 代码。打包输出的最佳方法是什么。在 Java 中,您可以将代码打包到 JAR 文件中并分发。Objective-C 中的等价物是什么?
以下链接已关闭,但似乎解决了我不关心的更多命名空间问题。我最关心的是设置代码以便于分发。
我想编写一些用于分发的 Objective-C 代码。打包输出的最佳方法是什么。在 Java 中,您可以将代码打包到 JAR 文件中并分发。Objective-C 中的等价物是什么?
以下链接已关闭,但似乎解决了我不关心的更多命名空间问题。我最关心的是设置代码以便于分发。
框架几乎可以肯定是要走的路。OS X 上的框架的一大优点是它们可以将可执行代码、标头、元数据、图像、图标等捆绑在一个包中。此外,框架可以包含在应用程序包中*/Library/Frameworks/
,甚至可以包含在应用程序包中,以完全脱离任何其他应用程序对给定框架版本的依赖关系。
Apple 的Framework Programming Guide是开始使用框架的最佳场所。
创建框架很简单。基本上,在 Xcode 中,您选择File > New Project...并选择 Framework,然后选择 Cocoa Framework。这将建立一个带有框架目标的新项目,并在您构建时自动为您打包所有内容。
不要忘记文档和单元测试是一件好事™,特别是对于框架,与大多数最终用户代码相比,它们本质上更有可能被多个客户端使用。您可以将更多目标添加到您的框架 Xcode 项目以记录和测试它。
由于您正在寻找示例,请查看CHDataStructures.framework(我开发的一个项目)和PSMTabBarControl.framework(其中包括框架中的大量额外资源)。两者都是开源的,应该提供足够的例子来滚动你自己的。
一句忠告让您省去一些麻烦:除非您单击框架目标并将角色更改为“公共”(或“私人”),否则您的头文件不会被复制到构建的框架中。
你想创建一个框架。Xcode 中有一个新项目的起点来创建其中之一。有一些注意事项和陷阱,但总的来说过程很简单。
编辑:澄清:如果您打算将其作为 FOSS 分发;将其打包在一个框架中可能是矫枉过正;仅仅分发源代码可能是一个更明智和更简单的选择。但是,如果您想自己保留源代码或将其与相关资源的集合一起分发,那么框架绝对是一个好主意。
重新编辑:有关介绍,请参阅http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/
你没有说它是否适用于iPhone。在 iPhone 上,它需要是一个 .sa(静态链接库)——但我认为正常分布应该是 .dylib 或 .so
您可以将其编译为框架或静态库(我相信)。
Java 程序在虚拟机的上下文中运行。Jar 包含抽象字节码,VM 必须将其转换为本机机器码。
像 C 一样,Objective-C 被编译成本机机器代码,例如 Win .exe 文件,可由操作系统直接运行。
大多数任何复杂的程序都包含多个文件,包括 DLL、图标文件等。用于分发的文件的配置通常由设置实用程序处理。