Appium 如何去除 fruitstrap,而使用 ideviceinstaller 或者 iOS-deploy?

云飞凌风 · 2015年04月08日 · 最后由 miles 回复于 2015年04月13日 · 2034 次阅读

最近老是有个问题困扰着我,也查了很多资料。
目前 fruitstrap 服务工具在启动 appium 进行真机测试时会自动判断 app 是否在真机中安装,但是老是提示错误,无法判断是否在真机中是否安装,本来已经安装 app,硬是提示说没有安装。
appium 目前虽是自动的用 fruitstrap 去判断,但是可以通过其它的工具在启动真机测试时,比如官网就有提到不再使用 fruitstrap 而使用 ideviceinstaller,我把 appium 服务端(npm install -g appium)升级到最新 1.3.7 还是没有解决这个问题,请问如何在启动真机测试时,不使用 fruitstrap 去判断应用是否安装,而是使用官网所说的 ideviceinstaller
如:

https://github.com/appium/appium/issues/4863

https://github.com/paymand/appium/commit/8b40589571cf2708ba6174eada555916a983395a
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 3 条回复 时间 点赞

usr/local/lib/node_modules/appium/lib/devices/ios文件夹中更新 iOS.js 文件,可以在 appium 源码中下载 iOS.js 最新文件更新到本地目录中

#1 楼 @wangcityboy 强烈顶!!!帮我解决很多问题!

替换掉后,appium 起不来了,我是直接用的 gui 的 appium,不是通过 npm 安装的,报错信息如下

Launching Appium with command: '/Applications/Appium.app/Contents/Resources/node/bin/node' lib/server/main.js --command-timeout "7200" --session-override --platform-version "8.3" --platform-name "iOS" --app "com.example.apple-samplecode.UICatalog" --udid "9c19d97f4d866c53bc3bfd881137e7da9116cff0" --show-ios-log --device-name "iPhone 5s"

error: uncaughtException: Cannot find module 'which' date=Mon Apr 13 2015 15:23:52 GMT+0800 (CST), pid=3702, uid=503, gid=20, cwd=/Applications/Appium.app/Contents/Resources/node_modules/appium, execPath=/Applications/Appium.app/Contents/Resources/node/bin/node, version=v0.12.1, argv=[/Applications/Appium.app/Contents/Resources/node/bin/node, /Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/main.js, --command-timeout, 7200, --session-override, --platform-version, 8.3, --platform-name, iOS, --app, com.example.apple-samplecode.UICatalog, --udid, 9c19d97f4d866c53bc3bfd881137e7da9116cff0, --show-ios-log, --device-name, iPhone 5s], rss=65978368, heapTotal=56630784, heapUsed=24391512, loadavg=[1.9794921875, 1.84033203125, 1.77197265625], uptime=21032, trace=[column=15, file=module.js, function=Function.Module._resolveFilename, line=336, method=Module._resolveFilename, native=false, column=25, file=module.js, function=Function.Module._load, line=278, method=Module._load, native=false, column=17, file=module.js, function=Module.require, line=365, method=require, native=false, column=17, file=module.js, function=require, line=384, method=null, native=false, column=13, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios.js, function=, line=7, method=null, native=false, column=26, file=module.js, function=Module._compile, line=460, method=_compile, native=false, column=10, file=module.js, function=Object.Module._extensions..js, line=478, method=Module._extensions..js, native=false, column=32, file=module.js, function=Module.load, line=355, method=load, native=false, column=12, file=module.js, function=Function.Module._load, line=310, method=Module._load, native=false, column=17, file=module.js, function=Module.require, line=365, method=require, native=false, column=17, file=module.js, function=require, line=384, method=null, native=false], stack=[Error: Cannot find module 'which',     at Function.Module._resolveFilename (module.js:336:15),     at Function.Module._load (module.js:278:25),     at Module.require (module.js:365:17),     at require (module.js:384:17),     at Object.<anonymous> (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios.js:7:13),     at Module._compile (module.js:460:26),     at Object.Module._extensions..js (module.js:478:10),     at Module.load (module.js:355:32),     at Function.Module._load (module.js:310:12),     at Module.require (module.js:365:17),     at require (module.js:384:17)]

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册