Swift 包管理器和 Xcode:保留 Xcode 设置? [英] Swift Package Manager and Xcode: Retaining Xcode Settings?

查看:41
本文介绍了Swift 包管理器和 Xcode:保留 Xcode 设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 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 SANDBOXis definded.

This can be used in swift code like this

#if SANDBOX
    print("sandbox")
#else
    print("production")
#endif

这篇关于Swift 包管理器和 Xcode:保留 Xcode 设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆