我最近将我的Xcode
升级到了10。默认情况下,“新的构建系统”被启用。当我构建我的项目时,我发现我的更改在模拟器上不起作用。当我尝试调试此代码时,Xcode显示了正确更改的源代码,但执行的代码是旧的。
当我切换回“传统”的构建系统时,一切正常。
有没有类似的经验?
谢谢
这可能是Cocoapods的问题。因为我解锁了podfile并尝试编辑一些代码。
我最近将我的Xcode
升级到了10。默认情况下,“新的构建系统”被启用。当我构建我的项目时,我发现我的更改在模拟器上不起作用。当我尝试调试此代码时,Xcode显示了正确更改的源代码,但执行的代码是旧的。
当我切换回“传统”的构建系统时,一切正常。
有没有类似的经验?
谢谢
这可能是Cocoapods的问题。因为我解锁了podfile并尝试编辑一些代码。
在使用自定义构建位置并且存在早于 Xcode 10 生成的构建产品的项目上执行 xcodebuild clean
,Xcode 可能会报告一个错误,指出它不会删除不是由新构建系统创建的目录。(40427159)
解决方法:手动删除构建文件夹。
作为参考,这里是完整的已知问题部分;清理失败是最后一个:
已知问题:
增量构建可能无法正确对非源代码相关的更改进行代码签名,例如资源文件修改,这可能导致应用程序无法启动。(41254808)
解决方法:更改同一目标中的源文件以触发代码签名过程,或执行干净的构建。
安装Swift工具链后,Xcode不会立即检测到该工具链。(31360319)
解决方法:关闭并重新打开工作区。
新的构建系统不支持按需资源(ODR)。如果您的项目使用ODR,则可以在“文件>工作区/项目设置”中重新启用旧版构建系统。(31508570)
当在xcconfig文件中定义构建设置并使用$(inherited)或$()继承值时,构建设置编辑器显示设置的最后分配值而不是正确组合的值。(28572636)
具有不在相同构建阶段中的多个资源目录的目标可能会产生关于“重复输出文件”的错误。(39810274)
解决方法:确保所有资产目录都由目标中的同一构建阶段处理。
新的“带时间摘要构建”命令不会显示构建期间构建系统中运行的某些任务的时间。(39801746)
尚不支持自定义构建系统插件,包括Intel ICC编译器。(32795438、33286594)
解决方法:如果需要,切换到使用文件>项目/工作区设置表中的旧版构建系统。
将“复制标题”构建阶段排序在“编译源”构建阶段之后的目标可能无法构建,并发出有关构建循环的诊断。(39880168)
解决方法:在编译源构建阶段之前排列任何“复制标题”构建阶段。
在对使用位于派生数据目录之外的自定义构建位置的项目执行xcodebuild clean并且具有在Xcode 10之前生成的旧构建产品的情况下,Xcode可能会报告错误,指示它不会删除未由新构建系统创建的目录。(40427159)
解决方法:手动删除构建文件夹。
你需要做一些额外的步骤才能最终成功编译。(即使在Xcode 9上,这些额外的步骤也是必需的。)
Xcode:文件 -> 工作区设置 -> 构建系统:传统构建系统
Xcode:产品 -> 清理
尝试通过不同的模拟器类型进行编译,例如“iPhone 8”,“iPhone 8 Plus”等。(它们可能会失败或可能不会。)
按照这个步骤,希望您能解决问题。