使用Swift创建一个带有外部可可pod依赖项的静态库

时间:2015-01-08 19:05:14

标签: ios swift cocoa static-libraries

我在创建一个使用外部可可豆荚库(SSZipArchive)的swift静态库时遇到了麻烦。

我收到以下错误:

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: unknown option character `X' in: -Xlinker
Usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-sacLT] [-no_warning_for_no_symbols]
Usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -dynamic [-] file [...] [-filelist listfile[,dirname]] [-arch_only arch] [-o output] [-install_name name] [-compatibility_version #] [-current_version #] [-seg1addr 0x#] [-segs_read_only_addr 0x#] [-segs_read_write_addr 0x#] [-seg_addr_table <filename>] [-seg_addr_table_filename <file_system_path>] [-all_load] [-noall_load]​

我不知道为什么会这样。

2 个答案:

答案 0 :(得分:3)

您无法创建静态Swift库。

这是一个&#39; bug&#39;但随后Apple工程师决定声明这是预期的行为。我需要自己创建静态库,而我目前正在使用它。

Xcode不支持构建包含Swift代码的静态库。

答案 1 :(得分:3)

@Aggressor对于当前的事态是正确的,但即使(当)Swift允许创建静态库,也不能这样做。绝不能将第三方库合并到静态库中。如果消费者还包括那些库(或者如果另一个静态库那样),这会在以后导致各种构建冲突。有关更多信息(以及更多信息的链接),请参阅this ObjC version of the question。如果Swift曾经支持过这个问题,那将是同样的问题。最终的可执行文件应该将所有库链接在一起。