【问题标题】:Error: The desired capabilities must include either an app or a bundleId for iOS错误:所需的功能必须包括应用程序或 iOS 的 bundleId
【发布时间】:2017-05-23 11:04:12
【问题描述】:

我使用的是 mac OS X 10.12,Appium 服务器 1.5.3,xcode 版本 8.3。如果我运行医生,那么它表明 appium 已正确安装。

info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor  ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor  ✔ Xcode Command Line Tools are installed.
info AppiumDoctor  ✔ DevToolsSecurity is enabled.
info AppiumDoctor  ✔ The Authorization DB is set up properly.
info AppiumDoctor  ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor  ✔ HOME is set to: /Users/nishamendon
info AppiumDoctor  ✔ ANDROID_HOME is set to: /Users/nishamendon/Library/Android/sdk
info AppiumDoctor  ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
info AppiumDoctor  ✔ adb exists at: /Users/nishamendon/Library/Android/sdk/platform-tools/adb
info AppiumDoctor  ✔ android exists at: /Users/nishamendon/Library/Android/sdk/tools/android
info AppiumDoctor  ✔ emulator exists at: /Users/nishamendon/Library/Android/sdk/tools/emulator
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor 
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor 

但是,如果我启动 appium 服务器,并尝试启动检查器,我会收到一个错误,无法使用以下日志启动检查器。

    [iOS] Error: The desired capabilities must include either an app or a bundleId for iOS
    at Object.wrappedLogger.errorAndThrow (lib/logger.js:60:13)
    at IosDriver.validateDesiredCaps (lib/driver.js:409:14)
    at IosDriver.callee$0$0$ (lib/basedriver/commands/session.js:14:8)
    at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at enqueueResult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
    at Promise.F (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js:30:36)
    at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
    at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
    at IosDriver.callee$0$0 [as createSession] (lib/basedriver/commands/session.js:8:46)
    at IosDriver.createSession$ (lib/driver.js:40:16)
    at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at enqueueResult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
    at Promise.F (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js:30:36)
    at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
    at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)
    at IosDriver.createSession (lib/driver.js:110:19)
    at AppiumDriver.createSession$ (lib/appium.js:121:43)
    at tryCatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at invoke (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at enqueueR
esult (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:185:17)
    at Promise.F (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/node_modules/core-js/library/modules/$.export.js:30:36)
    at AsyncIterator.enqueue (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:184:12)
    at AsyncIterator.prototype.(anonymous function) [as next] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at Object.runtime.async (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:209:12)

【问题讨论】:

  • 也许this 可以帮助你。请同时格式化您的问题。
  • @JeroenHeier 谢谢.. 会试试

标签: ios appium-ios


【解决方案1】:

出现再生器错误是因为 xCode 8 仅适用于 appium 1.6 +。

您可以参考:https://github.com/appium/appium/issues/6845

【讨论】:

  • 谢谢。会试试这个
【解决方案2】:

为应用路径添加所需的功能(例如) DesiredCapabilities.setCapability("app", "/Users/Library/Developer/Xcode/DerivedData/foldername/Build/Products/Debug-iphoneos/appname.app");

此外,您只需打开 appium GUI,保持选中 iOS 图标并在终端中启动 appium (1.6+) 服务器后点击检查器图标(不要在 GUI 中点击“启动”),即可打开 1.5.3 的 appium 检查器。
参考:https://discuss.appium.io/t/how-to-launch-appium-inspector-on-appium-1-6-0-beta2-as-there-is-no-appium-app-file-for-that-beta/12448/16

【讨论】:

    【解决方案3】:

    您需要添加功能“app”或“bundleId”。因为在您的情况下,它无法知道应该启动哪个应用程序。

    capabilities.setCapability("app","path of your .app file");
    

    Appium 1.5.3 与 xcode 8+ 不兼容。如果您已经通过终端安装了 appium,则通过运行命令通过终端启动 appium。

    appium
    

    此命令将启动 appium 服务器。请勿使用 appium 1.5.3。

    请参考以下链接了解如何在安装 appium 1.6+ 后从终端启动和运行 appium

    Launch and run appium in Mac

    【讨论】:

    • 谢谢。会试试这个。
    • 它工作了,但现在又出现了一个问题。现在,当我运行检查器时,我得到“遇到内部错误运行命令:错误:安装 com.xxxx.remoteOn.NonProd 失败”:(尝试了以下步骤: brew uninstall ideviceinstaller brew uninstall libimobiledevice brew install --HEAD libimobiledevice brew link --覆盖 libimobiledevice brew install ideviceinstaller brew link --overwrite ideviceinstaller 以及“sudo chmod -R 777 /var/db/lockdown/”仍然是同样的问题。现在我在 appium 1.5.3 上使用 xcode 8.3.2。并尝试自动化手机 10.2 上的 ios 应用
    • 你使用的是哪个appium版本,你的模拟器或设备是哪个操作系统版本
    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多