Swift 包管理器和 Xcode:保留 Xcode 设置? [英] Swift Package Manager and Xcode: Retaining Xcode Settings?
问题描述
我正在 Swift 中开发服务器并使用 Swift Package Manager.并发现在我的 Mac OS 系统上进行开发时,生成一个 Xcode 项目以使用 Xcode 作为我的 IDE 很方便(即,有时,我的包依赖项必须更新.我一直在使用 swift 包generate-xcodeproj
来做到这一点.此时我的问题出现了——我在 Xcode 中创建了一些设置.例如,我已经设置了一个 DEBUG 标志,并且我有一个 .plist 文件在副本中文件阶段.当我重新生成 Xcode 项目时,这些会丢失.似乎我不能简单地使用 swift package update
,因为有时依赖项中的文件会发生变化,而这些不会传播到 Xcode 项目.>
我想要的是一种在 Xcode 之外的文件中单独建立 Xcode 设置的方法,当我执行 swift package generate-xcodeproj
时,可以将其导入 Xcode.我还没有看到这样做的方法.
一个相关的问题是:当我执行 swift build
时,我希望使用相同的构建设置.
建议?
我无法帮助复制文件阶段
.
不过我一直在玩条件编译,就像这样:
swift package generate-xcodeproj --xcconfig-overrides Sandbox.xcconfig
沙盒.xcconfig
FLAG_SANDBOX = -DSANDBOXOTHER_SWIFT_FLAGS = $(FLAG_SANDBOX)
这将创建一个 Xcode 项目,其中定义了 SANDBOX
.
这可以在像这样的swift代码中使用
#if 沙盒打印(沙箱")#别的打印(生产")#万一
I am developing a server in Swift and using the Swift Package Manager. And find it convenient when doing my development on my Mac OS system to generate a Xcode project to use Xcode as my IDE (i.e., From time to time, my package dependencies have to be updated. I've been using swift package generate-xcodeproj
to do this. My problem comes in at this point-- I have created some settings in Xcode. E.g., I've set a DEBUG flag, and I have a .plist file that is in the Copy Files Phase. These get lost when I regenerate the Xcode project. It seems I cannot simply use swift package update
because sometimes files change in the dependencies and these don't get propagated to the Xcode project.
What I'd like is a means to separately establish Xcode settings in a file outside of Xcode, that can be imported into Xcode when I do the swift package generate-xcodeproj
. I have not seen a way to do this.
A related question is: When I do a swift build
I'd like those same build settings to be used.
Suggestions?
I can't help with Copy Files Phase
.
However I have just been toying with conditional compilation, like this:
swift package generate-xcodeproj --xcconfig-overrides Sandbox.xcconfig
Sandbox.xcconfig
FLAG_SANDBOX = -DSANDBOX
OTHER_SWIFT_FLAGS = $(FLAG_SANDBOX)
This creates an Xcode project where SANDBOX
is definded.
This can be used in swift code like this
#if SANDBOX
print("sandbox")
#else
print("production")
#endif
这篇关于Swift 包管理器和 Xcode:保留 Xcode 设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!