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.

    1. Access control: It ensures that only players who are participating in your playtest get access to the build

    2. Conditional access: It allows us to provide conditional access if your playtest requires players to play at specific times or intervals

    3. 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.

  1. Download the PlaytestCloud iOS SDK

  2. Generate an SDK key & Apple reviewer credentials:

    1. Click on Settings in the menu on app.playtestcloud.com

    2. Click on Manage iOS SDK credentials

    3. 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.

  3. Unzip the file PlaytestCloudSDK-vX.X.X.xcframework.zip

  4. Drag the resulting folder “PlaytestCloudSDK.xcframework” into your XCode project

  5. Go to your project’s settings, General, and make sure “Embed & Sign” is selected for PlaytestCloudSDK.xcframework under “Frameworks, Libraries and Embedded Content”

  6. At the top of your AppDelegate.m file, add:

    #import <PlaytestCloudSDK/PlaytestCloudSDK-Swift.h>
  7. 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

Generating a TestFlight public link

First, you need to distribute your build to TestFlight:

  1. Archive your project and distribute the build (including the SDK) to App Store Connect (for distribution on TestFlight)

  2. To pass TestFlight review, you will need to provide the reviewers with login credentials so they can get past the PlaytestCloud login screen. We will send you the Apple reviewer credentials along with the SDK key.

Once the build is approved by Apple for testing on TestFlight, you will need to create a TestFlight public link for playtesting:

  1. Click on TestFlight in the AppStore connect page for the game.

  2. 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.

  3. 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.

  4. Click on Enable Public Link

  5. 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:

  1. Select the playtest type you want to order

  2. Fill in the Which game are you testing section

  3. 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:

  1. 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

  2. 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.0.0

Release Date: 2022-11-03

Features & improvements:

  • Added Unreal Engine SDK

  • Added Defold SDK

  • Lower deployment target version to iOS 11

Updates to documentation:

0.1.0

Release date: 2022-10-27

Features & improvements:

  • Modified touch rendering code to use less memory

  • Added Unity plugin

Updates to documentation:

  • Updated Step 6 of the integration steps based on feedback

  • Added a new section on integrating the iOS SDK for Unity

0.0.1

Release date: 2022-10-12

Features & improvements:

  • UI to restrict access to the game and initiate authentication

  • Communication with PlaytestCloud app to authenticate players

  • Restrict access to the app depending on the status of the playtest

  • Add touch indicators to the build

If you have any questions about the SDK, you can reach our development team directly by emailing ios@playtestcloud.com.

Did this answer your question?