swift 在xcframework中嵌入SPM包

e5nqia27  于 2023-01-16  发布在  Swift
关注(0)|答案(1)|浏览(266)

我有一个xcframework项目,它导入了一些Swift包管理器依赖项。我正在用以下命令构建这个框架,以创建一个通用的二进制文件。

xcodebuild -project Proj.xcodeproj archive -scheme Proj -sdk iphoneos -configuration Release clean build -derivedDataPath archives/device BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO ONLY_ACTIVE_ARCH=NO

xcodebuild -project Proj.xcodeproj archive -scheme Proj -sdk iphonesimulator -configuration Release clean build -derivedDataPath archives/simulator BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO ONLY_ACTIVE_ARCH=NO

xcodebuild -create-xcframework -framework archives/device/Build/Products/Release-iphoneos/Proj.framework -framework archives/simulator/Build/Products/Release-iphonesimulator/Proj.framework -output universal/Proj.xcframework

然后我将其导入到我的项目中。但是我无法解析安装在xcframework中的模块。它显示module is not found。我在这里要做的是重用捆绑的SPM包,而不将它们再次导入到最终项目中。在xcframework Build Settings中将Build libraries for Distribution设置为Yes。
当我在项目中导入SPM模块时,它自己会说“类axyz在两个中实现。将使用其中一个。未定义哪个。”这意味着SPM包似乎已导入,但无法正确链接。

wj8zmpe1

wj8zmpe11#

回答我自己的问题。在框架中的每个包导入中添加@_implementationOnly就可以了。

相关问题