Manual Configuration for a Generic Device
It is possible to build WebDriverAgentRunner
for a generic iOS/iPadOS/tvOS device, and install the
generated .app
package to a real device.
# iOS/iPadOS
$ xcodebuild clean build-for-testing -project WebDriverAgent.xcodeproj -derivedDataPath appium_wda_ios -scheme WebDriverAgentRunner -destination generic/platform=iOS CODE_SIGNING_ALLOWED=YES
# tvOS
$ xcodebuild clean build-for-testing -project WebDriverAgent.xcodeproj -derivedDataPath appium_wda_tvos -scheme WebDriverAgentRunner_tvOS -destination generic/platform=tvOS CODE_SIGNING_ALLOWED=YES
On successful completion the resulting package WebDriverAgentRunner-Runner.app
should be located
in the Build/Products/Debug-iphoneos/
subfolder under WebDriverAgent sources root, or in the path
provided as derivedDataPath
argument.
Note
If the build fails, please make sure WebDriverAgent.xcodeproj
has codesigning properties
configured properly. For example, you may need to change the bundle id for the provisioning profile.
The WebDriverAgentRunner-Runner.app
can now be installed to any real device as allowed by the
provisioning profile.
You can install the package with 3rd party tools and manage it separately as explained in How To Set Up And Customize WebDriverAgent Server. Note that if the codesigning was not correct, the installation will fail.
As a more advanced method, you can generate the package with CODE_SIGNING_ALLOWED=NO
and do
codesign
by yourself. This would make the device management more flexible, but you would need to know about
advanced codesign usage scenarios.
Note
The Appium team distributes generic builds with CODE_SIGNING_ALLOWED=NO
at
WebDriverAgent package releases.
It is recommended to sign packages with a wildcard (*
) provisioning profile,
although such profiles require a paid Apple Developer account.
For example, if you're preparing such a provisioning profile for io.appium.WebDriverAgentRunner.xctrunner
, it will be for io.appium.*
, io.appium.WebDriverAgentRunner.*
or *
.
In case of a free account, you may need to update the bundle id before building
the WebDriverAgent package to prepare a properly signed WebDriverAgent package
by xcodebuild
.