我有一个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包似乎已导入,但无法正确链接。
1条答案
按热度按时间wj8zmpe11#
回答我自己的问题。在框架中的每个包导入中添加@_implementationOnly就可以了。