OEM white-label mobile builds
Original equipment manufacturer (OEM) partners can ship white-label builds of Profinity Mobile with their own branding and bundle identifiers. Prohelion sends the source package, BUILD.md and WHITE-LABEL.md on request, so contact Prohelion at prohelion.com/contact.
The Profinity Mobile source package includes the build guide (BUILD.md) and the white-label guide (WHITE-LABEL.md). The source package's BUILD.md lists the full prerequisites for building, with their minimum versions.
Branding configuration
OEM partners rebrand the app by editing the build-time file app.config.yaml.
Prohelion supplies this file with the Profinity Mobile source code and the branding assets. It sits in the root folder of the source package, beside package.json.
The partner then builds signed iOS and Android binaries.
The file holds these fields:
| Field | Type | Default | Description |
|---|---|---|---|
appName |
Text | Profinity |
Display name on the splash screen and in the app stores |
companyName |
Text | Prohelion Pty Ltd |
Subtitle on the splash screen |
primaryColor |
Text | #1976d2 |
Action colour for buttons and badges |
navBackground |
Text | #232c3a |
Navigation and toolbar background colour |
secondaryColor |
Text | #6b7482 |
Muted text colour |
brandRed |
Text | #e50019 |
Accent colour of the Profinity logo |
splashLogo, landingLogo and appIcon |
File upload | assets/images/profinity-logo.svg, assets/images/landing-profinity.svg and assets/images/apple-touch-icon.png |
Paths to the splash logo, the landing page logo and the app icon source artwork |
development.androidEmulatorHostConnect |
On or off | false |
Set to true only for development builds that connect an Android emulator to a Profinity server on the host machine |
discovery.profinityHeartbeatPort |
Whole number | 49025 |
Must match the Heartbeat UDP port on the Profinity server (default 49025) |
discovery.profinityHeartbeatVersion |
Text | 2.3 |
The major.minor product version (for example 2.3) that a server must report in its heartbeat. The app hides any server that reports a different version |
discovery.staleTimeoutMs |
Time (ms) | 10000 |
Time in milliseconds after which a server that has not been seen is removed from the discovery list |
The iOS bundle identifier is set in Xcode under the ProfinityMobile target, in Signing. The Android application identifier is defaultConfig.applicationId in android/app/build.gradle.
The iOS bundle identifier and the Android application identifier are set in the native projects, and each OEM sets them to its own namespace.
The npm run configure command regenerates the application configuration from app.config.yaml.
The npm run setup and npm run validate commands run it automatically.
The app build regenerates the launcher icons from the appIcon artwork.
What end users get
End users install the OEM-branded app from the OEM's own store listing, or the OEM installs it on the phones of its service technicians.
Server discovery and login behaviour are the same as in Profinity Mobile.
The app only finds servers whose Heartbeat UDP port matches discovery.profinityHeartbeatPort.
A server that uses HTTPS with a self-signed certificate shows the user a certificate prompt on first connection. Install a trusted certificate on the server where you deploy the app to staff. Sign-in through single sign-on (SSO) needs a Profinity site set to the Sso sign-in method.
Refer to the Profinity release notes for what changed in the release you ship.