swift - Xcode 10 新构建系统清理问题

我最近将我的 Xcode 更新为 10。默认情况下,“新构建系统”已启用。当我构建我的项目时,我注意到我的更改不适用于模拟器。当我尝试调试此代码时,Xcode 显示正确更改的源代码,但执行的代码是旧的。

当我改回“旧版”构建系统时,一切正常。

有类似经历的 friend 吗?

谢谢

This might be an issue with Cocoapods. Because I did unlocked podfile and try to edit some codes.

最佳答案

在 Xcode 10 中,新的构建系统是默认的。更新 Xcode 10 后,您的项目将面临问题。Apple 意识到了这些问题,并在 Xcode 10 发行说明中提到了这一点。

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10

  • 在使用自定义的项目上执行 xcodebuild clean 时 在派生数据目录之外构建位置,并且该位置较旧 在 Xcode 10 之前构建产品,Xcode 可能会报错 表示不会删除新创建的目录 构建系统。 (40427159)

    解决方法:手动删除构建文件夹。


作为引用,这里是完整的已知问题部分;最后一次清理失败:

已知问题:

  • 增量构建可能无法正确地为 对项目的非源相关更改,例如资源文件 修改,这可能导致应用程序无法启动。 (41254808)

    解决方法:更改同一目标中的源文件以触发 协同设计过程,或执行干净的构建。

  • 安装 Swift 工具链后,Xcode 不会立即检测到 工具链。 (31360319)

    解决方法:关闭并重新打开工作区。

  • 新的构建系统不支持按需资源 (ODR)。如果 您的项目使用 ODR,旧的构建系统可以重新启用 文件 > 工作区/项目设置。 (31508570)

  • 当build设置在继承的 xcconfig 文件中定义时 使用 $(inherited) 或 $() 的值,build设置 编辑器显示设置的最后分配值,而不是 正确组合的值。 (28572636)

  • 具有多个不同 Assets 目录的目标 构建阶段可能会产生有关“重复输出文件”的错误。 (39810274)

    解决方法:确保所有 Assets 目录都由同一个处理 目标中的构建阶段。

  • 新的“使用时序摘要构建”命令不显示 一些任务在构建期间在构建系统中运行。 (39801746)

  • 自定义构建系统插件(包括英特尔 ICC 编译器)不是 还支持。 (32795438, 33286594)

    解决方法:如果需要,请切换到使用旧版构建系统 文件 > 项目/工作区设置表。

  • 具有复制 header 的目标构建阶段在编译源之后排序 构建阶段可能无法构建并发出有关构建的诊断信息 循环。 (39880168)

    解决方法:在编译之前安排任何 Copy Headers 构建阶段 源构建阶段。

  • 对使用自定义的项目执行 xcodebuild clean 时 在派生数据目录之外构建位置,并且该位置较旧 在 Xcode 10 之前构建产品,Xcode 可能会报错 表示不会删除新创建的目录 构建系统。 (40427159)

    解决方法:手动删除构建文件夹。

https://stackoverflow.com/questions/52497343/

相关文章:

ios - Xcode 方案更改显示名称

windows - 如何在 Windows 上使用 CMake 进行非交互式构建?

git - 仅在有更改时如何让 Jenkins git 提交?

visual-studio - 如何更改 Visual Studio 中构建命令的默认行为

java - 查看缓存 bazel 目标的编译警告

objective-c - 构建时出现多个构建命令警告-Objective C

java - 在 Maven 构建期间优化 Java 编译器?

build - 可用的构建工具(make 等)?

c# - 我的类库应该以哪个 .NET Framework 和 C# 版本为目标?

java - Gradle Application 插件的 Maven 替代(等效)