appium-desktop经过二次开发后,需要打包为应用提供给其它同学使用。我们知道appium-desktop是使用electron来构建跨平台桌面应用程序。electron有electron-packager和electron-builder两种打包工具。

首先使用electron-packager

1、先安装electron-packager

安装命令:cnpm install  electron-packager --save-dev.

安装成功后会在package.json中的devDependencies生成代码:"electron-packager": "版本号"

2、打包

  electron-packager <sourcedir> <appname> <platform> <architecture> <electron version> <optional options>
  • sourcedir:项目所在路径
  • appname:应用名称
  • platform:确定了你要构建哪个平台的应用(Windows、Mac 还是 Linux)
  • architecture:决定了使用 x86 还是 x64 还是两个架构都用
  • electron version:electron 的版本
  • optional options:可选选项

我用的命令:electron-packager /Users/houlandong/code/appium-desktop appium-desktop Mac X64 0.0.2。

该方式可以打包成功,但是会破坏源码,打包后本地启动会报错:Unnecessary escape character: \"。

放弃该打包方式

第二使用electron-builder

electron-builder在appium-desktop下载依赖时已经安装,其实仔细看下appium-desktop的源码,在CONTRIBUTING.md中已经写明了appium-desktop的打包方式就是使用electron-builder。

打包过程遇到的问题:

出现一个死循环的错误:

问题的原因是我们使用cnpm  install下载的appium-desktop依赖,因为npm install命令需要访问国外的网站,导致下载时有时候会非常慢,一般我们都建议使用cnpm。那么记住了如果要打包应用必须使用npm install下载依赖。

解决这个问题就可以使用命令打包了。

我使用的命令:electron-builder --mac

参数

  --mac, -m, -o, --macos   Build for macOS,                              [array]
--linux, -l Build for Linux [array]
--win, -w, --windows Build for Windows [array]
--x64 Build for x64 (64位安装包) [boolean]
--ia32 Build for ia32(32位安装包) [boolean]
--armv7l Build for armv7l [boolean]
--arm64 Build for arm64 [boolean]
--dir Build unpacked dir. Useful to test. [boolean]
--prepackaged, --pd 预打包应用程序的路径(以可分发的格式打包)
--projectDir, --project 项目目录的路径。 默认为当前工作目录。
--config, -c 配置文件路径。 默认为`electron-builder.yml`(或`js`,或`js5`)

其实使用electron-builder打包还需要在package.json中配置很多东西,只是appium-desktop已经为我们配置好,我们只需要执行命令就行。具体可以看链接:

https://segmentfault.com/a/1190000016695922?utm_source=tag-newest

打包成功后,会生成安装包以及执行程序。

我们安装程序或者直接打开执行程序会发现程序报auto-updater失败,获取签名失败。网上有方案可以解决签名问题(https://segmentfault.com/a/1190000012902525),但是比较复杂,本人没有尝试使用。其实appium-desktop是经过我们二次开发的,不需要自动更新。我直接设置自动更新为false。再次进行打包,打包成功后,运行程序成功,那么可以把安装包提供给其它同学使用二次开发的功能了

(三)Appium-desktop 打包的更多相关文章

  1. Appium Desktop 介绍及使用

    一.AppiumDesktop介绍 1.Appium-server的图形界面.可以设置选项.启动/停止服务器.查看日志等功能:且无须提前安装Node / NPM,因为Node运行时直接与Appium ...

  2. Appium Desktop介绍-xcodebuild failed with code 65 问题解决

    Appium Desktop介绍-xcodebuild failed with code 65  问题解决 一.Appium Desktop介绍 Appium Desktop是一款用于Mac.Wind ...

  3. Appium与Appium Desktop的区别

    Appium-Server的配置,在之前的博文已有介绍,基于Python的Appium环境搭建合集,所以在此处就不详细介绍了.今天主要来分享下Appium-Server和Appium desktop在 ...

  4. appium desktop 版本发布

    Appium Desktop is an open source app for Mac, Windows, and Linux which gives you the power of the Ap ...

  5. Appium Desktop Inspector 安卓真机配置(Windows)

    本文是基于 Windows环境 通过Appium Desktop 测试真机,首先要确保测试机已经和电脑正确连接(将手机和电脑通过USB数据线连接,手机打开USB调试) 确认电脑与手机是否连接成功的方法 ...

  6. [原创]Appium与Appium desktop的区别

    1.两者都属于Appium 服务端 2.二者最新版本如下:地址:https://github.com/appium/appium-desktop/releases Appium 服务端支持的:地址:h ...

  7. Appium Desktop 元素定位和脚本录制功能

    Appium Desktop除了可以做Server之外还可以进行元素定位和脚本录制功能,点击放大镜按钮,进入页面设置.开始配置Desired Capabilities. 配置Desired Capab ...

  8. appium desktop 定位弹出框时报错

    今天在定位真机APP的时候,弹出框的内容死活定位不到,只能定位到背景的内容. 问题:appium desktop 定位弹出框时报错,定位不到,只能定位到背景的内容. 分析: 定位工具找不到弹出框的元素 ...

  9. 5、通过Appium Desktop实现页面元素定位

    之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...

  10. 1、Appium Desktop介绍

    Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能.它是几个Appium相关工具的组合: Ap ...

随机推荐

  1. CAD在网页中绘制批注

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  2. 27.7 并行语言集成查询(PLinq)

    static void Main() { ObsoleteMethods(Assembly.Load("mscorlib.dll")); Console.ReadKey(); } ...

  3. textarea 提交到数据库的内容,输出到 html 中显示正常的格式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Java8新特性之forEach遍历

    参考文章: https://www.cnblogs.com/billyu/p/6118008.html

  5. MongoDB整库备份与还原以及单个collection备份、恢复

    备份前的检查> show dbsMyDB 0.0625GBadmin (empty)bruce 0.0625GBlocal (empty)test 0.0625GB> use MyDBsw ...

  6. [JZOJ4687]奇袭

    [JZOJ4687]奇袭 题目 由于各种原因,桐人现在被困在Under World(以下简称UW)中,而UW马上要迎来最终的压力测试——魔界入侵. 唯一一个神一般存在的Administrator被消灭 ...

  7. Groovy简单再入门

    以前试过,忘得差不多了,趁这次从JAVA一直撸到SERVLET,SPRING,GROOVY,GRAILS的机会,再弄一次吧... def authors = [ "Peter Ledbroo ...

  8. thymeleaf模板引擎基础使用(转)

    刚好项目上用到这个模板引擎,记录以下基础用法. thymeleaf介绍 简单说, Thymeleaf是一个跟Velocity.FreeMarker类似的模板引擎,它可以完全替代JSP .相比其他的模板 ...

  9. 《MySQL 5.7 Replication新特性》分享之互动问题解答

    原创 2016-07-21 宋利兵 MySQL中文网 分享主题 <MySQL 5.7 Replication新特性> 嘉宾介绍 宋利兵,MySQL研发工程师.2009年加入MySQL全球研 ...

  10. TRIZ的成功案例

    这篇採訪稿是几年前的,是TRIZ成功案例离我近期的,由于主人公是我的朋友,请点击查看: 培训后技术难题就攻克了 后记:学了TRIZ并不能让您100%解决您全部遇到的问题,但这样的思想和方法确实是最具操 ...