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
,而且每次LibraryB
在App
源文件中导入时,LibraryA
都会随之导入,这非常方便。
这同样适用于可以在 Xcode 框架标头中找到的默认 Foundation 导入:
#import <LibraryA/MyLibraryA.h>
Run Code Online (Sandbox Code Playgroud)
现在使用 SPM,我需要在我使用它的任何地方手动导入 Foundation。
问:在单独使用 SPM 包时是否可以达到相同的结果?
我还没有找到关于这个问题的任何资源。谢谢!
要向整个包公开导入,您可以@_exported
在任何 swift 文件内使用属性:
@_exported import Foundation
Run Code Online (Sandbox Code Playgroud)
有关此内容的更多信息,请参见下一次讨论:https ://forums.swift.org/t/package-manager-exported-dependency/11615