应用程序在 ios 后启动和关闭以实现 appium 自动化

App launches and closes in ios for appium automation

问题: 已在 xcode 中成功创建 WebDriver 代理, 当我尝试 运行 我的代码时,ios 应用程序启动并自动关闭。 请帮我解决问题。 环境 Xcode 版本 = 8.3.3 OSX10.12.6 Appium 版本 1.6.4 模拟器:iPhone SE 10.3 在 xcode 中成功创建了 webdriver 代理,当我 运行 Appium 服务器时,ipa 文件(也尝试使用 .app 文件)启动并自动关闭。 下面是我的代码

DesiredCapabilities cap= new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.IOS);
cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION,"10.3");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone SE");          
cap.setCapability(MobileCapabilityType.UDID,
"813f6a5691bc091cb6653dc09176a107be
          108193");
    cap.setCapability("bundleId","com.dynamiteclothing.loyalty.dev");         


    cap.setCapability(MobileCapabilityType.APP,"/Users/testusers/Desktop/dynamite.ipa");
             IOSDriver driver = new driver(new URL("http://0.0.0.0:4723/wd/hub"),cap);
    cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100");
Appium logs
[Appium] Welcome to Appium v1.6.4
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> POST /wd/hub/session {“desiredCapabilities”:{“automationName”:“XCUITest”,“bundleId”:“com.dynamiteclothing.loyalty.dev”,“platformName”:“iOS”,“deviceName”:“iPhone SE”,“platformVersion”:“10.3”}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{“automationName”:“XCUITest”,“bundleId”:“com.dynamiteclothing.loyalty.dev”,“platformName”:“iOS”,“deviceName”:“iPhone SE”,“platformVersion”:“10.3”},null,null,null,null]
[debug] [BaseDriver] Event ‘newSessionRequested’ logged at 1505558554236 (16:12:34 GMT+0530 (IST))
[Appium] Creating new XCUITestDriver (v2.27.2) session
[Appium] Capabilities:
[Appium] automationName: ‘XCUITest’
[Appium] bundleId: ‘com.dynamiteclothing.loyalty.dev’
[Appium] platformName: ‘iOS’
[Appium] deviceName: ‘iPhone SE’
[Appium] platformVersion: ‘10.3’
[debug] [XCUITest] XCUITestDriver version: 2.27.2
[BaseDriver] Session created with session id: 7f722999-3e44-4ab1-bb62-78c75d5b2fff
[debug] [XCUITest] Xcode version set to ‘8.3.3’ (tools v8.3.2.0.1.1492020469)
[debug] [XCUITest] iOS SDK Version set to ‘10.3’
[debug] [BaseDriver] Event ‘xcodeDetailsRetrieved’ logged at 1505558554921 (16:12:34 GMT+0530 (IST))
[iOSSim] Constructing iOS simulator for Xcode version 8.3.3 with udid ‘F53C801A-D1FD-48A5-9910-2776673DE3A5’
[XCUITest] Determining device to run tests on: udid: ‘F53C801A-D1FD-48A5-9910-2776673DE3A5’, real device: false
[debug] [BaseDriver] Event ‘appConfigured’ logged at 1505558555750 (16:12:35 GMT+0530 (IST))
[debug] [BaseDriver] Event ‘resetStarted’ logged at 1505558555751 (16:12:35 GMT+0530 (IST))
[XCUITest] Path must be a string. Received undefined
[XCUITest] Reset: could not scrub application with id “com.dynamiteclothing.loyalty.dev”. Leaving as is.
[debug] [BaseDriver] Event ‘resetComplete’ logged at 1505558555834 (16:12:35 GMT+0530 (IST))
[debug] [iOSLog] Starting iOS 10.3 simulator log capture
[debug] [iOSLog] System log path: /Users/testuser/Library/Logs/CoreSimulator/F53C801A-D1FD-48A5-9910-2776673DE3A5/system.log
[debug] [BaseDriver] Event ‘logCaptureStarted’ logged at 1505558555983 (16:12:35 GMT+0530 (IST))
[XCUITest] Setting up simulator
[debug] [iOS] No reason to set locale
[debug] [iOS] No iOS / app preferences to set
[XCUITest] Simulator with udid ‘F53C801A-D1FD-48A5-9910-2776673DE3A5’ not booted. Booting up now
[debug] [iOSSim] Killing all iOS Simulators
[debug] [iOSSim] Simulator is not running. Continuing…
[iOSSim] Starting simulator with command: open -Fn /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID F53C801A-D1FD-48A5-9910-2776673DE3A5 -ConnectHardwareKeyboard 0
[iOSSim] Simulator booted in 46469ms
[debug] [BaseDriver] Event ‘simStarted’ logged at 1505558602578 (16:13:22 GMT+0530 (IST))
[debug] [BaseDriver] Event ‘appInstalled’ logged at 1505558602578 (16:13:22 GMT+0530 (IST))
[debug] [BaseDriver] Event ‘wdaStartAttempted’ logged at 1505558602580 (16:13:22 GMT+0530 (IST))
[XCUITest] Using WDA path: ‘/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent’
[XCUITest] Using WDA agent: ‘/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj’
[XCUITest] Launching WebDriverAgent on the device
[debug] [XCUITest] Carthage found: ‘/usr/local/bin/carthage’
[debug] [XCUITest] Killing hanging processes
[debug] [XCUITest] Beginning test with command ‘xcodebuild build-for-testing test-without-building -project /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=F53C801A-D1FD-48A5-9910-2776673DE3A5 -configuration Debug IPHONEOS_DEPLOYMENT_TARGET=10.3’ in directory ‘/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent’
[debug] [XCUITest] Output from xcodebuild will not be logged
[debug] [XCUITest] Waiting up to 60000ms for WebDriverAgent to start
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [XCUITest] Log file for xcodebuild test: /Users/testuser/Library/Developer/Xcode/DerivedData/WebDriverAgent-brdadhpuduowllgivnnvuygpwhzy/Logs/Test/F9620691-B4F7-4971-B9A3-89863D0D8DDC/Session-WebDriverAgentRunner-2017-09-16_161331-UuT3NR.log
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Proxying [GET /status] to [GET http://localhost:8100/status] with no body
[debug] [JSONWP Proxy] Got response with status 200: “{\n “value” : {\n “state” : “success”,\n “os” : {\n “name” : “iOS”,\n “version” : “10.3.1”\n },\n “ios” : {\n “simulatorVersion” : “10.3.1”,\n “ip” : “192.168.1.104”\n },\n “build” : {\n “time” : “Sep 12 2017 12:04:15”\n }\n },\n “sessionId” : “202DD193-C28A-49BC-AE97-549CE8741456”,\n “status” : 0\n}”
[debug] [XCUITest] WebDriverAgent running on ip ‘192.168.1.104’
[debug] [XCUITest] WebDriverAgent successfully started after 16949ms
[debug] [BaseDriver] Event ‘wdaSessionAttempted’ logged at 1505558619664 (16:13:39 GMT+0530 (IST))
[debug] [XCUITest] Sending createSession command to WDA
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:8100/session] with body: {“desiredCapabilities”:{“bundleId”:“com.dynamiteclothing.loyalty.dev”,“arguments”:[],“environment”:{},“shouldWaitForQuiescence”:true,“shouldUseTestManagerForVisibilityDetection”:false,“maxTypingFrequency”:60,“shouldUseSingletonTestManager”:true}}
[debug] [JSONWP Proxy] Got response with status 200: {“value”:“Failed to launch com.dynamiteclothing.loyalty.dev application”,“sessionId”:“202DD193-C28A-49BC-AE97-549CE8741456”,“status”:13}
[debug] [XCUITest] Failed to create WDA session. Retrying…
[debug] [BaseDriver] Event ‘wdaSessionAttempted’ logged at 1505558862184 (16:17:42 GMT+0530 (IST))
[debug] [XCUITest] Sending createSession command to WDA
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:8100/session] with body: {“desiredCapabilities”:{“bundleId”:“com.dynamiteclothing.loyalty.dev”,“arguments”:[],“environment”:{},“shouldWaitForQuiescence”:true,“shouldUseTestManagerForVisibilityDetection”:false,“maxTypingFrequency”:60,“shouldUseSingletonTestManager”:true}}
[debug] [JSONWP Proxy] Got response with status 200: {“value”:“Failed to launch com.dynamiteclothing.loyalty.dev application”,“sessionId”:“202DD193-C28A-49BC-AE97-549CE8741456”,“status”:13}
[debug] [XCUITest] Failed to create WDA session. Retrying…
[debug] [BaseDriver] Event ‘wdaSessionAttempted’ logged at 1505559102153 (16:21:42 GMT+0530 (IST))
[debug] [XCUITest] Sending createSession command to WDA
[debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:8100/session] with body: {“desiredCapabilities”:{“bundleId”:“com.dynamiteclothing.loyalty.dev”,“arguments”:[],“environment”:{},“shouldWaitForQuiescence”:true,“shouldUseTestManagerForVisibilityDetection”:false,“maxTypingFrequency”:60,“shouldUseSingletonTestManager”:true}}
[HTTP] <-- POST /wd/hub/session - - ms - -
[HTTP] --> POST /wd/hub/session {“desiredCapabilities”:{“automationName”:“XCUITest”,“bundleId”:“com.dynamiteclothing.loyalty.dev”,“platformName”:“iOS”,“deviceName”:“iPhone SE”,“platformVersion”:“10.3”}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{“automationName”:“XCUITest”,“bundleId”:“com.dynamiteclothing.loyalty.dev”,“platformName”:“iOS”,“deviceName”:“iPhone SE”,“platformVersion”:“10.3”},null,null,null,null]
[debug] [BaseDriver] Event ‘newSessionRequested’ logged at 1505559153667 (16:22:33 GMT+0530 (IST))

对我有帮助

在 iOS 您需要让应用程序具有调试权限。联系您的开发团队,为您提供调试权限。

AppName.app(对于模拟器)和AppName.ipa(对于iphone/ipad 物理设备)是使用Xcode IDE 需要和创建的两个文件。您需要将应用程序构建为 DEBUG/RELEASE(在 XCODE -> 产品 -> 方案 -> 编辑方案 -> 左侧面板上的 Select 运行 -> Select 顶部菜单栏上的信息 -> 在构建配置的右侧,在发布(创建 IPA*)和(调试创建应用程序)之间切换。COMMAND+B 将构建您的项目。构建过程完成后,导航到 DerivedData 文件夹,其中可以使用此找到:(在 XCODE -> 文件 -> 工作区设置 -> 单击文件 URL 右侧的小箭头。文件 URL 就在 "Advanced..." 按钮。

参见 XCODE(Window -> 管理器 -> 存档 -> 导出 -> Adhoc 以创建 IPA 文件)。

http://discuss.appium.io/t/appium-test-on-ios-opens-and-close-the-application-over-and-over-again/8390/11

您的 ipa 文件似乎不是启用调试的版本。请与您的开发人员联系以获得启用调试的 ipa 文件。