【发布时间】:2010-07-10 23:21:19
【问题描述】:
这个问题来自我之前问过的另一个问题:Calling custom Objective-C from a pyobjc application?
我想在运行在 OSX 上的服务器端组件中重用我 iPhone 应用程序中的一小部分应用程序逻辑。根据我在另一个问题中被告知的内容,看来我需要从这个小应用程序逻辑中为 iOS 和 OSX 编译一个“框架”。
如果我们假设我能够将这个框架中的所有代码隔离到一个没有其他非 Cocoa 依赖项的单个 .h/.m 文件对中,那么 XCode 中最简单的方法是什么为每个架构构建这个框架并避免在服务器上重复编码所有这些逻辑?
我尝试在我的 iPhone 项目中添加一个新的 OSX 框架构建目标,但这并没有走得太远,XCode 很快就退出了:
target 指定产品类型“com.apple.product-type.framework”,但“iphonesimulator”平台没有这样的产品类型
非常感谢任何帮助,因为我目前正在实施欺骗以使事情继续发展,但是当实施变得稍微不同步时,这显然会浪费时间和错误来源。
【问题讨论】:
-
我不确定我是否理解您要执行的操作。您将不得不编译您的代码两次,一次用于 OS X,一次用于 iOS;没有办法解决这个问题。为什么不能只拥有两个包含相同源文件的独立 XCode 项目?
-
嗨 Adam - 是的,我知道我必须为两种不同的架构(OSX / iOS)进行编译,但我只是想找到最简单的(就正在进行的开发和调试而言)方法这样做。我将尝试创建一个新的 XCode 项目,它只为 OSX 生成框架并且只包含相关文件,但我希望能够从一个 XCode 项目中完成所有这些工作。不确定这是否可行,因为不确定您是否可以指示 XCode 仅将项目文件的子集编译到特定目标中...
-
所以看起来这种方法很有效,我创建了一个单独的 XCode 项目来编译 OSX 的特定类,现在我可以使用 objc.loadBundle() 将它们加载到服务器上。感谢您的帮助!