依赖于Swift包的Swift嵌入式框架

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

我的iOS应用遵循“照片扩展”模板:-独立的“容器”应用-照片编辑扩展程序,可以通过将其嵌入上面的应用程序中进行部署。

根据Apple的建议,应用程序和扩展名均由[[shared所包含的代码”收集在应用程序中嵌入的“核心” cocoa框架中,并且应用程序和扩展名已链接。

所以我的Xcode项目包含

三个目标

    << [Framework
目标,
  • 照片编辑扩展名目标,该目标链接到框架但没有嵌入,并且
  • App目标,它嵌入了扩展二进制文件和框架二进制文件,并链接到两者。
  • 到目前为止,很好。

    此外,框架,应用程序和扩展取决于我在Github上拥有的两个库


    MyLibraryA

    MyLibraryB(而MyLibraryA取决于MyLibraryB) 。

    我最初使用迦太基在MyLibraryA

    MyLibraryB

    上设置了依赖项,并且一切正常
    然后,我决定将库A和B迁移到Swift软件包。

    我删除了项目和目标,框架搜索路径等中所有与迦太基相关的设置,以确保引用了我的库的Swift Package版本,而不是引用了缓存的迦太基版本。我还删除了迦太基目录(签出构建)。

    问题当我建立共享/嵌入式

    Framework

    目标时,没有问题。

    但是当我尝试构建App

    App Extension

    目标时,出现了指向共享框架Swift标头(MyFramewor-Swift.h)的错误:// ... @import CoreGraphics; @import CoreImage; @import Foundation; @import PhotosUI; @import UIKit; @import MyLibraryA; <-- Module 'MyLibraryA' Not Found // ... 以及结果:

    无法构建Objective-C模块'MyFramework'

    我知道

    作为二进制文件分发的框架不能依赖Swift包,但是此嵌入式框架是从源代码

    然后嵌入 然后本地编译的。

    也许我可以对Xcode上的设置进行一些更改以使其正常工作?

    我尝试将Framework目标的Build Settings中的Enable Modules (C and Objective-C)更改为No,但无济于事。

  • ios-app-extension ios-frameworks swift-package-manager
    1个回答
    0
    投票
    这可能是由于“ Swift软件包”为“ Swift”,但仍然看起来像是个错误。
    © www.soinside.com 2019 - 2024. All rights reserved.