I’m getting an error while building a WebDriverAgent for testing on iOS 16
Mac mini with chip M1 (OS 13 beta)
Xcode 14 Official
iPhone SE 2020 (iOS 16 Official)
This my error on terminal
…etc…
Testing failed:
Cannot link directly with dylib/framework, your binary is not an allowed client of /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework/XCTAutomationSupport for architecture arm64
Testing cancelled because the build failed.
** TEST FAILED **
The following build commands failed:
Ld /Users/macmi034/Library/Developer/Xcode/DerivedData/WebDriverAgent-ciegwgvxzxdrqthilmrmczmqvrgu/Build/Products/Debug-iphoneos/WebDriverAgentLib.framework/WebDriverAgentLib normal (in target ‘WebDriverAgentLib’ from project ‘WebDriverAgent’)
(1 failure)
I searched on Google but to no avail
I need some help?
It seems like this is an issue that broke with the upgrade to xcode 14. If you need it working now you can downgrade xcode 13.4.1 from apple’s developer site. See this apple developer forum: https://developer.apple.com/forums/thread/712039
With a little more digging it looks like this is fixed only in the appium xcuitest driver in appium 2.0 (see the github link below) and won’t be brought in to appium 1.XX. I have had some luck using appium 2.0 with Katalon Studio by using the remote device execution.
I have installed Appium 2.0 beta, however things are not favorable for me. My Katalon can’t start Appium server after 60 seconds
Appium Directory I still use the old link: /usr/local/lib/node_modules/appium
Yes I also run into that issue when I attempt to run an iOS Mobile test. I believe this is because Katalon Studio doesn’t yet support appium 2.0 automatically. The only way I have been able to run tests with appium 2.0 is to use remote device execution. This means you will need to start the appium server separately through your terminal and then run a remote test instead. You will also need to add more information into the desired capabilities that are normally automatic when doing mobile tests including:
“appium:automationName” : “XCUITest”
“appium:deviceName” : “iPhone”
“platformName” : “iOS”
“appium:udid” : “your_device_udid”
There may be an easier way than I have found to start these tests but you can see another post of mine on how I did it.
@kreno@vu.tran But what if I want to adapt to the new version of the application?
like the picture I took above, I can’t start the app with Mobile Recorder, so I can’t Capture the objects
Also, I get an error when I execute the script appium --use-plugins=execute-driver (see image below)
I have never really used the mobile recorder and usually work in script mode but here is a screen recording of an example of how the remote mobile recorder can work for appium 2.0. File was large so it is a link to the video:
Note that the remote server url needs to be updated because it is different in appium 2.0 than in 1.XX.
I still think that the problem is with the version of Xcode instead of the Mac OS version. Xcode 14 had some changes in linking private frameworks which made us unable to build appium’s WebDriverAgent. But it worked when I tested downgrading back to xcode 13.4.1. As long as you stay on that version of xcode you should be able to continue using appium 1.22.3.
@gdearest07 You need to have an apple developer account (free) but if you sign in from this link you should be able to get to all the old versions of xcode.
I do have an apple developer account (actually, I even paid for it after not being able to run Katalon neither on iOS simulators nor on iOS real devices, but nothing has helped so far). Does it mean that I can follow these instucttions instead of using your link?
Could you please look into it and let me know whether these instructions are the correct ones? Which do you think is a better aproach - Part 2 or Part 3? Should I delete all the existing projects, cerificates, etc. before atempting to downgrade from Xcode 14?
@thanh.tung.170861 It is not fully supported yet. xcode 14 will only work with appium 2.0. There is a proof of concept version that works for basic things but has a couple of issues with it.
I plan on posting a full tips and tricks on how to get appium 2.0 working using remote execution soon since it is now appium 2.0 is out of beta and the main released version. It will include how to get appium 2.0 with remote execution to work with the object spy and recorder too.