ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

最新macOS 11.4+Xcode 12.5+iOS 14.6 编译安装WebDriverAgent填坑记

2021-06-18 12:05:06  阅读:393  来源: 互联网

标签:macOS 14.6 11.4 iOS Wno objc 报错 https WebDriverAgent


最近要使用腾讯的GAutomator2来进行iOS端的unity游戏UI自动化测试,于是在配置环境阶段需要将WebDriverAgent编译安装到iOS设备上。

我有随时更新系统的习惯,Mac系统不能降级,iPhone系统不能降级。这整个的过程真是一个坑接着一个坑,接下来记录下自己填坑的过程吧。

我的Mac系统是现在最新的:

macOS Big Sur 版本:11.4

Xcode Version 12.5 (12E262)

iPhone 系统版本:14.6

WebDriverAgent介绍

WebDriverAgent是iOS的WebDriver服务器实现,可用于远程控制iOS设备。它允许您启动和终止应用程序,点击并滚动视图或确认屏幕上是否存在视图。

这使其成为用于应用程序端到端测试或通用设备自动化的理想工具。它通过调用Apple的API来直接在设备上执行命令来工作。

下载wt-wda

facebook原版:https://github.com/facebook/WebDriverAgent wetest版:http://git.code.oa.com/gautomator2/wt-wda 差别在于增加了一些快速点击和快速截图的接口。若使用GA录制工具,需要下载wetest版。 下载好之后找到所在目录,终端里执行./Scripts/bootstrap.sh,这个命令会通过刚刚安装的carthage安装很多依赖包,时间可能会很长,耐心等待即可。

编译WDA

1、申请苹果开发者证书,部署IOS项目平台需要开发者证书,现在可以通过个人Apple Id登录即可 登录方式为:Xcode -> Preferences -> Accounts -> Manage Certificates -> 左下角+号 -> ios development   2、使用xcode打开:WebDriverAgent.xcodproj路径,如下图:   3、选择WebDriverAgentLib和WebDriverAgentRuner的Team字段,进入Singing&Capabilities选项,修改Team字段为刚才自己设置的证书,如图:  WebDriverAgentLib:   WebDriverAgentRuner:   4、设置好账号后还会报出一个错误,如下图:   大概意思是这个项目的app ID冲突了,随意修改成一个不重复的id即可,修改位置:

  5、选择Product -> Schema -> WebDriverAgentRunner,如下图:   6、选择Product -> Destination -> 连接的真机名:   7、开始编译:

 

如果一切正常的话,那么就会Build Success。然后进行下面第8步: 8、运行运行Product -> Test,安装成功后手机上会出现一个无图标的WebDriverAgent应用,启动之 后,马上又返回到桌面,这是很正常的。

遇到的错误

错误1:提示build failed,报错信息为:semantic issue:Messaging unqualified id,可以参考以下解决方案:

解决方法: 找到如下文件: 
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Configurations/ProjectSettins.xcconfig

WARNING_CFLAGS = $(inherited) -Weverything -Wno-objc-missing-property-synthesis -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-gnu-statement-expression -Wno-language-extension-token -Wno-overriding-method-mismatch -Wno-missing-variable-declarations -Rno-module-build -Wno-auto-import -Wno-objc-interface-ivars -Wno-documentation-unknown-command -Wno-reserved-id-macro -Wno-unused-parameter -Wno-gnu-conditional-omitted-operand -Wno-explicit-ownership-type -Wno-date-time -Wno-cast-align -Wno-cstring-format-directive -Wno-double-promotion -Wno-partial-availability
修改为:
WARNING_CFLAGS = $(inherited) -Weverything -Wno-objc-missing-property-synthesis -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-gnu-statement-expression -Wno-language-extension-token -Wno-overriding-method-mismatch -Wno-missing-variable-declarations -Rno-module-build -Wno-auto-import -Wno-objc-interface-ivars -Wno-documentation-unknown-command -Wno-reserved-id-macro -Wno-unused-parameter -Wno-gnu-conditional-omitted-operand -Wno-explicit-ownership-type -Wno-date-time -Wno-cast-align -Wno-cstring-format-directive -Wno-double-promotion -Wno-partial-availability -Wno-objc-messaging-id

错误2:编译报错Building for iOS, but the linked and embedded framework 'RoutingHTTPServer.framework' was built for iOS + iOS Simulator.

解决方法: 将 BuildSettings ->Build Options->Validate Workspace 设置为 Yes。它仍然会显示警告,但会构建项目。

 

 

 

错误3:'assign' property of object type may become a dangling reference; consider using 'unsafe_unretained'

解决方法: 报错出双击,进入到报错代码处,将assign改为strong后再次build

 

错误4:implementing deprecated method   这个错误是使用了Object-C垃圾回收器不支持的方法 Objective-C garbage collection is no longer supported. 当时查到一个帖子,说了造成此错误的原因,但是没有说解决方法,由于不是开发者,说得其他的方法我也看不懂,我自己查了好久也没有找到解决方式,已经打算放弃了,后来在同事的帮助下,又继续找原因。总算功夫苦心人,我在苹果开发者文档(文末参考链接3)中找到了解决方法,如下:

 

在Xcode中,点击报错的地方,会导航到出错的代码,然后作如下修改:

 

修改之后再次Build,就看到 Build Succeed! 耗时4天,终于成功了,老泪纵横…   参考1:https://github.com/Tencent/GAutomator/blob/master/GAutomatorIos/README.md 参考2:https://blog.csdn.net/zhouzhoujianquan/article/details/53285281 参考3:https://developer.apple.com/documentation/xctest/xctestcase/1496269-recordfailurewithdescription 参考4:https://developer.apple.com/documentation/xctest/xctestcase/3546549-recordissue

标签:macOS,14.6,11.4,iOS,Wno,objc,报错,https,WebDriverAgent
来源: https://www.cnblogs.com/xiehong/p/14898938.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有