iOS Gateway Release Notes
The notes below provide descriptions of the new features and changes introduced with each release of iOS Gateway. You are strongly encouraged to read about the relevant changes whenever you upgrade from an earlier version. Potential compatibility issues are highlighted in RED.
You can get the latest version of iOS Gateway from the Eggplant downloads page.
System Requirements
Runs on: macOS 11. macOS 10.15, macOS 10.14.
Connects to: iOS 15, iOS 14, iOS 13, iOS 12, iOS 11, iOS 10. iPadOS 15, iPadOS 14, iPadOS 13.
Port ranges: VNC 5900-5950; WebDriver 8100-8150.
Note: Manual port selection is not available for WebDriver connections on simulators.
6.0.0 (22 September 2021)
Enhancements
- Adds support for iOS 15 and iPadOS 15.
- Provides instructions for command line arguments for the iOS Gateway.
- To prevent overheating, the iOS Gateway now shows an indicator of the host machine's thermal state and writes the state to log files.
Bug Fixes and Improvements
- Addresses issues with the
SetRemoteClipboard
command. - Adds support for testing AppleTV devices.
- Keyboard settings on devices are no longer updated when automation starts.
- Improves the reliability of switching tabs between the simulator and device.
- Allows you to a open a new Gateway window when no window is open.
- Improves the reliability of the iOS Beta check.
- Improves the platform stability.
Known Issues
- For enhanced security, Apple has changed the clipboard behavior. For both copy and paste, Eggplant’s Springboard Runner app now appears briefly before returning to the app under test.
- When performing copy actions on your host machine, the iOS SUT might switch to the Helper app. This will not happen when a script is executing. This issue will be resolved in Eggplant Functional 22.0 when the host machine clipboard updates will no longer be automatically sent to connected iOS SUTs.
- Apple has added an overlay to the mobile device screen with the message: “Automation Running”. This will not impact testing or interaction with the physical device. When the message appears, do not press both volume buttons as this will break iOS Gateway’s connection to the device under test.
5.8.1 (30 March 2021)
Enhancements
- Adds support for WebDriver automation on iOS 14.
Bug Fixes and Improvements
- Improves diagnostics of excessive CPU usage when devices are connected to iOS Gateway.
- Addresses crash when iOS Gateway sits idle for extended period of time in certain conditions.
- Corrects an issue where the status indicator might remain blue instead of updating to green.
- Addresses a crash related to the Diagnostics Tab.
- Addresses an intermittent memory leak.
- Simulators are no longer killed when disconnecting VNC.
- Addresses a situation where duplicate Springboard runners could be installed on device.
- Improves logging to better diagnose crashes.
- Improves the workflow when the Xcode EULA notification requests user approval before iOS Gateway launches.
- Adds new diagnostic for Xcode command line tools.
- Minor interface adjustments to support macOS 11 (Big Sur).
5.8 (8 February 2021)
Compatibility
- As of this release, macOS 10.12 and macOS 10.13 and iOS 9 are no longer supported.
- Adds support for macOS 11.
- Adds support for Apple Silicon computers.
Enhancements
- Initial development has been done to enable high-speed testing in a future release.
Known Issues
- WebDriver testing does not currently work for iOS 14 or iPadOS 14.
- Automation might become stuck in the blue status light state. A workaround is to unplug the device and then plug it back in.
5.7 (22 October 2020)
Compatibility
- Support for macOS 10.12 and macOS 10.13 ends with the next major release of iOS Gateway.
- Support for iOS 9 ends with the next major release of iOS Gateway.
Enhancements
- Adds support for iOS 14 and iPadOS 14.
- On launch, iOS Gateway now checks to see if there’s a new Xcode end-user license agreement, and prompts you to accept the agreement if there is.
Known Issues
- WebDriver testing is not available with iOS Gateway 5.7. If you need to perform WebDriver testing, you can use iOS Gateway 5.6.4 and a device running iOS 13 using Xcode 11. iOS Gateway 5.6.4 is available on the Eggplant mobile downloads site.
- Automation might become stuck in the blue status light state. A workaround is to unplug the device and then plug it back in.
Bug Fixes
- Fixes a crash that happened when restarting the daemon.
- Fixes a crash that happened when users clicked Run Diagnostics.
5.6.4 (10 June 2020)
Note: Support for macOS 10.12 and macOS 10.13 ends with the next major release of iOS Gateway.
Note: Support for iOS 9 ends with the next major release of iOS Gateway.
Enhancements
- Adds support for iOS 13 and iPadOS 13 WebDriver functionality.
- Adds support for Xcode 11 when using WebDriver functionality.
Known Issues
- Manual port selection is not available for WebDriver connections on simulators.
5.6.3 (4 February 2020)
Note: Support for macOS 10.12 and macOS 10.13 ends with the next major release of iOS Gateway.
Note: Support for iOS 9 ends with the next major release of iOS Gateway.
Enhancements
- Adds Catalina notarization.
- Adds support for new Apple Development certificates.
- Removes disabled elements from UI.
Known Issues
- WebDriver functionality for iOS 13 and iPadOS 13 does not currently work.
- WebDriver functionality does not work with Xcode 11.x.
- Manual port selection is not available for WebDriver connections on simulators.
5.6.2 (11 December 2019)
Bug Fixes
- Relax mode is now always enabled.
- Updates screenshot service to work better with Eggplant Manager.
Known Issues
- WebDriver functionality for iOS 13 and iPadOS 13 does not currently work.
- Manual port selection is not available for WebDriver connections on simulators.
5.6.1 (5 November 2019)
Note: You must download iOS Gateway 5.6.1 from the Eggplant downloads page.
Bug Fixes
- Fixes a problem that occurred on device disconnect.
Known Issues
- WebDriver functionality for iOS 13 and iPadOS 13 does not currently work.
- Manual port selection is not available for WebDriver connections on simulators.
5.6 (24 September 2019)
Enhancements
- Adds support for iOS 13 and iPadOS 13.
- iOS Gateway UI shows if the connected device is running a beta version of iOS or iPadOS.
Bug Fixes
- Various bug fixes and improvements.
Known Issues
- WebDriver functionality for iOS 13 and iPadOS 13 does not currently work.
- Manual port selection is not available for WebDriver connections on simulators.
5.6 (beta) (4 September 2019)
Enhancements
- Adds support for iOS 13 beta.
5.5 (25 June 2019)
Note: You must download iOS Gateway 5.5 from the Eggplant downloads page.
Enhancements
- The process identifier for a selected device now displays on the General tab when that device has automation running.
- Improves screenshot performance for devices running iOS 11 and later.
- Adds support for Eggplant Functional to automatically determine element name, type, and image file names based on information from the object model. Note that this functionality does not currently work with iOS simulators.
- Adds support for the
AppList()
function in Eggplant Functional. - Help us improve iOS Gateway! Leave the new Share Installation Details option enabled in the iOSGateway menu to provide operating system and application version information to Eggplant to help direct our future development efforts.
Bug Fixes
- Various bug fixes and improvements.
5.4.1 (29 March 2019)
Bug Fixes
- Fixes a bug affecting Xcode 10.2 and iOS 12.2.
5.4 (22 March 2019)
Bug Fixes
- Fixes a bug affecting the iPhone XR.
- Automatic signing now downloads profiles from Apple for local use.
5.3 (19 December 2018)
Enhancements
- Adds support for running more than one simulator at a time.
- Adds support for iPhone XS, iPhone XS Max, and iPhone XR.
- Adds WebDriver support for iOS 12 and Xcode 10.
- Adds limited support for macOS 10.14 (Mojave) Dark Mode.
Bug Fixes
- Corrects a memory issue that happened when using simulators.
- Corrects an issue that caused logs to be deleted inadvertently.
- Corrects a issue that caused screen rotation to fail.
5.2 (20 September 2018)
Enhancements
- Improves memory usage.
- Improves reliability when testing camera APIs.
- Adds enhanced logging capabilities.
Known Issue
- WebDriver does not work with Xcode 10 beta.
Bug Fixes
- Various bug fixes and enhancements.
5.2 (beta) (21 August 2018)
Enhancements
- Adds support for iOS 12 beta
Known Issues
- WebDriver features do not currently work with iOS 12 beta. WebDriver functionality through iOS Gateway does work with previous versions of iOS.
5.1.3 (10 August 2018)
- Updates WebDriver.
5.1.2 (30 July 2018)
Bug Fixes
- Fixes remote WebDriver connections.
5.1 (29 May 2018)
Enhancements
- Adds support for object-based testing using WebDriver to work with the next major Eggplant Functional release.
- Log management has been enhanced and redesigned.
- Adds a log warning if the Xcode command line tools are not set.
- Small UI enhancements.
Bug Fixes
- Fixes several bugs that caused crashes.
- Fixes several issues that caused memory usage growth in long-running installations.
5.0 (7 February 2018)
Enhancements
- Adds a new option when re-signing an IPA to simulate Touch ID and Face ID.
- Adds new TypeText key codes for Touch ID and Face ID system events. On real devices, these key codes interact with the simulated Touch/Face ID dialogs. On simulators, the same key codes interact with the Simulator app using built-in AppleScript. Use TypeText numToChar(0xFF9A) for successful or TypeText numToChar(0xFF9B) for failed Touch or Face ID events.
- There are new per-device VNC client sharing options: Allow Multiple Connections, Client Preference, and Allow Only One Connection. There is also an additional modifier option, Keep Current VNC Client.
- Additional checks in the Diagnostics tab help users resolve Apple code signing and provisioning problems.
Bug Fixes
- Fixes a problem that causes some iosgd processes to hang when their devices are disconnected while running.
- Other minor fixes and improvements.
4.4.1 (5 January 2018)
Bug Fixes
- Fixes a problem that caused iosgd to fail to launch xcodebuild for simulators in some environments.
4.4 (4 December 2017)
Enhancements
- Adds support for Apple TV (4th generation). Apple TV 4K (5th generation) is not currently supported because the device has no USB port.
- Stops capturing screenshots from devices when they are not in use. This significantly reduces on-device and host idle CPU usage.
- Enables automatic signing for accounts that have two-factor authentication enabled.
- Assigns separate provisioning profiles to each device instead of using one global setting.
- Retries starting XCTest automation through Xcode when it fails on initial setup or after rebooting the device through iOS Gateway or Eggplant Functional.
- When automatically signing, creates the user provisioning profiles directory if it doesn't already exist. Xcode 9 stopped automatically creating that directory.
- Automatically collects on-device crash logs for Eggplant components when failures are detected.
Bug Fixes
- When automatically signing, creates a single provisioning profile for all users.
- Shows timestamps for events in the Console tab.
- Fixes the
-InitialApp
command line option for iosgd.
4.3.1 (9 November 2017)
Bug Fixes
- Fixes a problem that caused the Description field of support request tickets to get lost.
- Works around a bug in iOS 11.1 that caused coordinates to be mapped incorrectly on iPhone Plus devices and iPhone X.
4.3 (18 September 2017)
Enhancements
- Adds support for iOS 11 and Xcode 9.
- Adds a new Diagnostics tab to help troubleshoot signing and provisioning problems.
- Shows human-readable device type in the identity message, which is accessible in Eggplant Functional using the
SutInfo()
function. - Adds two new defaults to control screen slicing,
ScreenSlicingX
andScreenSlicingY
. - When automatic signing is enabled, considers only signing certificates that have associated private keys.
Bug Fixes
- Adds
MaxHomeButtonPressesBeforeAutomationRestart
default to trigger a restart of automation after a certain number of home button presses. This works around automation failures in certain environments. - Removes TPXCTestRunner from the device properly before starting automation to fix a signing issue when upgrading Xcode.
- Clearing Allow Multiple Connections checkbox now properly prohibits multiple client connections.
4.2 (6 July 2017)
Enhancements
- Supports lossy image compression (JPEG) for manual testing.
- Shows battery level indicator for each device.
- Adds the boolean user default UseFileBasedDaemonFinding to enable finding background iosgd processes when Bonjour is not functional.
Bug Fixes
- Shows a placeholder image while rebooting device.
- Fixes a problem preventing two consecutive UninstallApp commands for the same Bundle ID.
- Restarts automation properly for iOS 10.3+ devices following a reboot.
- Fixes an instability issue created after running a Swipe command.
- Adjusts the duration for swipes on iOS 7 and iOS 8 to be a minimum 0.5 seconds.
- Fixes an issue where the Screen tab did not update and/or the status indicator did not change.
- Fixes a problem with discovering background iosgd processes when Bonjour only reports a loopback address.
Changes
- Renames ClearAlphaChannel (bool) user default to MakeScreenshotsOpaque.
- Adds TraceScreenshots (bool) user default to diagnose screen update issues.
- Adds more prominent errors to the log when certain situations are detected.
- Signing instructions for user apps updated to select correct keychain in Keychain Access.
4.1.3 (23 May 2017)
Bug Fixes
- Fixes a bug that prevented some .ipa file installs on iOS 10.3+.
- Fixes a bug that caused screenshots to stop updating in some environments.
4.1.2 (3 April 2017)
Enhancements
- Adds support for iOS 9 when using Xcode 8.3.
4.1.1 (31 March 2017)
Enhancements
- Adds support for iOS 10.3.
Bug Fixes
- Shows correct version in iosgd log files.
- Validates context menu items for the device list when no device is selected.
4.1 (15 March 2017)
Enhancements
- Simulate location using eggPlant Functional's SetDeviceLocation command.
- Menu item and key combo to quit both iOS Gateway and iosgd instances.
- Ability to swap key combos between quit modes.
- When multiple network interfaces are present, now shows a typically more desirable IP address in the title bar, particularly when running virtual machines.
Bug Fixes
- Fix a bug that caused the device status indicators to remain gray when device services were working.
- Other minor bug and crash fixes.
4.0.1 (7 February 2017)
Bug Fixes
- Fixed a problem with Auto Assign Port when it conflicted with another port on the system.
- Fixed an occasional crash.
4.0 (30 January 2017)
Enhancements
- Manage multiple devices from a single iOS Gateway window.
- Performance and efficiency improvements.
- iosgd command line tool.
- Auto Start on Connect option to start devices when connected.
- Max Frames Per Second device option to limit screen shot capture rate.
- Detects potential VNC port conflicts between devices.
Changes
- Performing gestures using the iOS Gateway Screen view is no longer supported.
- Device-specific menu items have been moved to the new Device menu.
Bug Fixes
- Minor bug and crash fixes.
3.4.1 (24 October 2016)
Bug Fixes
- Fixes an issue that prevented signing Swift apps.
- Fixes crashes during signing when using Xcode 8.
- Marks all valid profiles black instead of red.
- Shows refresh button in the device/app list.
- Doesn't show "(null)" version in tooltips for apps that don't have a version.
- Fixes rare runtime linking issue in TPXCTestRunner Xcode project.
- Shows VNC IP and password after rebooting a device.
3.4 (12 October 2016)
Enhancements
- Support for eggPlant Manager 5.2.
Bug Fixes
- Fixes an issue that prevented typing on some devices.
- Stores per-device settings using a different method that is less error-prone on some devices.
- Does not auto-select distribution or Xcode-generated provisioning profiles.
- Fixes a problem that prevented using Xcode installations in non-standard locations.
- Correctly overrides device port settings when port is specified on the command line.
3.3.1 (21 September 2016)
Enhancements
- Incompatible provisioning profiles display in red when you use manual signing.
- Shows better messages for Apple web API errors.
Bug Fixes
- Fix for a recent Apple web API change that prevented automatic signing from working properly.
3.3 (14 September 2016)
Enhancements
- Support for iOS 10 and Xcode 8.
- Explicitly select which provisioning profile and developer signing identity to use when automating devices.
- Standard macOS settings interface.
- Start the VNC server without a connected or selected device. To start automation services on a new device, use eggPlant Functional's
LaunchApp "DEVICE_NAME_OR_UDID : APP_NAME_OR_BUNDLE_ID"
syntax. - No longer require a space on either side of the colon for eggPlant Functional's
LaunchApp "DEVICE_NAME_OR_UDID : APP_NAME_OR_BUNDLE_ID"
syntax. - VNC server no longer stops when device automation stops, allowing for rebooting flaky devices from eggPlant Functional.
- Store some preferences on the device, including initial VNC port.
- Option to record device logs for the currently automating device.
- Automatically create directories when transferring files from eggPlant Functional to iOS Gateway.
- Expand the tilde for gateway-local paths when transferring files between eggPlant Functional and iOS Gateway.
- Ability to re-sign .ipa files that contain app extensions.
- Send app list update to eggPlant Functional when devices are connected or disconnected.
- Limit the size of the Instruments data created when using iOS 8.
Bug Fixes
- Now allows launching of all Apple apps.
- Allows gestures with a duration under half a second on iOS 9+.
Known Issues
- Xcode 8 cannot be used to automate iOS 7 or iOS 8 devices. This is an Apple limitation.
3.22 (19 July 2016)
Changes
- Workaround for xcodebuild problem that reports device availability before automation services are available. If automation still fails to start following a reboot for particular user environments, try running the following command in the Terminal to adjust the timing:
defaults write com.testplant.ios-gateway PostRebootPostAutomationReadyDelay -float 10
- Store Xcode-derived data and helper projects in the user's Application Support directory instead of /tmp.
3.21 (30 June 2016)
Bug Fixes
- Fixed a problem that prevented automation from starting due to a team identifier conflict.
- Fixed a timing issue when reading the iOS clipboard (requires eggPlant Functional 16.10 or later).
3.2 (24 June 2016)
Enhancements
- Unicode support for the
TypeText
commands to enable multiple languages. - Set the iOS clipboard using the
SetRemoteClipboard
eggPlant Functional command. - Read the iOS clipboard using the
RemoteClipboard()
eggPlant Functional function. Requires eggPlant Functional version 16.10 or later. - Support for automating the device lock (power) button and the volume buttons.
- Shows release notes on the first launch after upgrading iOS Gateway; can be disabled.
- Saves logs from different iOS Gateway instances to different log files.
- Remembers a selection of a device or app in the sidebar list after the list reloads.
Bug Fixes
- Fixed a timing problem that caused app installation to occasionally fail on slow hosts.
- Fixed a problem that could lead to a double-press of the home button being interpreted as a single-press.
Known Issues
On real iOS devices, when the eggPlant Functional RemoteClipboard()
function is called, there will be a temporary swap to an all-black screen. This swap is required due to a security limitation in iOS. Sometimes events immediately following a RemoteClipboard()
call can get executed while an app swap is occuring, which can make it seem as if the events are getting lost. This situation will be handled automatically in a future release, but for this version we recommend that you insert a Wait 1
command immediately following any RemoteClipboard()
calls.
3.1 (12 May 2016)
Enhancements
- Support for iOS 9+ Simulators.
- Submit support requests directly from the gateway app.
- Automatically detects crash logs and suggests submitting a support request.
- Separate log level for files (default is DEBUG) and the console (default is INFO).
- Process IDs are now included in log files to help differentiate logs from multiple instances.
- Different log levels for some log messages (most noticeably, xcodebuild output is now at the DEBUG level instead of VERBOSE).
- More user-friendly error logs for certain common scenarios.
- Wait no longer required between rotate commands.
- Wait no longer required between killing and launching an app.
- Killing an app is quicker (no longer requires an Automation Agent restart).
- Update eggPlant Functional's app list after an app install or uninstall.
- Starts the Automation Agent slightly quicker.
- Doesn't fill up xcodebuild's derived data directories with XCTest results.
- Shows correct capitalization for device names in the devices list.
- Print messages to stdout to indicate state changes in core components (VNC Server, Automation Agent, Surface Capture Agent).
Bug Fixes
- Fixes a few crashes.
- Sets orientation properly on iPhone 5 devices.
- Always rotates in the correct direction on iOS 8 devices.
- Continues accepting VNC connections after errors that occur on very high-latency networks.
- Always switches devices when launching apps on different devices.
- Automation doesn't fail when quickly launching apps on different devices.
- Automation doesn't fail when trying to launch a nonexistent app.
- Automation starts properly following a crash.
- Doesn't deadlock when installing eggOnAgent or eggOnLauncher .ipa files for iOS 7 or iOS 8.
3.04 (7 April 2016)
Bug Fixes
- Fixed a crashing issue with the Surface Capture Agent.
- Switch Automation and Surface Capture Agents when launching an app on a new device.
- Swap to selected apps when starting the server on iOS 9.3+ devices.
3.03 (16 March 2016)
Enhancements
- Automatically refresh app list after an install or uninstall action, allowing an uninstall following an install of a brand new app.
- Ability to launch or uninstall apps by name that aren't developer-signed, regardless of Show All Apps setting.
Bug Fixes
- Fixed a couple of uncommon crashes.
- Prevent screen from getting cut off in landscape orientation.
- Prevent devices from being listed multiple times in rare circumstances.
3.02 (23 February 2016)
Bug Fixes
- Fixed a bug that caused screenshots to stop updating.
- Fixed a memory leak that was causing extremely high usage (4+ GB).
- Fixed a bug that led to unexpected behavior with some LaunchApp eggPlant Functional commands.
3.01 (17 February 2016)
Enhancements
- Run from command line without an -InitialApp argument, now defaults to Springboard.
- Specify UDID or device name for -InitialDevice argument.
- New Show All Apps preference that will display all installed apps in the sidebar. Also applies to eggPlant Functional's Connection > Launch App menu and the -InitialApp argument.
- No longer disables Sign App button when signing window is active. Clicking the button now brings the active window to the front.
- Improved Surface Capture Agent performance and frame rate. Note: The Surface Capture Agent now starts after the Automation Agent on iOS 9+ devices.
Bug Fixes
- Fixed a problem that prevented InstallApp eggPlant Functional command from working.
- Fixed a problem that prevented Reboot eggPlant Functional command from working.
- Always install apps to the intended device.
- Prevent iOS 9+ automation failure by restarting automation every 150 times the Home button is pressed.
- Fixed a problem that caused a black screen to stay up instead of switching to the Springboard.
- Fixed a problem that prevented the Automation Agent from starting when running from the command line without using the open command.
Known Problems
- The first time a device is connected and you select
Trust
on the Trust This Computer? alert, it will cause automation to stop on all other connected devices. - The automation restart that now happens every 150 times the Home button is pressed can interfere with double-presses like
TypeText HomeButton, HomeButton
If a double-press fails in an eggPlant Functional script, you can retry and expect it to be successful the second time. - Automation Agent can fail to start or restart if a system pop up is active.
3.0 (14 January 2016)
Enhancements
- Use Xcode 7 UI Testing on iOS 9+ devices. Related iOS 9+ enhancements include:
- Alert dialogs, alert sheets, and system popups no longer cause problems.
- Pressing the Home button is instantaneous.
- Typing is much faster.
- Note: In many cases, autocorrect suggestions are automatically accepted, which can cause text you enter to appear incorrectly. You can work around this problem by disabling automatic keyboard options in the iOS Settings app.
- Double-press Home button with the eggPlant Functional command TypeText HomeButton, HomeButton
- Support for more special characters, such as backtick.
- Launch any app by bundle ID.
- Kill any app by bundle ID.
- The eggOnLauncher and eggOnAgent support apps are no longer required for iOS 9+.
- The eggOnLauncher and eggOnAgent support apps for iOS 7 and iOS 8 are now built in to the gateway instead of being packaged in the .dmg.
- Sign eggOnLauncher and eggOnAgent .ipa files by selecting them from the combo box in the signing window.
- Built-in help for creating iOS signing assets (signing certificates, App IDs, provisioning profiles, etc.).
- Support transferring files from the iOS Gateway machine to the eggPlant Functional machine.
- Launch the server with a device selected (instead of an app), which brings up the Home Screen (Springboard).
- Tooltips that show iOS version and UDID for devices, app version, and bundle ID for apps.
- Menu items for copying app bundle IDs and device UDIDs to the clipboard.
- List devices in alphabetical order instead of by connection order.
Bug Fixes
- Show 127.0.0.1 as the listening IP address when the iOS Gateway machine is not connected to a network.
- Only list devices that are connected via USB in the device list.
- Improve VNC client compatibility by sending device rotation notifications to supported VNC clients instead of all clients.
2.7 (3 December 2015)
Compatibility Notes
- eggOnAgent: You should install this if you have a version from before the 2.6 release.
- eggOnLauncher: You do not need to update the eggOnLauncher if it is already installed.
Logging
- Show the same log messages in all places, including the iOS Gateway window, log files, and the system log (Console.app).
- All log messages now include a consistently-formatted timestamp, the log level, and the component that issued the log message.
- User-selectable log level, one of ERROR, WARN, INFO (Default), DEBUG, VERBOSE.
- Colorization based on log level.
- Save logs to file in user-selectable directory.
- Reveal log directory in Finder.
- User can control how long log files are kept (default is 1 week).
Enhancements
- Menu item to launch new instance of iOSGateway (Window -> New Instance; Cmd+Shift+N).
- Switch to Springboard before attempting to kill the currently-running dev-signed app.
- Automation Agent indicator now turns blue while it is starting up.
- Limit screenshot updates in the iOSGateway window (but not over VNC connection) to reduce CPU usage
- Improved look & feel of Settings popup window.
- Improved typing speed in dev-signed apps, particularly on iOS 8.4.1+.
Bug Fixes
- No longer requires an iOS Gateway restart after repeatedly installing and uninstalling an app
- No longer tries to swap to apps that don't exist on the device
- iOSGateway.app now shows correct creation and modification dates
- Shows "Springboard" instead of "eggOnLauncher" In the app list
2.62 (5 November 2015)
Highlights
- Automatically switch to Springboard before killing the current dev-signed app.
- Fixed a problem that caused two consecutive key events to sometimes get combined into a single unicode character.
2.61 (21 October 2015)
Highlights
- On iOS 9 and later, automatically swap back to the correct app after recovering from an automation hang.
- Show "No dev-signed apps" instead of "Loading..." when a device has no dev-signed apps installed.
- Hit any iOS return key ("Go", "Search", etc) when user sends the returnKey.
- Combine multiple TypeText keys into a single string to improve typing speed on iOS 9 for dev-signed apps.
- Show warning in iOS Gateway console when user tries to type a unicode character.
Bug Fixes
- Fixed problem that caused Instruments to start an app after the VNC server had been stopped.
- Added back armv6 architecture to eggOnAgent.
- Fixed hang that happened occasionally after launching an app.
- Fixed crash that occurred when stopping the VNC server.
- Fixed crash that occurred after swapping apps hundreds of times.
- Fixed crash that occurred occasionally while waiting for a rebooting iOS device.
- Properly shut down the VNC server and disable the start button when a device is physically disconnected.
- Fixed a problem that prevented a LaunchApp from working following an InstallApp.
- Fixed a problem with the parsing of LaunchApp messages that very rarely resulted in not launching an app.
- Fixed a problem that forced a dev-signed app to be relaunched after the home button was pressed in iOS Gateway.
- Prevent some characters from getting skipped when using TypeText in Springboard mode on iOS 9.
- Fixed a problem that caused the automation to restart while typing long strings.
- Fixed a problem that caused the selected app (instead of the currently-automating app) to get re-launched when an automation hang occurs.
- Show "Springboard" again in the iOS Gateway instead of "eggOnLauncher".
2.6 (17 September 2015)
Highlights
- Added Support for iOS 9.
- Added support to Reboot the device. The reboot command takes no parameters; the device must be your active connection.
- Added KillApp support.
To use the KillApp command, call it in your eggPlant Functional script with the name or bundle ID of the target app. Example: KillApp "CoolNewGame"
Support for KillApp currently differs between iOS 8 and iOS 9 devices, as follows:
- iOS 8: Most dev-signed and 3rd-party apps can be killed. When you kill an app, it is brought to the foreground before it is killed.
- iOS 9: Most dev-signed apps can be killed. You can kill an app when it is in the foreground, or when you are on the springboard.
Bug Fixes
- Fixed a bug where the displayed device would not switch using LaunchApp on a different device
- Fixed a bug that caused connections to take longer than expected when no password is set
2.51 (24 June 2015)
Bug Fixes
- Fixed a crash when the VNC server was being stopped
- Fixed a crash that could happen during a screen updates
- Fixed a problem where the iOS screen could stop updating if it only received a partial screen
- Fixed a problem where typing consecutive capital letters was not consistent
- Fixed a problem where the Launcher would get stuck transitioning to the Springboard
2.5 (1 June 2015)
Highlights
This release contains the following changes:
Added support for ZLIB compression.
Added the
ScreenScaleRatio
setting (NSUserDefault) to control the screen scaling ratio. This ratio is1:N
whereN
is an integer value. For example, settingScreenScaleRatio
to2
scales the screen 1:2 or 50%. The default is1
, which is zero scaling. You can set this option by entering the following at a command prompt:defaults write com.testplant.ios-gateway ScreenScaleRatio integer_value
Added the
ClearAlphaChannel
setting (NSUserDefault) to control clearing of the alpha channel. The default isYES
, which is enabled. You can disable this option by entering the following at a command prompt:defaults write com.testplant.ios-gateway ClearAlphaChannel NO
Added functionality that forces the iOS Gateway to automatically assign a port when the server port is set to zero using the
Auto-assign Port
General Preference setting.Added the
OverwriteFilesWhenReceiving
setting (NSUserDefault) that specifies to overwrite existing iOS Gateway files when receiving new files. The default isYES
, which is enabled. You can disable it by entering the following at a command prompt:defaults write com.testplant.ios-gateway OverwriteFilesWhenReceiving NO
Added various bug fixes and minor improvements.
Added general performance improvements.
2.41 (24 March 2015)
Highlights
We have made major improvements to Application Resigning.
To improve the process of resigning apps we will now be taking the entitlements from the provided mobile provisioning profile (rather than from the embedded one within the application). This will prevent a number of problems when the app provider and the re-signer come from different Apple Developer Groups (these restrictions were added in iOS 8.1.3). However, it’s still important that any entitlements that an application uses are present in the mobile provisioning profile. If a required entitlement is missing your application may not behave correctly and could fail to launch altogether.
- Switched to use entitlements from mobile provisioning profile
- Added an error if the provided profile is not a developer profile
- Added a warning if provided profile doesn’t match the profile within the app
- We now remove older copies of the eggOnLauncher and eggOnAgent to avoid problems with identifier mis-matches
2.4 (2 March 2015)
Highlights
- Added feature to install and uninstall IPAs directly from the Gateway
- Added protocol for setting Mobile Orientation
- Added protocol for simple file transfer
- Added protocol for sending pinch gestures
- Major Improvements when typing in Springboard mode
- iOS Gateway no longer requires a license
Bug Fixes
- Applications List refreshes when uploading apps
- Fixed a bug where LaunchApp sometimes fails with kAMDNotConnectedError
- Fixed a crash when stopping/restarting the VNC Server
- Fixed a problem resigning apps with different Team ID
- Enabled resigning apps when get-task-allow entitlement was false
- Fixed a crash during dispatch
- Updated the eggOnAgents and eggOnLauncher to install on iOS 8.1.3
2.31 (29 January 2015)
- Added Support for eggPlant's RotateMobile command
- Significant fixes to Typing in a Dev Signed App
- Added the ability to resign entitled apps
- Added the ability to make the console area bigger
- Added a menu item to clear the console area
- Fixed a problem where LaunchApp could fail to start the app process
- Fixed a problem where sometimes the screen would stop updating
2.30 (19 December 2014)
- Added Support for iPhone 6+ in Zoom mode
- Fixed a problem where Launching new apps could leave processes running on the Phone
- Fixed a problem where the Gateway could crash when doing a Launch App
2.23 (6 November 2014)
- Fixed a problem typing the number 6 on iPhone when in Springboard mode
2.22 (6 November 2014)
- Fixed a problem with Drag/Swipe events raising an exception
2.21 (5 November 2014)
- Fixed a problem signing IPAs on Yosemite (Mac OS X 10.10)
- Fixed a problem where wildcard provisioning profiles would overwrite other apps with the same profile
- Fixed some cases typing on the iPad "Split" keyboard in iOS 10.8
- Fixed a problem with exceptions stopping the automation when typing in Springboard mode
- Fixes some issues with the iOSGateway Utility Suite
2.20 (29 October 2014)
Highlights
Added the ability to sign an iPhone App (IPA) with your development provisioning profile. You must have downloaded your signing identity and mobile provisioning profile from Apple.
The iOS Gateway now supports simultaneous access to connect to multiple iOS 8 devices from a single computer. Launch a new copy of the iOS Gateway for each VNC connection:
open -n -a iOSGateway
For apps signed with a development provisioning profile the iOS Gateway now handles switching keyboards for TypeText commands.
Compatibility Notes
- The application name has been changed to iOSGateway (one word) to simplify deployment in some environments. Please remove older copies of iOS Gateway.app.
- Because Xcode 6 makes it difficult to sign xcarchives with a development provisioning profile we are now distributing the eggOnAgent and eggOnLauncher as .IPA files. If you have previously signed and deployed these utilities you do NOT need to do so again.
Bug Fixes
- Added a warning if an InitialDevice specified on the command line can not be found
- Fixed some crashes when disconnecting eggPlant client
- Fixed a timing bug that made it difficult to type long strings on the SUT
- Fixed a bug where clicks were offset on the iPhone 6+
- Fixed a problem where the automation light would stay red after an app launched.
2.11 (29 September 2014)
- Fixed a problem where apps signed with a development provisioning profile did not properly handle pop ups
2.10 (25 September 2014)
- Added the ability to connected to a specific device or app on launch:
open -a iOSGateway --args -InitialDevice [devicename] -InitialApp [appname]
- Added a warning if Enable UI Automation hasn’t been enabled on the iOS Device under Settings->Developer
- Improved Automation Hang Protection to restart automation when necessary
- Fixed an issue where failed Screen Updates could hang the iOS Gateway
- Made it easier to resolve apostrophes in Device Name
- Fixed some crashes when disconnecting eggPlant client
- Fixed an issue where the Automation/Springboard would restart when it did not need to
2.0 (19 September 2014)
- iOS Gateway will now check For Updates on Startup
- LaunchApp now supports "Springboard" as an App Name
- Fixed a bug where Screen buffer could stop updating
- Improved handling of failed Reverse Connections
- Fixed some places that could crash during GUI updating
- Fixed a problem where the agents would start without a VNC server running
- Add ability to dynamically detect iOS version
- Fixed some typos in Gateway output
1.04 (4 September 2014)
- Resolved the performance issues with hiding or minimizing the iOS Gateway
- Resolved a problem where events were ignored in subsequent script runs/connections
- Improved performance of the screen capture
- Fixed a problem where the connection could drop when sitting idle
- Fixed a problem where logging would turn off after using the HomeButton
- Fixed a problem where the automation would not properly restart when it was hung (preventing events from being sent)
- Fixed some crashes caused by connecting/disconnecting from eggPlant
1.03 (28 August 2014)
- Eliminated all reproducible instances of the "thread 0 dispatch" crash
- Fixed a number of cases where the Automation Agent would stop/restart because of an exception in the Javascript
- Fixed crashes caused by uncaught exceptions in the VNC communication (mutex locks)
- Improved the reliability of the communication between various parts of the iOS Gateway
- Gateway timing should be more faster and more consistent
- Fixed crashes caused by stopping/quitting the VNC server
1.02 (5 August 2014)
- Added support for LaunchApp from eggPlant Functional 14.20+
- Added support for app discovery to show valid Development signed apps are available on the device
- Fixed an issue with licenses expiring prematurely
1.01 (25 July 2014)
- Reduces latency between sending events and them posting to the iOS Device
- Adds compatibility for Mac OS X 10.8
- Fixes a problem when restoring windows on startup
- Fixes a problem where events are occasionally not posted to the iOS Device