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

Nome da configuração Descrição

TV_SDK_TOKEN

SDK Token.

PRODUCT_NAME

Nome do aplicativo.

PRODUCT_BUNDLE_IDENTIFIER

Pacote do aplicativo.

ASSETCATALOG_COMPILER_APPICON_NAME

Nome do recurso Appicon dentro da pasta Ativo.

IOS_MICROPHONE_PERMISSION_TEXT

Texto usado quando o iOS pede ao usuário as permissões de microfone.

IOS_CAMERA_PERMISSION_TEXT

Texto usado quando o iOS pede ao usuário as permissões da câmera.

IOS_PHOTOS_PERMISSION_TEXT

Texto usado quando o iOS pede ao usuário as permissões da biblioteca de fotos.

DEEP_LINKING_DOMAIN

Domínio usado para reticulação profunda, o aplicativo abrirá links automaticamente para esse domínio. Esta configuração será usada nas compilações AppStore.

DEEP_LINKING_DOMAIN_DBG

Domínio usado para reticulação profunda, o aplicativo abrirá links automaticamente para esse domínio. Esta configuração será usada em construções locais.

TV_MAJOR_MINOR

Versão maior e menor.

TV_PANORAMA_ASSET_NAME

Nome do ativo usado como panorama. Pode estar vazio.

TV_LAUNCH_SCREEN_ASSET_NAME

Nome do ativo usado como plano de fundo da tela de lançamento.

TV_HEADER_ICON_NAME

Nome do ativo usado como ícone do cabeçalho. Pode estar vazio.

TV_CORPORATE_INFO_FILENAME

Nome do ativo usado como documento para a seção de configurações Informações corporativas. Pode estar vazio.

TV_PRIVACY_INFO_FILENAME

Nome do ativo usado como documento para a seção de configurações Informações de privacidade. Pode estar vazio.

TV_LEGAL_NOTICE_FILENAME

Nome do ativo usado como documento para a seção de configurações Aviso legal. Pode estar vazio.

TV_DIVIDER_ASSET_NAME

Nome do ativo usado como divisor entre o cabeçalho e o plano de fundo do aplicativo. Pode estar vazio.

TV_ONBOARDING_SLIDE_I

Nome do ativo usado como imagem na etapa 1 de integração.

TV_ONBOARDING_SLIDE_II

Nome do ativo usado como imagem na etapa 2 de integração.

TV_ONBOARDING_SLIDE_III

Nome do ativo usado como imagem na etapa 3 de integração.

TV_ONBOARDING_SLIDE_IV

Nome do ativo usado como imagem na etapa 4 de integração.

TV_ONBOARDING_TEXT_I

Texto usado como rodapé na etapa 1 de integração.

TV_ONBOARDING_TEXT_II

Texto usado como rodapé na etapa 2 de integração.

TV_ONBOARDING_TEXT_III

Texto usado como rodapé na etapa 3 de integração.

TV_ONBOARDING_TEXT_IV

Texto usado como rodapé na etapa 4 de integração.