【发布时间】:2021-02-15 02:46:22
【问题描述】:
我们的目标是创建一个框架来隐藏我们的内部代码并向我们的客户提供 SDK。 我们已经考虑创建满足我们要求的 XCFramework。互联网上也建议使用伞形框架,但大多建议避免这种方法。我们的框架依赖于我们通过 Pods 使用的一些第三方库。
问题:XCFramework 不编译 pods 框架。我们收到类似“未找到 Xyz(Pod) 模块”的错误。即使我们从客户端添加 pod,它也不起作用。
创建XCFramework的代码如下
1) 为 iOS 平台创建存档
xcodebuild archive -workspace ABC.xcworkspace \
-scheme ABC \
-sdk iphoneos \
-archivePath "./archives/ios_devices.xcarchive" \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
SKIP_INSTALL=NO
2) 为 iOS-Simulator 平台创建存档
xcodebuild archive -workspace ABC.xcworkspace \
-scheme ABC \
-sdk iphonesimulator \
-archivePath "./archives/ios_simulators.xcarchive" \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
SKIP_INSTALL=NO
3) 从档案中创建 XCFramework
xcodebuild -create-xcframework \
-framework ./archives/ios_devices.xcarchive/Products/Library/Frameworks/ABC.framework \
-framework ./archives/ios_simulators.xcarchive/Products/Library/Frameworks/ABC.framework \
-output build/ABC.xcframework
我们成功获得了 ABC XCFramework,但依赖项不包含在 XCFramework 中。有什么解决办法吗?或者有什么方法可以将框架搜索路径设置为客户端?或任何替代方法?
【问题讨论】:
-
下面的解决方案真的有效吗?我正在尝试类似的东西,但在使用框架时出现错误。
-
是的,创建一个 pod 对我有用@DustinPfannenstiel
-
@BhavinVaghela - 如果您在框架项目中不包含外部依赖项,编译器在尝试构建框架时不会给您一个错误吗?
-
@ShawnFrank 我已经尝试过薮猫的方式,每次我遇到一个错误,比如找不到模块(第三方)。对我有用的解决方案是创建一个 pod 并在 pod 规范中添加第三方依赖项。此外,我在构建或创建框架时没有收到错误我在添加到另一个项目时遇到了错误。
标签: ios frameworks xcodebuild xcframework