在Swift Package Manager上与Binary Target共享Resources.bundle包

xcitsw88  于 2023-10-15  发布在  Swift
关注(0)|答案(1)|浏览(190)

我正在尝试使用Swift包管理器为一些内部iOS应用程序分发XCFramework。这是一个第三方库,它包括:

  • 一个XCFramework
  • 一个资源.bundle文件

SPM文件编译正确,并嵌入到我的应用程序中,但当我尝试使用此框架时,它无法从此捆绑包加载资源。
Package.swift

import PackageDescription

let package = Package(
    name: "InternalZoom",
    platforms: [
        .iOS(.v12),
    ],
    products: [
        .library(
            name: "InternalZoom",
            targets: ["MobileRTC"]),
    ],
    targets: [
        .binaryTarget(name: "MobileRTC",
                      path: "MobileRTC.xcframework.zip"),
    ]
)

文件结构为:

  • iOS Zoom
  • README
  • 来源
  • 移动RTC资源
  • 一堆文件...
  • InternalZoom InternalZoom.swift MobileRTC.xcframework.zip

我认为这些资源会自动与框架捆绑在一起,但看起来它们没有,因此,当框架试图访问它们时,它会崩溃。

5t7ly7z5

5t7ly7z51#

这听起来像是您遇到了一个神秘的时刻,您的SPM包的资源不想像它们应该的那样工作。让我们一起揭开这个谜团!
首先,让我们看看你的包结构。看起来您在Package.swift文件中正确配置了所有内容。创建您的SPM包看起来像一件艺术品,一件真正的杰作!
现在,关于那些不想与软件包成为朋友的功能...有时SPM可能有点顽固,但不要担心,我们有一些提示:
请确保MobileRTC.xcframework.zip文件实际上是在指定的位置,并没有隐藏在一些秘密的角落。有时候它们就像你在房间里丢的东西。
检查资源访问权限。他们就像贵宾一样,需要特殊通道。确保SPM有钥匙打开门并访问这些资源。
检查www.example.com文件中的目录结构MobileRTC.xcframework.zip是否正确。有时文件夹组织中的错误可能会导致资源丢失。
当然,始终密切关注错误日志。他可以像一个侦探,揭示线索什么是错的。
如果你遵循这些提示,仍然有问题,不要犹豫,分享更多的细节。我来这里是为了帮助解决这个谜,让你的资源表现得像冠军!

相关问题