error: using bridging headers with module interfaces is unsupported Command CompileSwiftSources failed with a nonzero exit code
error: using bridging headers with module interfaces is unsupported Command CompileSwiftSources failed with a nonzero exit code
我已经为我的一个静态库应用程序切换到 Xcode12
。我正在尝试进行 XCFramework 分发。 运行 生成命令后,
xcodebuild archive -scheme "MySDK" -sdk iphoneos -archivePath “./archives/ios.xcarchive” -SKIP_INSTALL=NO
当我将 Build Settings -> Build Libraries for Distribution
切换为 YES
、
时出现以下错误
<unknown>:0: error: using bridging headers with module interfaces is unsupported
Command CompileSwiftSources failed with a nonzero exit code
** ARCHIVE FAILED **
The following build commands failed:
CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
CompileSwiftSources normal armv7s com.apple.xcode.tools.swift.compiler
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
(3 failures)
This answer 有效但不幸的是创建 .xcframework
需要设置选项分布 YES
.
如何解决这个问题?
Apple 似乎不赞成桥接 header 支持模块,但是 their documentation regarding how to include C headers is missing. The information is instead found in the more detailed clang docs.
尝试从项目设置中删除桥接 header,而是创建一个 module.modulemap
文件:
module MySdk {
header "MySdk-Bridging-Header.h"
export *
}
这有一些注意事项,例如需要在您的 swift 代码中 import MySdk
并了解将公开 C 函数,但这让我克服了困难。
我通过反复试验发现的一个技巧是将此模块映射文件和 C headers 包含在框架的 Headers
文件夹中。这允许任何使用该框架的应用程序自动将 MySdk
检测为模块。
我已经为我的一个静态库应用程序切换到 Xcode12
。我正在尝试进行 XCFramework 分发。 运行 生成命令后,
xcodebuild archive -scheme "MySDK" -sdk iphoneos -archivePath “./archives/ios.xcarchive” -SKIP_INSTALL=NO
当我将 Build Settings -> Build Libraries for Distribution
切换为 YES
、
<unknown>:0: error: using bridging headers with module interfaces is unsupported
Command CompileSwiftSources failed with a nonzero exit code
** ARCHIVE FAILED **
The following build commands failed:
CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
CompileSwiftSources normal armv7s com.apple.xcode.tools.swift.compiler
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
(3 failures)
This answer 有效但不幸的是创建 .xcframework
需要设置选项分布 YES
.
如何解决这个问题?
Apple 似乎不赞成桥接 header 支持模块,但是 their documentation regarding how to include C headers is missing. The information is instead found in the more detailed clang docs.
尝试从项目设置中删除桥接 header,而是创建一个 module.modulemap
文件:
module MySdk {
header "MySdk-Bridging-Header.h"
export *
}
这有一些注意事项,例如需要在您的 swift 代码中 import MySdk
并了解将公开 C 函数,但这让我克服了困难。
我通过反复试验发现的一个技巧是将此模块映射文件和 C headers 包含在框架的 Headers
文件夹中。这允许任何使用该框架的应用程序自动将 MySdk
检测为模块。