执行xcrun simctl list报DVTAssertions错误无法展示模拟器列表
问题描述
我在尝试运行xcrun相关命令时出现如下错误,无法成功展示模拟器列表:
xcrun: error: unable to find utility "simctl", not a developer tool or in PATH
本机simctl实际存在于如下路径:
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
运行以下命令时:xcrun --find simctlxcrun simctl list
均出现如下报错:
2021-12-06 15:06:27.787 xcodebuild[10591:373217] [MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-18132/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/Foundation/Specifications/XCSpecification.m:1504 Details: propertyList should be an instance inheriting from TSPropertyListDictionary, but it is nil Object: <XCSpecificationProxy: 0x7fef67ca5540> Method: -loadedSpecification Thread: <NSThread: 0x7fef67f07d80>{number = 1, name = main} Hints: Backtrace: 0 -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation) 1 _DVTAssertionHandler (in DVTFoundation) 2 _DVTAssertionFailureHandler (in DVTFoundation) 3 -[XCSpecificationProxy loadedSpecification] (in DevToolsCore) 4 +[XCSpecification specificationForIdentifier:inDomain:] (in DevToolsCore) 5 -[XCCommandLineToolSpecification_FileTypeAcceptanceInfo initWithPropertyListDictionary:forToolSpecification:] (in DevToolsCore) 6 -[XCCommandLineToolSpecification_FileTypeAcceptanceInfo initWithFileTypeIdentifier:forToolSpecification:] (in DevToolsCore) 7 -[XCCommandLineToolSpecification initWithPropertyListDictionary:inDomain:] (in DevToolsCore) 8 -[XCCompilerSpecification initWithPropertyListDictionary:inDomain:] (in DevToolsCore) 9 -[PBXCompilerSpecificationGcc initWithPropertyListDictionary:inDomain:] (in DevToolsCore) 10 -[PBXCompilerSpecificationGcc3_1 initWithPropertyListDictionary:inDomain:] (in DevToolsCore) 11 -[XCSpecificationProxy loadedSpecification] (in DevToolsCore) 12 +[XCSpecification specificationForIdentifier:inDomain:] (in DevToolsCore) 13 -[XCSpecificationProxy loadedSpecification] (in DevToolsCore) 14 +[XCSpecification specificationForIdentifier:inDomain:] (in DevToolsCore) 15 -[XCSpecificationProxy loadedSpecification] (in DevToolsCore) 16 +[XCSpecification specificationForIdentifier:inDomain:] (in DevToolsCore) 17 -[XCSpecificationProxy loadedSpecification] (in DevToolsCore) 18 __58-[XCSDKPackage createCommandLineToolSpecificationRegistry]_block_invoke (in DevToolsCore) 19 __79+[XCSpecification enumerateSpecificationsInDomain:includingDefault:usingBlock:]_block_invoke (in DevToolsCore) 20 __202+[XCSpecification _recursivelyEnumerateSpecificationsInStartDomain:currentDomain:registryNameOrNil:specificationIdentifierOrNil:alreadyEnumeratedDomains:alreadyEnumeratedIdentifiers:stopPtr:usingBlock:]_block_invoke (in DevToolsCore) 21 __202+[XCSpecification _recursivelyEnumerateSpecificationsInStartDomain:currentDomain:registryNameOrNil:specificationIdentifierOrNil:alreadyEnumeratedDomains:alreadyEnumeratedIdentifiers:stopPtr:usingBlock:]_block_invoke_2 (in DevToolsCore) 22 __NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__ (in CoreFoundation) 23 -[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:] (in CoreFoundation) 24 __202+[XCSpecification _recursivelyEnumerateSpecificationsInStartDomain:currentDomain:registryNameOrNil:specificationIdentifierOrNil:alreadyEnumeratedDomains:alreadyEnumeratedIdentifiers:stopPtr:usingBlock:]_block_invoke.55 (in DevToolsCore) 25 +[XCSpecification _recursivelyEnumerateSpecificationsInStartDomain:currentDomain:registryNameOrNil:specificationIdentifierOrNil:alreadyEnumeratedDomains:alreadyEnumeratedIdentifiers:stopPtr:usingBlock:] (in DevToolsCore) 26 +[XCSpecification _enumerateAllSpecificationsInDomain:registryNameOrNil:specificationIdentifierOrNil:includingDefault:usingBlock:] (in DevToolsCore) 27 +[XCSpecification enumerateSpecificationsInDomain:includingDefault:usingBlock:] (in DevToolsCore) 28 -[XCSDKPackage createCommandLineToolSpecificationRegistry] (in DevToolsCore) 29 -[XCPlatformSpecification loadSpecificationsAndPlugins] (in DevToolsCore) 30 +[XCPlatformSpecification loadAllPlatforms] (in DevToolsCore) 31 XCInitializeCoreIfNeeded (in DevToolsCore) 32 +[Xcode3CoreInitializer ide_initializeWithOptions:error:] (in Xcode3Core) 33 _IDEInitializeBuildSystem (in IDEFoundation) 34 IDEInitialize (in IDEFoundation) 35 -[Xcode3CommandLineBuildTool run] (in Xcode3Core) 36 main (in xcodebuild) 37 start (in libdyld.dylib) sh: line 1: 10593 Abort trap: 6 /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find simctl 2> /dev/null xcrun: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find simctl 2> /dev/null' failed with exit code 34304: (null) (errno=Invalid argument) xcrun: error: unable to find utility "simctl", not a developer tool or in PATH
解决方案
该报错由两个原因导致:一是Xcode命令行工具默认指向错误,二是Xcode本地缓存的组件配置文件损坏,按以下步骤修复即可:
- 修正命令行工具指向
执行以下命令将xcode-select的默认路径配置为Xcode.app内部的开发者目录:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
执行时输入本机管理员密码完成权限验证。
2. 重置Xcode组件缓存
执行以下命令删除损坏的本地缓存配置:
defaults delete com.apple.dt.Xcode
执行完成后打开一次Xcode,等待组件加载完毕后再关闭。
3. 验证修复效果
重新执行之前的命令即可正常返回结果:
xcrun --find simctl xcrun simctl list
如果只是临时需要调用simctl,也可以直接使用全路径执行,无需修复全局配置:
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl list
内容的提问来源于stack exchange,提问作者sejn
相关产品推荐
相关产品推荐

