【发布时间】:2020-04-10 00:36:24
【问题描述】:
我正面临分发已编译的 swift 框架的问题。我的框架严重依赖 libxml2 动态库。为了避免Swift module compatibility 出现问题,我设置了构建标志BUILD_LIBRARY_FOR_DISTRIBUTION = YES。
所以我使用 Xcode 11.3 Swift v5.1.3 来构建我的框架。我已将它集成到 Demo.app 项目中。正如所料,Demo.app 在 Xcode 11.3 中运行良好。
但是,我尝试在 Xcode 11.0 Swift 5.1 中构建 Demo.app 时遇到另一个错误。 我遇到了错误:
#import "libxml/HTMLparser.h"
^
/Applications/Xcode_11.0.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator13.0.sdk/usr/include/libxml2/libxml/HTMLparser.h:15:10: error: 'libxml/xmlversion.h' file not found
#include <libxml/xmlversion.h>
^
/.../DemoApp/ThirdParty/testXML.framework/Modules/testXML.swiftmodule/x86_64-apple-tvos-simulator.swiftinterface:6:8: error: could not build Objective-C module 'libxml2'
import libxml2
^
/.../DemoApp/AppDelegate.swift:11:8: error: failed to load module 'testXML'
import testXML
这里是repo with both framework and app projects。
我在同一台 Mac 上使用两个 Xcode 版本。
【问题讨论】:
-
如果新版本正常工作,能够在旧版本上构建对您来说重要吗?我误读了这个问题吗?
-
@TofuWarrior:让我重新表述一下:分发构建在与旧 Swift 版本兼容的最新 swift 版本上的二进制文件对我来说很重要。例如。使用 swift 5.1.3 构建,但与 5.0 兼容。
-
@AliaksandrB。你能解决这个问题吗?我遇到了同样的问题:(
标签: swift xcode libxml2 dylib abi