iOS 14 Clipboard Access

Overview

With the release of iOS 14, Apple has released a wide variety of features and changes that streamline the iOS interface.

Among these changes, Apple has updated its security and privacy protections, including notifying users anytime an app is reading from the users clipboard.

Prior to the release of iOS 14, the Airship SDK utilized the clipboard to allow our customers to capture their Device ID (Channel ID) for testing and diagnostic purposes. This tool, called the Channel Capture Tool, was enabled by default and could be enabled or disabled by making code changes to your app should the situation arise. The Channel Capture tool relied on reading a unique Channel Capture Token from the user's clipboard upon app open and would present the user's Channel Id to them. Due to this feature being enabled by default, your users may experience this new notification pop-up from Apple.

 

iphone-x-frame-copy.5099d7a2b5e840058781693515d2abc5__2_.jpg

Users may potentially perceive that your app is doing things that are intrusive to user privacy. Airship believes in these privacy changes, and as such Airship is addressing this problem in two ways.

 

Airship SDK 14.0.0 and greater (Recommended)

Airship has reworked the Channel Capture tool to no longer read content from a users clipboard. Instead, the Channel Capture tool now detects a knock of 6 app opens in 30 seconds. Instead of displaying anything to the user, the tool will write the current Channel ID to the clipboard.

Before proceeding with updating to this version of the Airship SDK, it is recommended, due to some distinct changes in this SDK, that you consult the Migration Guide. If you are currently on an older version of the Airship SDK and utilize the older Channel Capture Tool, it is recommended that you disable the Channel Capture Tool (addressed in the next section) and use a separate approach for retrieving your Channel ID. 

 

Disable the Channel Capture Tool

Note

Disabling this feature will not affect push delivery to your devices. This will only disable the Channel Capture tool and will prevent the Apple privacy notification from appearing to users on iOS 14.

Making any of these changes will require an app update, and users who update to the latest version of your app and iOS 14 will not see the Apple privacy notification. Users who do not update to the latest version of your app and who have updated to iOS 14 will still see the Apple Privacy notification each time upon opening the app.

If you have any additional questions or concerns, please contact support@airship.com.

 

On any Airship SDK greater than 6.1.0, the Channel Capture tool is enabled by default. To comply with Apple's new security standards, you may need to disable the Channel Capture Tool. Doing so will prevent the clipboard messages from triggering to users as well as also limit the ability for our customers to capture their device IDs. Should you still need access to the Channel ID, it is recommended to use a separate approach for retrieving your Channel ID.

You can disable the Channel Capture tool by adding a new boolean entry channelCaptureEnabled with a value of NO to your app’s AirshipConfig.plist

Screen_Shot_2020-09-14_at_10.26.21_AM.png

 

Disable the Channel Capture Tool programmatically (Airship SDK 14 and above)

If you would like to disable the Channel Capture tool programmatically, you can disable the tool using the new enabled property. This enable state no longer persists through app init, and will instead revert to the value of the channelCaptureEnabled key in AirshipConfig.plist

import Airship
...

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
...

UAirship.channelCapture.enabled = NO
UAirship.takeOff()

return true
}

 

Disable the Channel Capture Tool programmatically (Airship SDK 13.5.2 and below)

If you are programmatically configuring your Airship setup, you can add the isChannelCaptureEnabled flag to your UAConfig prior to calling takeOff()

import Airship
...

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]?) -> Bool {
...

let config = UAConfig.default()
config.isChannelCaptureEnabled = false
UAirship.takeOff(config)

return true
}

 

Was this article helpful?
1 out of 1 found this helpful
Submit a request