在Xcode 10.2中,我无法再在启用了线程清理程序的模拟器上运行我的应用程序。我得到了错误
目前无法安装此应用。
WatchKit v3应用禁止使用Info.plist密钥:NSBuiltWithThreadSanitizer
我的应用程序包括一个监视应用程序和许多框架(一些用于监视,一些用于iOS),但是在尝试在模拟器上运行 main 应用程序时出现此错误。我检查了plist文件,并确认这不是我在任何地方指定的密钥。
当我检查DerivedData中的plist文件时,我发现确实我的watch OS框架的所有复制人都具有此密钥。但是,我发现删除该标志的唯一方法是完全禁用线程清理器 。如何只为手表而不是我的主应用禁用它?
答案 0 :(得分:1)
根据您的用例,另一种解决方法是暂时从主应用程序中删除监视目标:Prevent deploying (disable) WatchKit App with iOS iPhone App in Xcode(从“项目文件”设置,构建阶段->目标依赖项和构建阶段->嵌入中删除)观看内容)
在调试会话后,您可以使用版本控制快速恢复此功能。
答案 1 :(得分:0)
在Mac OS Catalina上运行的Xcode 11 beta中,此问题似乎已经消失。这表明它是苹果方面的一个错误,因此希望我们会看到带有修复程序的Xcode 10更新。
答案 2 :(得分:-2)
这是一种解决方法:单击“编辑方案...”(在Xcode的顶部;单击您的应用程序图标),然后打开“诊断”选项卡,并禁用“线程清理程序”。