Skip to main content
This guide walks through the process of building an iOS Starter App that:
  1. Connects to Plaud devices
  2. Syncs recordings from Plaud device to mobile phone
  3. Uploads recordings from your users’ mobile phone to Plaud’s file storage
  4. Transcribes recordings with the Transcription API
starter-app

Onboard to the Plaud Developer Platform

If you don’t have access to the Plaud Developer Platform, visit dev.plaud.ai and fill out the contact form. Once your request is reviewed, you’ll receive setup instructions and access to the developer console. Create an Embedded SDK Application to receive your Client ID and Secret Key.
app credentials

Set Up the Starter App

The Starter App is a good reference for an end-to-end implementation.If you’re a seasoned mobile developer and have an existing mobile app for your product, feel free to skip the Starter App and get started with integration with the Embedded SDK.

Prerequisites

  • A Mac running macOS with Xcode 16.0+ (the SDK is built with Swift 6.0.3)
  • iOS 14.0+ as deployment target
  • An Apple ID for code signing onto a physical device. A free Apple ID works for local testing; TestFlight or App Store release (Step 6) requires the paid Apple Developer Program
  • A physical iOS device — the SDK frameworks are arm64-only, so iOS Simulator is not supported
  • A Plaud device for end-to-end testing

Clone the starter app and generate the Xcode project

git clone https://github.com/plaud-ai/plaud-template-app
cd plaud-template-app/plaud-template-app/ios
xcodegen generate
Install XcodeGen (brew install xcodegen) to generate an Xcode project from the project.yml file
The xcodegen generate step is required — PlaudTemplateApp.xcodeproj does not exist in source control and is built from project.yml. You can find the GitHub repository for the starter app here.

Retrieve a user token

The USER_ACCESS_TOKEN is the per-user JWT your backend mints by calling POST /open/partner/users/access-token on platform-<region>.plaud.ai. See the Authorization API reference for the full exchange flow. The Secret Key stays on your backend — never ship it with the app.
client_id, secret_key, and api_key are issued per region (currently us and jp; eu and sg coming soon). Your backend must call the matching platform-<region>.plaud.ai host when minting the per-user access token — credentials issued for one region will not authenticate against another.

Configure credentials

Open PartnerConfig.xcconfig and set three values:
xcconfig
# Required for SDK initialization
USER_ACCESS_TOKEN = your-user-access-token

# Required for the Transcription API
PLAUD_CLIENT_ID = your-client-id
PLAUD_API_KEY   = your-api-key
For local development, create PartnerConfig.local.xcconfig alongside it with your real values — it’s gitignored and overrides the placeholders. Then open project.yml and change bundleIdPrefix: com.plaud to your own reverse-DNS prefix (e.g., com.acme); Xcode auto-assigns your Development Team on first build.

(Optional) Apply branding

Four places control the entire visual identity:
AssetLocationHow to change
App nameproject.ymlname:Renaming the target updates CFBundleName via $(PRODUCT_NAME). For a distinct Home Screen label, also add CFBundleDisplayName to Info.plist. Re-run xcodegen generate after editing.
App iconPlaudTemplateApp/Resources/Assets.xcassets/AppIcon.appiconset/Drop in your 1024×1024 icon set.
Theme colorsPlaudTemplateApp/Common/PlaudTheme.swiftEdit the UIColor(hex:) constants. The template ships intentionally monochrome (#1f1f1f labels, #f9f9f9 background); add a brand-color constant here and reference it from your views.
Launch screenPlaudTemplateApp/Info.plistUILaunchScreen dictChange UIColorName to your brand color, or replace the dict with a UILaunchStoryboardName pointing at a storyboard you add.

Run & test with a real device

open PlaudTemplateApp.xcodeproj  # then ⌘R in Xcode
Connect a physical iPhone over USB and select it as the run destination. Simulator is not supported — the SDK frameworks are arm64-only. Verify app launches, device pairs, recording syncs, and transcript appears on your iPhone.
Do not forget to unbind your Plaud device!Plaud devices can only be bound to one application at a time (tied to your Partner Token). You will not be able to bind your Plaud device to another app(or the Plaud App) before unbinding from the Starter App.