Nic*_*ari 5 ios-frameworks ios-app-extension swift-package-manager
我的 iOS 应用程序遵循“照片扩展”模板: - 独立的“容器”应用程序 - 照片编辑扩展,通过将其嵌入到上面的应用程序中来部署。
正如 Apple 所建议的,应用程序和扩展程序共享的代码被收集在嵌入应用程序中的“核心” cocoa 框架中,并且应用程序和扩展程序都链接到该框架。
所以我的 Xcode 项目包含三个目标:
到目前为止,一切都很好。
此外,框架、应用程序和扩展依赖于我在 Github 上的两个库MyLibraryA和MyLibraryB(反过来,MyLibraryA又依赖于MyLibraryB)。
我最初使用 Carthage设置对MyLibraryA和MyLibraryB的依赖,一切正常。
然后,我决定将我的库 A 和 B 迁移到 Swift Packages。
我删除了项目和目标、框架搜索路径等中所有与 Carthage 相关的设置,以确保引用我的库的 Swift Package 版本,而不是缓存的 Carthage 版本。我还删除了 Carthage 目录(签出和构建)。
当我构建共享/嵌入式框架目标时,没有任何问题。
但是,当我尝试构建应用程序或应用程序扩展目标时,我收到一条指向共享框架 Swift 标头 (MyFramewor-Swift.h) 的错误:
// ...
@import CoreGraphics;
@import CoreImage;
@import Foundation;
@import PhotosUI;
@import UIKit;
@import MyLibraryA; <-- Module 'MyLibraryA' Not Found
// ...
Run Code Online (Sandbox Code Playgroud)
结果是:
无法构建 Objective-C 模块“MyFramework”
我知道作为二进制文件分发的框架不能依赖于 Swift 包,但是这个嵌入式框架是从源代码本地编译的,然后嵌入.
也许我可以对 Xcode 上的设置进行一些更改以使其正常工作?
我尝试在框架目标的构建设置Enable Modules (C and Objective-C)中更改为,但无济于事。No
目前,您可以在构建设置中为需要 Swift 包依赖项的模块设置Install Objective-C Compatibility Header为。No
这可能是由于“Swift Packages”是“Swift”,但对我来说仍然看起来像一个错误。
| 归档时间: |
|
| 查看次数: |
2549 次 |
| 最近记录: |