This documented is intended as a technical guide for the iOS developers building and personalizing the WhiteLabel version of the AssistAR app.

It is expected that the reader has knowledge about core iOS concepts, like bundle ids, code signing and generation of mobile provisioning profiles.

Pre requisites

AssistAR License

The Application can only run with a valid AssistAR Professional license. Please check your current license is the right one or contact sales for upgrading or requesting a free trial.

SDK Token

Obtain a mobile SDK token from the TeamViewer Management console (login.teamviewer.com).

Application Bundle ID

You need to create a bundle ID in your Apple Developer Program. Required entitlements: Associated Domains.

Provisioning Profiles

You need to create a developer provisioning profile, and a distribution (AppStore) provisioning profile.

Configuration

The configuration file is in the path: BaseAppConfig.xcconfig

SDK Token

Change the key named: TV_SDK_TOKEN and replace it with your token.

Application Bundle ID

Change the key named: PRODUCT_BUNDLE_IDENTIFIER and replace it with your bundle id.

Application Name

Change the key named: PRODUCT_NAME and change it with your app name.

Provisioning Profiles

Change the setting in XCode regarding the code signing so that you choose the provisioning profiles that you created for development and for distribution.

Personalization

Application Icon

If you need to change the Application icon, you need to generate an iOS App Icon bundle using any tool. Once you have the Bundle, you can drag and drop it in the resource asset catalog.

Once the bundle is in the assets, change: ASSETCATALOG_COMPILER_APPICON_NAME to the name of the AppIcon bundle.

Onboarding images

You can replace the images and the text for the onboarding screens, by adding the images you need to the asset catalog, and modifying the following keys in the configuration file:

Images

TV_ONBOARDING_SLIDE_I to TV_ONBOARDING_SLIDE_IV

Texts

TV_ONBOARDING_TEXT_I to TV_ONBOARDING_TEXT_IV

Panorama Image

You can add a fisheye image to be used as the main Application background. You can also disable this option.

Add the high-resolution fisheye (360) image to the assets catalog, then specify that asset name in the configuration file under the following key: TV_PANORAMA_ASSET_NAME

Launch Screen Logo

Add an image into the assets and edit the setting named: TV_LAUNCH_SCREEN_ASSET_NAME

Colors

Color Name Usage Default

WLBackgound

Global background color for the App.

White

WLConnectFieldBorder

Border color for the connect field.

Dark Grey

WLConnectFieldText

Text color for the connect field.

Dark Blue

WLHeaderBackground

Background color used in the navigation headers.

White

WLHeaderText

Text color used in the navigation headers.

Black

WLPrimaryButtonBackground

Background color used in the connect button. Enable state. 

TeamViewer Blue

WLPrimaryButtonDisabled

Background color used in the connect button. Disable state. 

Grey

WLPrimaryButtonText

Background color used in the connect button.

White

WLSecondaryButtonBackground

Background color used in the abort button. All states.

White

WLSecondaryButtonText

Text color used in the abort button.

Dark Blue

WLText

Global text color for the App.

Black

WLWaitingRoomBackground

Background color used in the Waiting room screen.

TeamViewer Blue

WLWaitingRoomText

Text color used in the waiting room screen.

White

Build Tools

We provide the WhiteLabel app with a couple of small python scripts to help changing the colors in the asset files and storyboards. It is not mandatory to use it. You can add this as part of your build script.

Example input JSON file:

{

  “WLText”: “FFFFFF”,

  “WLBackgound”: “000000”

}

colors.py

Takes a JSON colors definition file and replaces the colors in the Assets folder. Usage:

> python3 colors.py colorMap.json “ApplicationLayer/Assets.xcassets/Whitelabel/”

storyboards.py

Takes a JSON colors definition file and applies this to a given storyboard. Usage:

> python3 storybaords.py colorMap.json ApplicationLayer/Base.lproj/LaunchScreen.storyboard

All configuration settings

Configuration Name Description

TV_SDK_TOKEN

SDK Token.

PRODUCT_NAME

Name of the App.

PRODUCT_BUNDLE_IDENTIFIER

Bundle of the App.

ASSETCATALOG_COMPILER_APPICON_NAME

Name of the AppIcon resource inside the Assets folder.

IOS_MICROPHONE_PERMISSION_TEXT

Text used when iOS ask the user for the Microphone Permissions.

IOS_CAMERA_PERMISSION_TEXT

Text used when iOS asks the user for the Camera Permissions.

IOS_PHOTOS_PERMISSION_TEXT

Text used when iOS asks the user for the Photo Library Permissions.

DEEP_LINKING_DOMAIN

Domain used for deep-linking, the App will open automatically links for that domain. This configuration will be used in Appstore builds.

DEEP_LINKING_DOMAIN_DBG

Domain used for deep-linking, the App will open automatically links for that domain. This configuration will be used in Local builds.

TV_MAJOR_MINOR

Major and minor version.

TV_PANORAMA_ASSET_NAME

Name of the asset used as panorama background. It can be empty.

TV_LAUNCH_SCREEN_ASSET_NAME

Name of the asset used as launch screen background.

TV_HEADER_ICON_NAME

Name of the asset used as header icon. It can be empty.

TV_CORPORATE_INFO_FILENAME

Name of the asset used as document for the settings section "Corporate Info". It can be empty.

TV_PRIVACY_INFO_FILENAME

Name of the asset used as document for the settings section "Privacy Info". It can be empty.

TV_LEGAL_NOTICE_FILENAME

Name of the asset used as document for the settings section "Legal Notice". It can be empty.

TV_DIVIDER_ASSET_NAME

Name of the asset used as the divider between the header and the app background. It can be empty.

TV_ONBOARDING_SLIDE_I

Name of the asset used as image in the onboarding step 1.

TV_ONBOARDING_SLIDE_II

Name of the asset used as image in the onboarding step 2.

TV_ONBOARDING_SLIDE_III

Name of the asset used as image in the onboarding step 3.

TV_ONBOARDING_SLIDE_IV

Name of the asset used as image in the onboarding step 4.

TV_ONBOARDING_TEXT_I

Text used as footer in the onboarding step 1.

TV_ONBOARDING_TEXT_II

Text used as footer in the onboarding step 2.

TV_ONBOARDING_TEXT_III

Text used as footer in the onboarding step 3.

TV_ONBOARDING_TEXT_IV

Text used as footer in the onboarding step 4.