Xcode 如何将swift库项目编译成.so文件?

Xcode 如何将swift库项目编译成.so文件?,xcode,swift,xcode6,Xcode,Swift,Xcode6,我不熟悉XCode和Objective C/Swift。我正在尝试做一个Swift图书馆项目,它不依赖于cocoa或任何东西。所以这只是Swift文件。我应该创建什么类型的项目(我假设有多种方法可以做到这一点?我需要如何配置项目以便将其生成为.so文件?最后,如何将其生成为.so文件 我使用的是Xcode6测试版。…我认为你的思路有点局限,或者期待着快速的飞跃。斯威夫特已经准备好使用objective c和cocoa,所以你不能完全避免cocoa,但是你不必写任何东西,编译器会为你做的。但是你仍

我不熟悉XCode和Objective C/Swift。我正在尝试做一个Swift图书馆项目,它不依赖于cocoa或任何东西。所以这只是Swift文件。我应该创建什么类型的项目(我假设有多种方法可以做到这一点?我需要如何配置项目以便将其生成为.so文件?最后,如何将其生成为.so文件


我使用的是Xcode6测试版。

…我认为你的思路有点局限,或者期待着快速的飞跃。斯威夫特已经准备好使用objective c和cocoa,所以你不能完全避免cocoa,但是你不必写任何东西,编译器会为你做的。但是你仍然需要使用cocoa frameworks或类似于foundation(包含许多用于程序开发的专用对象)、UIKit、CoreData等模块,但这些都不需要您编写cocoa。如果我没有弄错的话,那么.so文件是在编译时生成的,因此您实际上从未接触过该文件,而是支持文件。swift

去做

如果您希望以编程方式完成所有工作,或者如果您希望xib或故事板只是创建一个新项目,我更喜欢空项目。(将编程语言设置为swift,并决定是否需要核心数据或不完成项目向导,然后bam您有一个YourAppDelegate.swift。您可以制作另一个.swift文件或故事板,希望您知道从那里可以做什么。ibooks上免费提供了一本写得很好的swift书


虽然cocoa和swift完全分开还需要一段时间……如果有,您可以创建一个新的Xcode项目,选择iOS/OS X->Framework&library->cocoa Touch Framework,然后在下一个屏幕上将语言设置为swift,为iOS创建一个swift库

一旦创建了这个项目,就不需要链接Cocoa框架,如果需要,可以删除对它们的任何引用

编译此项目后,Xcode将在您的生成目录中创建一个.framework文件夹,其中包含一个动态库,您应该能够对其进行链接。但是请注意,我自己还没有成功地直接链接此文件,即使它看起来是一个标准的动态库


就在Android上使用这个共享对象文件而言,我相信你会运气不佳,因为Swift语言(很像Objective-C)需要一个运行时库,而这在当时的其他平台上是不可用的。

我之前也在考虑做类似的事情,发现没有“导入基础”你几乎不能用这种语言做任何事情(一定要看一下标题!),所以我不确定“不依赖于可可”能走多远bit.我很想知道人们的尝试是否会更进一步。我的目标不是在osx或ios应用程序上使用它。我的目标是使用它构建一个共享库/核心应用程序,可以在ios和Android之间共享(通过Android NDK)。此库将没有UI组件。语言功能不应依赖于Cocoa。我应该能够编译一段不需要Cocoa的共享代码。也许我误解了Cocoa的角色?到目前为止,我已经在Swift上阅读了iBook的1/4。它没有告诉我有关编译的任何信息。我只是尝试编译一个.so文件看看我是否可以通过Java的JNIoh访问它。很抱歉,我的回答是完全错误的。我不确定你会怎么做,如果你只想使用基本的swift语言,听起来很合理。但是我不确定你会怎么做。因此,也许你可以选择一个.playerd文件,我不确定Java将如何访问这些值。我将继续查找很抱歉,我没法帮你在操场上捡东西,我刚试过,它有一个.swift文件和一个时间轴文件。我还编译了一个只包含swift文件和plist的应用程序,在编译过程中,它添加了一堆其他文件,swift文件被编译为.o,并且在普通对象目录中。非常有价值的信息。谢谢。我swift可能使用与objective C相同的运行时。人们已经能够将Android的objective C运行时包括在内:我可能问这个问题有点太早了。苹果尚未发布大量关于它的信息,开发者仍在试验这种语言。