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