我们的目标是创建一个隐藏我们内部代码的框架,并为我们的客户提供 SDK。我们已经考虑创建满足我们要求的 XCFramework。互联网上也建议使用 Umbrella 框架,但主要建议避免这种方法。我们的框架依赖于我们通过 Pod 使用的一些第三方库。
问题: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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我们成功获得了 ABC XCFramework,但 XCFramework 中不包含依赖项。有什么解决办法吗?或者有什么方法可以将框架搜索路径设置为客户端?或任何替代方法?