问题描述
我一整天都在尝试为我们的移动应用运行 Detox 测试,但一直没有成功。
我使用的相关 npm 版本:
"detox": "^17.14.6","jest": "^26.6.3","jest-circus": "^26.6.3","jest-cli": "^26.6.3",
detoxrc.json
{
"testRunner": "jest","runnerConfig": "e2e/config.json","configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/Test.app","build": "xcodebuild -workspace ios/Test.xcworkspace -scheme Test -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build","type": "ios.simulator","device": {
"type": "iPhone 11 Pro"
}
}
}
}
test.e2e.js
describe('Overview',() => {
beforeEach(async () => {
await device.reloadReactNative();
});
it('should open the overviewTab',async () => {
await expect(element(by.id('overviewTab'))).toBeVisible();
});
});
超时错误:
Overview
✕ should open the overviewTab (120006 ms)
● Overview › should open the overviewTab
thrown: "Exceeded timeout of 120000 ms for a hook.
Use jest.setTimeout(newTimeout) to increase the timeout value,if this is a long-running test."
1 | describe('Overview',() => {
> 2 | beforeEach(async () => {
| ^
3 | await device.reloadReactNative();
4 | });
5 |
at test.e2e.js:2:3
at Object.<anonymous> (test.e2e.js:1:1)
当我运行 detox test --loglevel trace
时,这是整个日志:
kevin@ip-192-168-0-203 mobile-app % detox test --loglevel trace
detox[9009] INFO: [test.js] loglevel="trace" useCustomLogger=true DetoX_START_TIMESTAMP=1608416281857 reportSpecs=true jest --config e2e/config.json --testNamePattern '^((?!:android:).)*$' --maxWorkers 1 e2e
detox[9010] TRACE: [Detox.js/DetoX_CREATE] created a Detox instance with config:
{"artifactsConfig":{"rootDir":"artifacts/ios.sim.debug.2020-12-19 22-18-01Z","plugins":{"log":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"screenshot":{"enabled":true,"shouldTakeAutomaticSnapshots":false,"video":{"enabled":false,"instruments":{"enabled":false,"timeline":{"enabled":false}},"pathBuilder":{"_rootDir":"artifacts/ios.sim.debug.2020-12-19 22-18-01Z"}},"behaviorConfig":{"init":{"reinstallApp":true,"exposeGlobals":true,"launchApp":true},"cleanup":{"shutdownDevice":false}},"cliConfig":{"loglevel":"trace","useCustomLogger":"true"},"deviceConfig":{"binaryPath":"ios/build/Build/Products/Debug-iphonesimulator/Test.app","build":"xcodebuild -workspace ios/Test.xcworkspace -scheme Test -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build","type":"ios.simulator","device":{"type":"iPhone 11 Pro"}},"runnerConfig":{"testRunner":"jest","runnerConfig":"e2e/config.json","specs":"e2e"},"sessionConfig":{"autoStart":true,"server":"ws://localhost:62012","sessionId":"e836caba-d171-3480-4931-9ee02f21322b","debugSynchronization":false},"errorBuilder":{"filepath":"/Users/kevin/Projects/test/mobile-app/.detoxrc.json","contents":{"testRunner":"jest","configurations":{"ios.sim.debug":{"binaryPath":"ios/build/Build/Products/Debug-iphonesimulator/Test.app","device":{"type":"iPhone 11 Pro"}}}},"configurationName":"ios.sim.debug"}}
detox[9010] INFO: [DetoxServer.js] server listening on localhost:62012...
detox[9010] DEBUG: [AsyncWebSocket.js/WEBSOCKET_OPEN] opened web socket to: ws://localhost:62012
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"login","params":{"sessionId":"e836caba-d171-3480-4931-9ee02f21322b","role":"tester"},"messageId":0}
detox[9010] DEBUG: [DetoxServer.js/LOGIN] role=tester,sessionId=e836caba-d171-3480-4931-9ee02f21322b
detox[9010] DEBUG: [DetoxServer.js/LOGIN_SUCCESS] role=tester,sessionId=e836caba-d171-3480-4931-9ee02f21322b
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"type":"loginSuccess","messageId":0}
detox[9010] DEBUG: [exec.js/EXEC_CMD,#0] applesimutils --list --byType "iPhone 11 Pro"
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#0] [
{
"os" : {
"bundlePath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneOS.platform\/Library\/Developer\/CoreSimulator\/Profiles\/Runtimes\/iOS.simruntime","buildversion" : "18C61","runtimeRoot" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneOS.platform\/Library\/Developer\/CoreSimulator\/Profiles\/Runtimes\/iOS.simruntime\/Contents\/Resources\/RuntimeRoot","identifier" : "com.apple.CoreSimulator.SimRuntime.iOS-14-3","version" : "14.3","isAvailable" : true,"name" : "iOS 14.3"
},"dataPath" : "\/Users\/kevin\/Library\/Developer\/CoreSimulator\/Devices\/ED9068B9-5E52-404E-B689-ABA33E32E0A1\/data","logPath" : "\/Users\/kevin\/Library\/Logs\/CoreSimulator\/ED9068B9-5E52-404E-B689-ABA33E32E0A1","udid" : "ED9068B9-5E52-404E-B689-ABA33E32E0A1","deviceType" : {
"minRuntimeVersion" : 851968,"bundlePath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneOS.platform\/Library\/Developer\/CoreSimulator\/Profiles\/DeviceTypes\/iPhone 11 Pro.simdevicetype","maxRuntimeVersion" : 4294967295,"name" : "iPhone 11 Pro","identifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro","productFamily" : "iPhone"
},"deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro","state" : "Booted","name" : "iPhone 11 Pro"
}
]
detox[9010] DEBUG: [exec.js/EXEC_CMD,#1] applesimutils --list --byId ED9068B9-5E52-404E-B689-ABA33E32E0A1 --maxResults 1
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#1] [
{
"os" : {
"bundlePath" : "\/Applications\/Xcode.app\/Contents\/Developer\/Platforms\/iPhoneOS.platform\/Library\/Developer\/CoreSimulator\/Profiles\/Runtimes\/iOS.simruntime","name" : "iPhone 11 Pro"
}
]
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBootDevice({
coldBoot: false,deviceid: 'ED9068B9-5E52-404E-B689-ABA33E32E0A1',type: 'iPhone 11 Pro'
})
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeUninstallApp({
deviceid: 'ED9068B9-5E52-404E-B689-ABA33E32E0A1',bundleId: 'io.test.ios-dev'
})
detox[9010] DEBUG: [exec.js/EXEC_CMD,#2] /usr/bin/xcrun simctl uninstall ED9068B9-5E52-404E-B689-ABA33E32E0A1 io.test.ios-dev
detox[9010] DEBUG: [exec.js/EXEC_TRY,#2] Uninstalling io.test.ios-dev...
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#2]
detox[9010] DEBUG: [exec.js/EXEC_SUCCESS,#2] io.test.ios-dev uninstalled
detox[9010] DEBUG: [exec.js/EXEC_CMD,#3] /usr/bin/xcrun simctl install ED9068B9-5E52-404E-B689-ABA33E32E0A1 "/Users/kevin/Projects/test/mobile-app/ios/build/Build/Products/Debug-iphonesimulator/Test.app"
detox[9010] DEBUG: [exec.js/EXEC_TRY,#3] Installing /Users/kevin/Projects/test/mobile-app/ios/build/Build/Products/Debug-iphonesimulator/Test.app...
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#3]
detox[9010] DEBUG: [exec.js/EXEC_SUCCESS,#3] /Users/kevin/Projects/test/mobile-app/ios/build/Build/Products/Debug-iphonesimulator/Test.app installed
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeTerminateApp({
deviceid: 'ED9068B9-5E52-404E-B689-ABA33E32E0A1',#4] /usr/bin/xcrun simctl terminate ED9068B9-5E52-404E-B689-ABA33E32E0A1 io.test.ios-dev
detox[9010] DEBUG: [exec.js/EXEC_TRY,#4] Terminating io.test.ios-dev...
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#4]
detox[9010] DEBUG: [exec.js/EXEC_SUCCESS,#4] io.test.ios-dev terminated
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onTerminateApp({
deviceid: 'ED9068B9-5E52-404E-B689-ABA33E32E0A1',bundleId: 'io.test.ios-dev'
})
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforelaunchApp({
bundleId: 'io.test.ios-dev',launchArgs: {
detoxServer: 'ws://localhost:62012',detoxSessionId: 'e836caba-d171-3480-4931-9ee02f21322b'
}
})
detox[9010] DEBUG: [exec.js/EXEC_CMD,#5] SIMCTL_CHILD_DYLD_INSERT_LIBRARIES="/Users/kevin/Library/Detox/ios/1027ad4db0a05cf5e2f8569ce0a4fb6f1ac16bcb/Detox.framework/Detox" /usr/bin/xcrun simctl launch ED9068B9-5E52-404E-B689-ABA33E32E0A1 io.test.ios-dev --args -detoxServer "ws://localhost:62012" -detoxSessionId "e836caba-d171-3480-4931-9ee02f21322b" -detoxdisableHierarchyDump "YES"
detox[9010] DEBUG: [exec.js/EXEC_TRY,#5] Launching io.test.ios-dev...
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#5] io.test.ios-dev: 9047
detox[9010] DEBUG: [exec.js/EXEC_CMD,#6] /usr/bin/xcrun simctl get_app_container ED9068B9-5E52-404E-B689-ABA33E32E0A1 io.test.ios-dev
detox[9010] TRACE: [exec.js/EXEC_SUCCESS,#6] /Users/kevin/Library/Developer/CoreSimulator/Devices/ED9068B9-5E52-404E-B689-ABA33E32E0A1/data/Containers/Bundle/Application/CA9DB8EE-74C0-4BE1-9F2C-0FF3CC4D9AB0/Test.app
detox[9010] INFO: [AppleSimutils.js] io.test.ios-dev launched. To watch simulator logs,run:
/usr/bin/xcrun simctl spawn ED9068B9-5E52-404E-B689-ABA33E32E0A1 log stream --level debug --style compact --predicate 'process == "Test"'
detox[9047] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onLaunchApp({
bundleId: 'io.test.ios-dev',detoxSessionId: 'e836caba-d171-3480-4931-9ee02f21322b',detoxdisableHierarchyDump: 'YES'
},pid: 9047
})
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"isReady","params":{},"messageId":-1000}
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=tester action=isReady (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=testee not connected,cannot fw action (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] DEBUG: [DetoxServer.js/LOGIN] role=testee,sessionId=e836caba-d171-3480-4931-9ee02f21322b
detox[9010] DEBUG: [DetoxServer.js/LOGIN_SUCCESS] role=testee,sessionId=e836caba-d171-3480-4931-9ee02f21322b
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=testee action=ready (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"type":"ready","messageId":-1000}
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"waitForActive","messageId":1}
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=tester action=waitForActive (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=testee action=waitForActiveDone (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=testee action=ready (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"type":"waitForActiveDone","messageId":1}
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"type":"ready","messageId":-1000,"params":{}}
detox[9047] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onAppReady({
deviceid: 'ED9068B9-5E52-404E-B689-ABA33E32E0A1',bundleId: 'io.test.ios-dev',pid: 9047
})
detox[9010] INFO: at e2e/test.e2e.js:21:11
bafke
ROOT_DESCRIBE_BLOCK[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onRunDescribeStart({ name: 'ROOT_DESCRIBE_BLOCK' })
Overview[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onRunDescribeStart({ name: 'Overview' })
detox[9010] INFO: Overview is assigned to ED9068B9-5E52-404E-B689-ABA33E32E0A1 {"type":"iPhone 11 Pro"}
detox[9010] INFO: Overview: should open the overviewTab
detox[9010] TRACE: [Detox.js/DetoX_BEFORE_EACH] running test: "Overview should open the overviewTab"
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onTestStart({
title: 'should open the overviewTab',fullName: 'Overview should open the overviewTab',status: 'running',invocations: 1
})
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"reactNativeReload","messageId":-1000}
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=tester action=reactNativeReload (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onHookFailure({
error: 'Exceeded timeout of 120000 ms for a hook.\n' +
'Use jest.setTimeout(newTimeout) to increase the timeout value,if this is a long-running test.',hook: 'beforeEach'
})
detox[9010] TRACE: [Detox.js/DetoX_AFTER_EACH] Failed test: "Overview should open the overviewTab"
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onTestDone({
title: 'should open the overviewTab',status: 'Failed',invocations: 1,timedOut: true
})
detox[9010] WARN: [Client.js/PENDING_REQUESTS] App has not responded to the network requests below:
(id = -1000) reactNativeReload: {}
That might be the reason why the test "Overview should open the overviewTab" has timed out.
detox[9010] INFO: Overview: should open the overviewTab [FAIL]
Overview[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onRunDescribeFinish({ name: 'Overview' })
ROOT_DESCRIBE_BLOCK[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onRunDescribeFinish({ name: 'ROOT_DESCRIBE_BLOCK' })
detox[9010] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeCleanup()
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"cleanup","params":{"stopRunner":true},"messageId":-49642}
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=tester action=cleanup (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [DetoxServer.js/MESSAGE] role=testee action=cleanupDone (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"params":{},"type":"cleanupDone","messageId":-49642}
detox[9010] DEBUG: [DetoxServer.js/disCONNECT] role=tester,sessionId=e836caba-d171-3480-4931-9ee02f21322b
detox[9010] DEBUG: [DetoxServer.js/disCONNECT] role=testee,sessionId=e836caba-d171-3480-4931-9ee02f21322b
detox[9010] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=tester not connected,cannot fw action (sessionId=e836caba-d171-3480-4931-9ee02f21322b)
detox[9010] DEBUG: [DetoxServer.js/WS_CLOSE] Detox server connections terminated gracefully
FAIL e2e/test.e2e.js (133.272 s)
Overview
✕ should open the overviewTab (120006 ms)
● Overview › should open the overviewTab
thrown: "Exceeded timeout of 120000 ms for a hook.
Use jest.setTimeout(newTimeout) to increase the timeout value,if this is a long-running test."
1 | describe('Overview',() => {
> 2 | beforeEach(async () => {
| ^
3 | await device.reloadReactNative();
4 | });
5 |
at test.e2e.js:2:3
at Object.<anonymous> (test.e2e.js:1:1)
detox[9009] ERROR: [cli.js] Error: Command Failed: jest --config e2e/config.json --testNamePattern '^((?!:android:).)*$' --maxWorkers 1 e2e
编辑
我设法通过使用 Synchronization troubleshooting 中的 detox test --debug-synchronization 200
获得了更多信息,这导致了
detox[12636] INFO: [actions.js] Sync WXRunLoopIdlingResource: React Native thread is busy.
detox[12636] INFO: [actions.js] Sync dispatch Queue: com.apple.main-thread
还有一个关于调用 firebase 日志的日志没有得到满足。
当我还使用 --loglevel trace
时,我不断收到此日志:
detox[12636] INFO: [actions.js] Sync WXRunLoopIdlingResource: React Native thread is busy.
detox[12636] INFO: [actions.js] Sync dispatch Queue: com.apple.main-thread
detox[12636] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"currentStatus","messageId":15}
detox[12636] TRACE: [DetoxServer.js/MESSAGE] role=tester action=currentStatus (sessionId=d7428263-4169-e8b4-756d-cc5b3c3d0f73)
detox[12636] TRACE: [DetoxServer.js/MESSAGE] role=testee action=currentStatusResult (sessionId=d7428263-4169-e8b4-756d-cc5b3c3d0f73)
detox[12636] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"type":"currentStatusResult","params":{"state":"busy","resources":[{"name":"WXRunLoopIdlingResource","info":{"runLoop":"<CFRunLoop 0x600000c7c700 [0x7fff8002e8c0]>{wakeup port = 0x5a17,stopped = false,ignoreWakeUps = true,\ncurrent mode = (none),\ncommon modes = <CFBasicHash 0x600003e18f30 [0x7fff8002e8c0]>{type = mutable set,count = 1,\nentries =>\n\t2 : <CFString 0x7fff801ab7e8 [0x7fff8002e8c0]>{contents = \"kcfRunLoopDefaultMode\"}\n}\n,\ncommon mode items = <CFBasicHash 0x600003e1bcf0 [0x7fff8002e8c0]>{type = mutable set,count = 4,\nentries =>\n\t0 : <CFRunLoopSource 0x60000057ae80 [0x7fff8002e8c0]>{signalled = No,valid = Yes,order = 0,context = <CFRunLoopSource context>{version = 0,info = 0x60000322ab60,callout = __NSThreadPerformPerform (0x7fff208581ee)}}\n\t2 : <CFRunLoopSource 0x600000519ec0 [0x7fff8002e8c0]>{signalled = No,info = 0x60000320e470,callout = __NSThreadPerformPerform (0x7fff208581ee)}}\n\t3 : <CFRunLoopSource 0x600000564a80 [0x7fff8002e8c0]>{signalled = Yes,info = 0x114fc0000,callout = _ZN3WTF7RunLoop11performWorkEPv (0x7fff32220270)}}\n\t4 : <CFRunLoopTimer 0x6000005600c0 [0x7fff8002e8c0]>{valid = Yes,firing = No,interval = 0,tolerance = 0,next fire date = 630235923 (486.399006 @ 357970975424457),callout = _ZZN3WTF7RunLoop9TimerBase5startENS_7SecondsEbEN3$_18__invokeEP16__CFRunLoopTimerPv (0x7fff32220bb0 / 0x7fff32220bb0) (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore),context = <CFRunLoopTimer context 0x114ff65a0>}\n}\n,\nmodes = <CFBasicHash 0x600003e1bdb0 [0x7fff8002e8c0]>{type = mutable set,count = 2,\nentries =>\n\t0 : <CFRunLoopMode 0x600000b044e0 [0x7fff8002e8c0]>{name = kcfRunLoopCommonModes,port set = 0xc307,queue = 0x600001e13a80,source = 0x600001e12c00 (not fired),timer port = 0xc503,\n\tsources0 = (null),\n\tsources1 = (null),\n\tobservers = (null),\n\ttimers = (null),\n\tcurrently 630235437 (357484576475625) / soft deadline in: 1.84463866e+10 sec (@ -1) / hard deadline in: 1.84463866e+10 sec (@ -1)\n},\n\n\t2 : <CFRunLoopMode 0x600000b6cdd0 [0x7fff8002e8c0]>{name = kcfRunLoopDefaultMode,port set = 0x13a0f,queue = 0x600001e3e800,source = 0x600001e3db00 (not fired),timer port = 0x13c27,\n\tsources0 = <CFBasicHash 0x600003e1a7c0 [0x7fff8002e8c0]>{type = mutable set,count = 0,\nentries =>\n}\n,\n\tsources1 = <CFBasicHash 0x600003e1bea0 [0x7fff8002e8c0]>{type = mutable set,\n\tobservers = (\n \"<CFRunLoopObserver 0x600000112b20 [0x7fff8002e8c0]>{valid = Yes,activities = 0xe7,repeats = Yes,callout = _runLoopObserverWithBlockContext (0x7fff2038c504),context = <CFRunLoopObserver context 0x600003ec0090>}\"\n),\n\ttimers = <CFArray 0x600001455f20 [0x7fff8002e8c0]>{type = mutable-small,values = (\n\t0 : <CFRunLoopTimer 0x6000005600c0 [0x7fff8002e8c0]>{valid = Yes,next fire date = 630235923 (486.398864 @ 357970975424457),context = <CFRunLoopTimer context 0x114ff65a0>}\n)},\n\tcurrently 630235437 (357484576488240) / soft deadline in: 486.398936 sec (@ 357970975424457) / hard deadline in: 486.398936 sec (@ 357970975424457)\n},\n\n}\n}\n","prettyPrint":"React Native thread is busy."}},{"name":"dispatch Queue","info":{"queue":"<OS_dispatch_queue_main: com.apple.main-thread[0x7fff86d30c80] = { xref = -2147483648,ref = -2147483648,sref = 1,target = com.apple.root.default-qos.overcommit[0x7fff86d31100],width = 0x1,state = 0x001ffe9000000300,dirty,in-flight = 0,thread = 0x303 }>","prettyPrint":"com.apple.main-thread"}}],"messageId":15},"messageId":15}
所以我将继续检查这可能来自哪里。我尝试从源代码的最开始添加日志,但似乎没有任何结果。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)