使用CocoaPods创建XCFramework时出错

问题描述 投票:0回答:1

我正在尝试从 Xcode 框架项目(项目名称 XCFramework)生成 iOS XCFramework。项目由一些 cocoa-pods 库组成,如 Socket IO、SwiftKeyChainWrapper 等。如果我在没有 cocoa-pods 的情况下生成 XCFramework,xcodebuild 命令会为 iOS 和 iOS Simulator 目标成功生成 XCFramework,但是当我在框架项目中安装 pod 时我收到很多错误。如果有人遇到过这种情况并成功使用 cocoa-pods 生成 XCFramework 示例项目,那将会非常有帮助。

注意:a)我使用了一个名为 xcframework 的小包,它在命令(1)中生成 xcfremwork b) 如果我直接从 Xcode 归档项目,归档就会成功。

1)Buid命令:- xcframework build --project XCFramework.xcodeproj --name XCFramework --iOS EcallXCFramework

…… ...... ** 存档失败 **

以下构建命令失败: ld /Users/********/Library/Developer/Xcode/DerivedData/XCFramework-gccrcnyzlsezmugkrqqlnpusjfci/Build/Intermediates.noindex/ArchiveIntermediates/XCFramework/InstallationBuildProductsLocation/Library/Frameworks/XCFramework.framework/XCFramework 正常arm64 (1 次失败)

2)构建命令:- xcodebuild archive -scheme XCFramework -destination="generic/platform=iOS" -destination="generic/platform=iOS Simulator" SKIP_INSTALL=NO

…… ………… 命令行中的用户默认值: 目的地=通用/平台=iOS模拟器

从命令行构建设置: 跳过安装=否

xcodebuild:错误:无法使用方案 XCFramework 构建项目 EcallXCFramework。 原因:运行目标 My Mac 对于存档方案“XCFramework”无效。

3) 构建命令:- xcodebuild 存档 …… …… ld:找不到框架 SwiftKeychainWrapper clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

** 存档失败 **

以下构建命令失败: ld /tmp/EcallXCFramework.dst/Library/Frameworks/EcallXCFramework.framework/EcallXCFramework 正常arm64 (1 次失败)

ios cocoapods xcode11 arm64 xcframework
1个回答
0
投票

我认为您的存档命令可能有问题。

这就是我存档的方式,希望对您和其他人有帮助:

// Generate simulator archive
xcodebuild archive \
  -scheme <scheme_name> \
  -sdk iphonesimulator \
  -archivePath "archives/ios_simulators.xcarchive" \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
  SKIP_INSTALL=NO
 
// Generate device archive
xcodebuild archive \
  -scheme <scheme_name> \
  -sdk iphoneos \
  -archivePath "archives/ios_devices.xcarchive" \
  BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
  SKIP_INSTALL=NO
 
// XCFramework generation
xcodebuild -create-xcframework \
    -framework <absolute_path>/archives/ios_devices.xcarchive/Products/Library/Frameworks/<scheme_name>.framework \
    -debug-symbols <absolute_path>/archives/ios_devices.xcarchive/dSYMs/<scheme_name>.framework.dSYM \
    -framework <absolute_path>/archives/ios_simulators.xcarchive/Products/Library/Frameworks/<scheme_name>.framework \
    -debug-symbols <absolute_path>/archives/ios_simulators.xcarchive/dSYMs/<scheme_name>.framework.dSYM \
  -output build/<scheme_name>.xcframework
© www.soinside.com 2019 - 2024. All rights reserved.