Revert "fix: Assert app is installed before launching or activating it" by KazuCocoa · Pull Request #705 · appium/WebDriverAgent
Reverts #704
When I checked the below code on a real device, it always returned nil as below. Maybe we should find another way, or should make it work only for simulator right now.
(lldb) po [[LSApplicationWorkspace defaultWorkspace] applicationIsInstalled:self.bundleID]
nil
System installed app such as com.apple.Preferences also failed to launch as below with this as:
curl -X POST http://192.168.4.24:8100/session/D35C8AD1-2F19-4640-83A2-162F97C00A8E/wda/apps/launch -d '{ "bundleId": "com.apple.Preferences" }'
{
"value" : {
"error" : "invalid argument",
"message" : "The application 'com.apple.Preferences' cannot be activated because it is not installed on the device under test",
"traceback" : "(\n\t0 CoreFoundation 0x00000001c1ba8cc0 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 40128\n\t1 libobjc.A.dylib 0x00000001bacc83d0 objc_exception_throw + 60\n\t2 CoreFoundation 0x00000001c1d15c6c 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 1535084\n\t3 WebDriverAgentLib 0x000000010af4b464 -[FBApplication fb_assertInstalledByAction:] + 356\n\t4 WebDriverAgentLib 0x000000010af4b584 -[FBApplication activate] + 40\n\t5 WebDriverAgentLib 0x000000010af46f88 -[XCUIApplication(FBCompatibility) fb_activate] + 32\n\t6 WebDriverAgentLib 0x000000010af0b728 -[FBSession launchApplicationWithBundleId:shouldWaitForQuiescence:arguments:environment:] + 448\n\t7 WebDriverAgentLib 0x000000010af31ef8 +[FBSessionCommands handleSessionAppLaunch:] + 312\n\t8 WebDriverAgentLib 0x000000010aed5d30 -[FBRoute_TargetAction mountRequest:intoResponse:] + 168\n\t9 WebDriverAgentLib 0x000000010aec2928 __37-[FBWebServer registerRouteHandlers:]_block_invoke + 400\n\t10 WebDriverAgentLib 0x000000010aef6f58 -[RoutingHTTPServer handleRoute:withRequest:response:] + 160\n\t11 WebDriverAgentLib 0x000000010aef79e4 __72-[RoutingHTTPServer routeMethod:withPath:parameters:request:connection:]_block_invoke + 64\n\t12 libdispatch.dylib 0x00000001c906aeac BB347F0E-F21C-3607-82E6-C8D750FDBF8C + 16044\n\t13 libdispatch.dylib 0x00000001c907a500 BB347F0E-F21C-3607-82E6-C8D750FDBF8C + 79104\n\t14 libdispatch.dylib 0x00000001c906aeac BB347F0E-F21C-3607-82E6-C8D750FDBF8C + 16044\n\t15 libdispatch.dylib 0x00000001c90796a4 BB347F0E-F21C-3607-82E6-C8D750FDBF8C + 75428\n\t16 libdispatch.dylib 0x00000001c90792f4 _dispatch_main_queue_callback_4CF + 44\n\t17 CoreFoundation 0x00000001c1c37c28 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 625704\n\t18 CoreFoundation 0x00000001c1c19560 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 501088\n\t19 CoreFoundation 0x00000001c1c1e3ec CFRunLoopRunSpecific + 612\n\t20 Foundation 0x00000001bbf1efd4 6E76DC96-11AF-3B2E-B71E-215F9CC6E822 + 270292\n\t21 WebDriverAgentLib 0x000000010aec17dc -[FBWebServer startServing] + 328\n\t22 WebDriverAgentRunner 0x0000000104bcb980 -[UITestingUITests testRunner] + 80\n\t23 CoreFoundation 0x00000001c1c11c04 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 470020\n\t24 CoreFoundation 0x00000001c1bbfcb4 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 134324\n\t25 XCTestCore 0x0000000104c5d8e8 +[XCTFailableInvocation invokeStandardConventionInvocation:completion:] + 68\n\t26 XCTestCore 0x0000000104c5d89c __90+[XCTFailableInvocation invokeInvocation:withTestMethodConvention:lastObservedErrorIssue:]_block_invoke_3 + 28\n\t27 XCTestCore 0x0000000104c5d228 __81+[XCTFailableInvocation invokeWithAsynchronousWait:lastObservedErrorIssue:block:]_block_invoke.5 + 112\n\t28 XCTestCore 0x0000000104c1b938 +[XCTSwiftErrorObservation observeErrorsInBlock:] + 148\n\t29 XCTestCore 0x0000000104c5d088 +[XCTFailableInvocation invokeWithAsynchronousWait:lastObservedErrorIssue:block:] + 460\n\t30 XCTestCore 0x0000000104c5d5f4 +[XCTFailableInvocation invokeInvocation:withTestMethodConvention:lastObservedErrorIssue:] + 372\n\t31 XCTestCore 0x0000000104c5d970 +[XCTFailableInvocation invokeInvocation:lastObservedErrorIssue:] + 72\n\t32 XCTestCore 0x0000000104c4a8c0 __24-[XCTestCase invokeTest]_block_invoke_2 + 88\n\t33 XCTestCore 0x0000000104c28c1c -[XCTMemoryChecker _assertInvalidObjectsDeallocatedAfterScope:] + 84\n\t34 XCTestCore 0x0000000104c54220 -[XCTestCase assertInvalidObjectsDeallocatedAfterScope:] + 92\n\t35 XCTestCore 0x0000000104c4a840 __24-[XCTestCase invokeTest]_block_invoke.98 + 172\n\t36 XCTestCore 0x0000000104c14518 -[XCTestCase(XCTIssueHandling) _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:] + 164\n\t37 XCTestCore 0x0000000104c4a3dc -[XCTestCase invokeTest] + 840\n\t38 XCTestCore 0x0000000104c4b9dc __26-[XCTestCase performTest:]_block_invoke.155 + 36\n\t39 XCTestCore 0x0000000104c14518 -[XCTestCase(XCTIssueHandling) _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:] + 164\n\t40 XCTestCore 0x0000000104c4b530 __26-[XCTestCase performTest:]_block_invoke.141 + 464\n\t41 XCTestCore 0x0000000104c32348 +[XCTContext _runInChildOfContext:forTestCase:markAsReportingBase:block:] + 180\n\t42 XCTestCore 0x0000000104c3225c +[XCTContext runInContextForTestCase:markAsReportingBase:block:] + 144\n\t43 XCTestCore 0x0000000104c4b1bc -[XCTestCase performTest:] + 308\n\t44 XCTestCore 0x0000000104c033cc -[XCTest runTest] + 48\n\t45 XCTestCore 0x0000000104c34fa4 -[XCTestSuite runTestBasedOnRepetitionPolicy:testRun:] + 68\n\t46 XCTestCore 0x0000000104c34e84 __27-[XCTestSuite performTest:]_block_invoke + 164\n\t47 XCTestCore 0x0000000104c34934 __59-[XCTestSuite _performProtectedSectionForTest:testSection:]_block_invoke + 48\n\t48 XCTestCore 0x0000000104c32348 +[XCTContext _runInChildOfContext:forTestCase:markAsReportingBase:block:] + 180\n\t49 XCTestCore 0x0000000104c3225c +[XCTContext runInContextForTestCase:markAsReportingBase:block:] + 144\n\t50 XCTestCore 0x0000000104c348d0 -[XCTestSuite _performProtectedSectionForTest:testSection:] + 180\n\t51 XCTestCore 0x0000000104c34b8c -[XCTestSuite performTest:] + 216\n\t52 XCTestCore 0x0000000104c033cc -[XCTest runTest] + 48\n\t53 XCTestCore 0x0000000104c34fa4 -[XCTestSuite runTestBasedOnRepetitionPolicy:testRun:] + 68\n\t54 XCTestCore 0x0000000104c34e84 __27-[XCTestSuite performTest:]_block_invoke + 164\n\t55 XCTestCore 0x0000000104c34934 __59-[XCTestSuite _performProtectedSectionForTest:testSection:]_block_invoke + 48\n\t56 XCTestCore 0x0000000104c32348 +[XCTContext _runInChildOfContext:forTestCase:markAsReportingBase:block:] + 180\n\t57 XCTestCore 0x0000000104c3225c +[XCTContext runInContextForTestCase:markAsReportingBase:block:] + 144\n\t58 XCTestCore 0x0000000104c348d0 -[XCTestSuite _performProtectedSectionForTest:testSection:] + 180\n\t59 XCTestCore 0x0000000104c34b8c -[XCTestSuite performTest:] + 216\n\t60 XCTestCore 0x0000000104c033cc -[XCTest runTest] + 48\n\t61 XCTestCore 0x0000000104c34fa4 -[XCTestSuite runTestBasedOnRepetitionPolicy:testRun:] + 68\n\t62 XCTestCore 0x0000000104c34e84 __27-[XCTestSuite performTest:]_block_invoke + 164\n\t63 XCTestCore 0x0000000104c34934 __59-[XCTestSuite _performProtectedSectionForTest:testSection:]_block_invoke + 48\n\t64 XCTestCore 0x0000000104c32348 +[XCTContext _runInChildOfContext:forTestCase:markAsReportingBase:block:] + 180\n\t65 XCTestCore 0x0000000104c3225c +[XCTContext runInContextForTestCase:markAsReportingBase:block:] + 144\n\t66 XCTestCore 0x0000000104c348d0 -[XCTestSuite _performProtectedSectionForTest:testSection:] + 180\n\t67 XCTestCore 0x0000000104c34b8c -[XCTestSuite performTest:] + 216\n\t68 XCTestCore 0x0000000104c033cc -[XCTest runTest] + 48\n\t69 XCTestCore 0x0000000104c04f14 __89-[XCTTestRunSession executeTestsWithIdentifiers:skippingTestsWithIdentifiers:completion:]_block_invoke + 104\n\t70 XCTestCore 0x0000000104c32348 +[XCTContext _runInChildOfContext:forTestCase:markAsReportingBase:block:] + 180\n\t71 XCTestCore 0x0000000104c3225c +[XCTContext runInContextForTestCase:markAsReportingBase:block:] + 144\n\t72 XCTestCore 0x0000000104c04e08 -[XCTTestRunSession executeTestsWithIdentifiers:skippingTestsWithIdentifiers:completion:] + 296\n\t73 XCTestCore 0x0000000104c6a4c0 __72-[XCTExecutionWorker enqueueTestIdentifiersToRun:testIdentifiersToSkip:]_block_invoke_2 + 136\n\t74 XCTestCore 0x0000000104c6a610 -[XCTExecutionWorker runWithError:] + 108\n\t75 XCTestCore 0x0000000104c2f54c __25-[XCTestDriver _runTests]_block_invoke.266 + 56\n\t76 XCTestCore 0x0000000104c0d670 -[XCTestObservationCenter _observeTestExecutionForBlock:] + 288\n\t77 XCTestCore 0x0000000104c2f1a8 -[XCTestDriver _runTests] + 1092\n\t78 XCTestCore 0x0000000104c039bc _XCTestMain + 88\n\t79 WebDriverAgentRunner-Runner 0x0000000104695d1c -[_XCTRunnerAppDelegate application:didFinishLaunchingWithOptions:] + 0\n\t80 WebDriverAgentRunner-Runner 0x0000000104695d00 _XCTRunnerRunTests + 0\n\t81 CoreFoundation 0x00000001c1be26e0 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 276192\n\t82 CoreFoundation 0x00000001c1c49210 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 696848\n\t83 CoreFoundation 0x00000001c1c190e8 4230C122-42E8-383B-BEEC-EE7B61F8BB61 + 499944\n\t84 CoreFoundation 0x00000001c1c1e3ec CFRunLoopRunSpecific + 612\n\t85 GraphicsServices 0x00000001fc7db35c GSEventRunModal + 164\n\t86 UIKitCore 0x00000001c3fab6e8 B3834960-244B-34E4-9EA0-CA4BB44EF0F3 + 3790568\n\t87 UIKitCore 0x00000001c3fab34c UIApplicationMain + 340\n\t88 WebDriverAgentRunner-Runner 0x0000000104695ed0 main + 160\n\t89 dyld 0x00000001e110edec 8A423F3F-B318-315E-99C7-05EE532E9C0D + 89580\n)"
},
"sessionId" : "D35C8AD1-2F19-4640-83A2-162F97C00A8E"
}%
For real device, if we do similar thing, maybe we should the app installation in xcuitest driver layer...?