gpt4 book ai didi

ios - 您如何存档 Swift 包依赖项以包含在您的 XCFramework 中以作为 Swift 包进行二进制分发?

转载 作者:行者123 更新时间:2023-12-04 13:29:56 26 4
gpt4 key购买 nike

目标是为 Swift 包托管一个 git 存储库,以在 XCFramework 中以二进制形式分发专有代码。源代码依赖于其他 Swift 包。在 .package 配置中列出依赖项是不够的。简单地要求消费者导入依赖项不是一种选择,因为他们可能在不同级别使用相同的包。我试图解决的主要问题是当我的 Swift 包导入到项目中时如何解决这些依赖项。

  • 每个依赖包都应该归档并包装到 XCFramework 中,对吗?
  • 我该怎么做?

  • 我使用的包也可以在 CocoaPod 中使用。
  • 将它们作为 pod 导入以便存档会更容易吗?

  • 我已经浏览了以下资源和 SO 帖子,但找不到针对此特定目的的答案。
  • https://developer.apple.com/documentation/swift_packages/distributing_binary_frameworks_as_swift_packages
  • https://developer.apple.com/videos/play/wwdc2019/416/
  • https://medium.com/@anuragajwani/how-to-distribute-compiled-universal-ios-xcframeworks-using-swift-package-manager-8eaf8395985f
  • https://www.appcoda.com/xcframework/
  • Explicitly manage Swift Package nested dependencies required?
  • XCFramework with Pods Dependencies(解决方案是托管 pod 而不是 swift 包)
  • 最佳答案

    几个月前我遇到了同样的问题,但还没有找到合适的解决方案,所以我刚刚开始使用 Cocoapods 进行分发,并使用此脚本来归档我的框架目标,这些目标具有一些 Cocoapods 作为依赖项:

    xcodebuild archive -workspace "../workspace_name.xcworkspace" \
    -scheme %scheme_name% \
    -sdk iphonesimulator \
    -archivePath "./SdkArchives/ios_simulators.xcarchive" \
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
    SKIP_INSTALL=NO

    xcodebuild archive -workspace "../workspace_name.xcworkspace" \
    -scheme %scheme_name% \
    -sdk iphoneos \
    -archivePath "./SdkArchives/ios_devices.xcarchive" \
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
    SKIP_INSTALL=NO

    rm -rf ../DevPods/SDK/framework_name.xcframework

    xcodebuild -create-xcframework \
    -framework ./SdkArchives/ios_devices.xcarchive/Products/Library/Frameworks/framework_name.framework \
    -framework ./SdkArchives/ios_simulators.xcarchive/Products/Library/Frameworks/framework_name.framework \
    -output ../DevPods/SDK/framework_name.xcframework

    rm -rf SdkArchives
    比你可以简单地打包这个 xcframework作为在 podspeck 中使用此行的 pod:
    s.vendored_frameworks = 'framework_name.xcframework'
    s.dependency 'framework_name_dependency'
    你也可以看看这篇文章,我还没有尝试过,但看起来很有希望。
    https://kean.blog/post/xcframeworks-caveats

    关于ios - 您如何存档 Swift 包依赖项以包含在您的 XCFramework 中以作为 Swift 包进行二进制分发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65692618/

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