Important! We did our best to make the PlaytestCloud iOS SDK work with all game engines, but as it is impossible to test with all engine versions and build workflows that exist in the wild, you might still encounter problems. If you find a bug in the SDK, please let us know and we will find a solution for you.
You can reach us at: ios@playtestcloud.com
The PlaytestCloud iOS SDK is a small software package that adds touch indicators and security features into TestFlight builds. It is easy to install & integrate and ensures that players play a version of the game that is as close to the original build as possible.
Integrating the SDK is optional and only required if the touch indicators and our security features are a requirement for your playtest. The SDK is only available for iOS TestFlight builds and not required for testing on Android. It is distributed as an iOS framework or Unity plugin.
You should not integrate the SDK into builds that you want to publish on the Apple App Store.
Sections in this article:
Features of the SDK:
Security: Integrating the SDK adds all of PlaytestCloud's security features into your TestFlight build.
Access control: It ensures that only players who are participating in your playtest get access to the build
Conditional access: It allows us to provide conditional access if your playtest requires players to play at specific times or intervals
Remote build deactivation (our "kill-switch"): the "kill-switch" allows us to block access to the build after the playtest is over or if access needs to be revoked at any time
Touch indicators: The SDK allows us to record where players touch the screen while playing your game
Download the SDK
Game development platform specific integration guides
Platform specific guides are available for the following game development platforms:
If you are integrating the SDK into another game engine and need assistance, please reach out to our development team at ios@playtestcloud.com. We will extend this section with additional guides upon request.
Integrating the iOS SDK into your XCode project
If you are using another game development platform, please follow these instructions for integrating the SDK into your XCode project.
Generate an SDK key & Apple reviewer credentials:
Click on Settings in the menu on app.playtestcloud.com
Click on Manage iOS SDK credentials
Click on Generate new credentials. We strongly recommend adding an identifier when generating the credentials to make credential management easier. If you already have Active credentials available, you can reuse the credentials based on your organization's credential management policy.
Unzip the file PlaytestCloudSDK-vX.X.X.xcframework.zip
Drag the resulting folder “PlaytestCloudSDK.xcframework” into your XCode project
Go to your project’s settings, General, and make sure “Embed & Sign” is selected for PlaytestCloudSDK.xcframework under “Frameworks, Libraries and Embedded Content”
At the top of your AppDelegate.m file, add:
#import <PlaytestCloudSDK/PlaytestCloudSDK-Swift.h>
Add the following line of code to the top of your applicationDidBecomeActive delegate method:
[PlaytestCloud configureWithSdkKey:@"<SDK KEY>"];
You will receive this SDK key from us in step 2
Preparing your build for TestFlight review
Archive your project and distribute the build (including the SDK) to App Store Connect (for distribution on TestFlight)
To pass TestFlight review, you will need to provide the reviewers with login credentials so they can get past the PlaytestCloud login screen. To do this:
Log in to App Store Connect
Go to the App Store tab in App Store Connect page for the game
Scroll to the App Review Information section
Enable the Sign-in required checkbox
In the fields that appear, enter the credentials that were provided when you generated the SDK key. To find the credentials again:
Click on Manage iOS SDK credentials
You will see a table titled Active credentials
In the column Apple Reviewer Credentials, you can click-to-copy the username and password that need to be entered in the form fields
Click on Save on the top right
Generating a TestFlight public link
Once the build is approved by Apple for testing on TestFlight, you will need to create a TestFlight public link for playtesting:
Click on TestFlight in the AppStore connect page for the game.
Click on the + icon next to External Testing to create a new group for your playtest.
Important: We recommend creating a new group for each playtest. This helps ensure that the setup for the playtest is not modified until the playtest has finished.Click on the new group you just created and then click on the + icon next to Builds and select the correct build in the window that pops up.
Important! Please do not change the build assigned to the External Testing group after you have ordered the playtest.
Click on Enable Public Link
Click on Set Tester Limit and set a high limit. We recommend setting it to 500
Ordering a playtest with a TestFlight public link
Now that your TestFlight public link is ready, it is time to order your playtest:
Fill in the Which game are you testing section
In the Upload your game section, paste the TestFlight public link in the Paste a link to your app form field and hit Submit
The rest of the playtest order can be filled in based on how you want to setup your playtest.
Data & Privacy
The PlaytestCloud iOS SDK communicates with the PlaytestCloud app and servers to control access to your build and record touch indicators.
Data exchanged for access control:
The SDK sends the following data to the PlaytestCloud app:
The game’s bundle identifier
Version string
Build number (used to identify the build)
The app sends this data to the PlaytestCloud servers to authenticate the player
The SDK sends the login credentials to PlaytestCloud servers if a user logs in through the login form that is displayed upon the first start of the app (This login form will only be used for the Apple App Review reviewers.)
Data exchanged for recording touch indicators:
The touch events recorded by the SDK are sent to the PlaytestCloud app. The PlaytestCloud app renders them into the playtest recording and uploads the recording to our servers.
All communication with the PlaytestCloud servers is encrypted (TLS). The PlaytestCloud SDK does not communicate with any other third-party services.
Caveats/Limitations
The SDK .xcframework does not contain a 32-bit version, that means it will not build for legacy architectures such as armv7
Troubleshooting
The import statement #import <PlaytestCloudSDK/PlaytestCloudSDK-Swift.h>
does not work
Double-check whether the parent-folder of where you dragged in the SDK is in your Framework search paths in the project settings.
Changelog
Version & Release date | Notes |
1.3.0 | Features & improvements:
|
1.2.1 Release Date: 2023-05-08
| Features & improvements:
|
1.2.0 Release Date: 2023-01-24
| Features & improvements:
|
1.1.3 Release Date: 2022-12-06 | Features & improvements:
|
1.1.2 Release Date: 2022-12-05 | Features & improvements:
|
1.1.1 Release Date: 2022-11-28 | Features & improvements:
|
1.1.0 Release Date: 2022-11-09 | Features & improvements:
|
1.0.0 Release Date: 2022-11-03 | Features & improvements:
Updates to documentation:
|
0.1.0 Release date: 2022-10-27 | Features & improvements:
Updates to documentation:
|
0.0.1 Release date: 2022-10-12 | Features & improvements:
|
If you have any questions about the SDK, you can reach our development team directly by emailing ios@playtestcloud.com.