gpt4 book ai didi

ios - 具有 Pod 依赖项的 XCFramework

转载 作者:行者123 更新时间:2023-12-03 09:26:18 29 4
gpt4 key购买 nike

我们的目标是创建一个框架来隐藏我们的内部代码并向我们的客户提供 SDK。
我们已经考虑创建满足我们要求的 XCFramework。互联网上也建议使用伞形框架,但大多建议避免这种方法。我们的框架依赖于我们通过 Pods 使用的一些第三方库。
问题:XCFramework 不编译 pod 框架。我们收到类似“未找到 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 并发布它。
查看https://guides.cocoapods.org/making/making-a-cocoapod.html
具有 XCFramework + 第三方依赖项的示例 Podspec 文件

Pod::Spec.new do |s|  
s.name = 'XCFrameworkTest' # Name for your pod
s.version = '0.0.1'
s.summary = 'Sample Spec'
s.homepage = 'https://www.google.com'

s.author = { 'Sample' => 'sample@sample.com' }
s.license = { :type => "MIT", :text => "MIT License" }

s.platform = :ios
# change the source location
s.source = { :http => 'http://localhost:8080/XCFrameworkTest.zip' }
s.ios.deployment_target = '10.0'
s.ios.vendored_frameworks = 'XCFrameworkTest.xcframework' # Your XCFramework
s.dependency 'PromisesSwift', '1.2.8' # Third Party Dependency
end
发布 pod 后,客户可以使用 cocopods 获取我们的框架。
在客户的 Podfile 中
pod 'XCFrameworkTest' #Your pod name

关于ios - 具有 Pod 依赖项的 XCFramework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64645642/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com