【Appium踩坑】A JavaScript error occurred,Could not get code signature for running application

在Mac操作系统中,安装并启动Appium Server GUI或Appium Inspector时可能会遇到无法获取应用程序代码签名的错误。解决这个问题的方法是在命令行中执行两个步骤:首先使用`xattr -cr /Applications/Appium Server GUI.app`命令,然后运行`codesign --deep --force --verbose --sign - /Applications/Appium Server GUI.app`。这两个操作有助于消除权限问题,确保应用能够正常启动。参考信息来自Appium的GitHub仓库。

背景

Mac机,安装appium inspector 或 appium server GUI,首次启动时可能会报错:

Uncaught Exception: Error: 
Could not get code signature for running application 
at s (/Applications/Appium ServerGUI.app/Contents/Resources/app/gui-common/util.js:44:15) 
at Object.parcelRequire.oCSp../config (/Applications/Appium Server GUI.app/Contents/Resources/app/app/main/auto-updater/index.js:24:38) 

在这里插入图片描述

解决

命令行里输入: // 1执行完后,启动APP试试,不行再执行2

1、xattr -cr /Applications/Appium\ Server\ GUI.app
在使用 Appium 进行自动化测试时,出现 `Could not proxy command to remote server. Original error: socket hang up` 错误通常表示 Appium 服务器与设备或模拟器之间的通信中断。该问题可能由多种原因引起,以下是一些常见原因及对应的解决方案: ### 1. 网络连接问题 确保 Appium 服务器与设备之间的网络连接正常。如果是真机测试,请确保设备与运行 Appium 的主机处于同一局域网中。可以通过 `ping` 或 `adb`(Android)等工具检测设备是否可访问。 ### 2. Appium 服务未正确启动 有时 Appium Server 未能正常启动或崩溃,导致无法建立代理连接。建议重启 Appium Server(无论是通过命令行还是 Appium Desktop),确保其成功启动并监听正确的端口(默认为 `4723`)[^1]。 ### 3. 会话超时设置过短 Appium 默认的命令超时时间为 60 秒,如果在该时间内未接收到新的命令,会自动关闭当前会话,导致后续操作失败。可通过设置 `newCommandTimeout` 参数延长超时时间。例如: ```python capabilities = { 'platformName': 'iOS', 'deviceName': 'iPhone 13', 'app': '/path/to/app', 'newCommandTimeout': 2000, # 设置为2000秒 'automationName': 'XCUITest' } ``` ### 4. iOS 特定配置问题 若进行 iOS 自动化测试,需确保已正确配置 Apple 开发者账号。若没有 Apple 账号,可尝试使用免费账号进行调试,但部分功能可能受限。同时确保 WebDriverAgent 已正确构建并运行在目标设备上。 ### 5. 使用第三方工具优化下载与依赖加载 如果在启动 Appium 时涉及依赖下载较慢,可考虑使用下载工具(如迅雷)加速相关文件的获取,避免因网络延迟导致服务启动失败[^2]。 ### 6. 检查设备日志与 Appium 日志 查看 Appium 的详细日志输出(可通过命令行启动 Appium 并查看控制台输出),以及设备端的日志(如 iOS 的 `deviceconsole` 或 Android 的 `logcat`),有助于定位具体的通信中断原因。 ### 7. 更新 Appium 及相关依赖 确保使用的 Appium 版本为最新稳定版,并更新相关驱动(如 UIAutomator2、XCUITest)和客户端库。旧版本可能存在已知的兼容性问题。 ### 示例代码:设置 `newCommandTimeout` 参数 ```python from appium import webdriver capabilities = { 'platformName': 'Android', 'deviceName': 'emulator-5554', 'appPackage': 'com.example.app', 'appActivity': '.MainActivity', 'newCommandTimeout': 120 # 设置为120秒 } driver = webdriver.Remote('http://localhost:4723/wd/hub', capabilities) ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值