与 SPM 库一起导入另一个包

Wit*_*ski 5 xcode swift swift-package-manager

想象一下当您的App项目使用两个自定义库时的这种情况

.xcworkspace
|- App.xcodeproj
|- LibraryA.xcodeproj
|- LibraryB.xcodeproj
Run Code Online (Sandbox Code Playgroud)

由于在这种情况下我们正在使用 Xcode 框架,因此可以将以下内容添加LibraryB到头文件中:

.xcworkspace
|- App.xcodeproj
|- LibraryA.xcodeproj
|- LibraryB.xcodeproj
Run Code Online (Sandbox Code Playgroud)

现在不仅不需要LibraryA在源 od 中导入LibraryB,而且每次LibraryBApp源文件中导入时,LibraryA都会随之导入,这非常方便。

这同样适用于可以在 Xcode 框架标头中找到的默认 Foundation 导入:

#import <LibraryA/MyLibraryA.h>
Run Code Online (Sandbox Code Playgroud)

现在使用 SPM,我需要在我使用它的任何地方手动导入 Foundation。

问:在单独使用 SPM 包时是否可以达到相同的结果?

我还没有找到关于这个问题的任何资源。谢谢!

iUr*_*rii 4

要向整个包公开导入,您可以@_exported在任何 swift 文件内使用属性:

@_exported import Foundation
Run Code Online (Sandbox Code Playgroud)

有关此内容的更多信息,请参见下一次讨论:https ://forums.swift.org/t/package-manager-exported-dependency/11615