编译报错
Mac 机子,数据线连接 iPhone13,通过 Appium 里的 appium-webdriveragent/WebDriverAgent.xcodeproj 工程,来编译可以在 iPhone13 手机中运行的 WebDriverAgent,目的是 Automation 。
遇到一个报错,可能是环境哪里有升级或者变化导致的,以前是可以正常编译的。
Cannot link directly with dylib/framework, your binary is not an allowed client of /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework/XCTAutomationSupport for architecture x86_64
环境:
Mac 12.5.1
Xcode 14.2
Appium 1.21.0-1
真机 iPhone13 ,版本 15.7
解决过程:
-
编译 WDA 时出现报错,Xcode14.2 的几个私有的动态库限制了link的对象,导致编译一直不过。
-
将 Xcode 换成
13.4.1
版本。 -
切换后,依然报错,尝试升级 Appium 的版本,为的是使用它里面的
appium-webdriveragent
目录下的WebDriverAgent.xcodeproj
。 -
升级当前最新的版本,下载包:Appium-Server-GUI-mac-1.22.3-4.dmg ,安装。
-
打开编译 WDA 的 Xcode 工程文件:
/Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj
,重新配置 Xcode。 -
配置 WebDriverAgentLib、WebDriverAgentRunner。IntegrationApp 也是相同的配置(好像可以不用配置 )。
-
虽然真机的版本是 15.7,但是这边我配置的 iOS Deployment Target 是 14.3,也是没有影响到结果:
Trust App
Xcode 编译成功后,如果配置的是真机,那么会在真机中生成 WDA 这个 app,但是需要操作信任它。
由于我这边使用数据线,将Mac机子连接iPhone13真机,Mac机子开了VPN,导致在 trust 过程一直失败,提示 A network connection is required to verfiy "Apple Development: [email protected](...)" apps on this iPhone. Connect to the internet and try again.
,重启手机没解决。
最后,将 VPN 断开后,网络正常,就没问题了。(这里我是没想到,iPhone13连上了wifi后,竟然也会受到连着的Mac机子的网络环境影响,没理解。)