HeadSpin Documentation
Documentation

iOS Provisioning

Overview

In order to test on iOS devices, proper certificates and provisioning profiles must be created and maintained. These provisioning profiles allow you to install and interact with apps on a specified list of devices with Apple's permission. For more detailed information on development profiles, visit Apple support.

Install a new ControlFreak provisioning profile for an on-premise deployment

ControlFreak is manually signed with iOS and tvOS Developer profiles created by HeadSpin. Customers can optionally transition these to their own profiles. When adding a new iOS or tvOS device to the deployment, the device udid needs to be recorded.

Creating and Updating iOS Apple Developer profiles

  • Customers must register the production iOS devices into their apple developer account.
  • Create a Signing certificate and save it into keychains; details will be shared as needed
  • Create two profiles named masterhand-{env}-{TEAMID} and wda-{env}-{TEAMID}
  • Add the iOS devices to the Masterhand and WDA profiles
  • Download the two profiles
  • After download, the file names appear as follows: <code class="dcode">masterhand{env}{TEAM}.mobileprovision</code> and <code class="dcode">wda{env}{TEAM}.mobileprovision</code>
  • Copy these two files to each of the macOS hosts and overwrite the default mobileprovision

scp -i ./hs-id-rsa masterhand${env}${TEAM}.mobileprovision hs@<mac-mini-hostname>:/Users/hs/headspinio-remotecontrol/.controlfreak/ios/provisioning/masterhand-${env}.mobileprovision

scp -i ./hs-id-rsa wda${env}${TEAM}.mobileprovision hs@<mac-mini-hostname>:/Users/hs/headspinio-remotecontrol/.controlfreak/ios/provisioning/Development_io.headspin.${env}-${TEAM}.com.facebook.WebDriverAgentRunner.mobileprovision
  • No restart to ControlFreak is necessary. Start a new remote control session and it will use the new profile.
  • For the purpose of future updates, please share with HeadSpin team two mobileprovision files and the keychain file

  ~/Library/Keychains/controlfreak-<env>-<TEAM>.keychain.db
   controlfreak-<env>-<TEAM>.keychain-db.password
   controlfreak-<env>-<TEAM>.csi