Auto Publish

Learn how to Test & Publish your Mobile App without using Xcode or a Mac

This guide walks you through publishing your Despia v3 iOS application to the App Store Connect. With Despia v3's new runtime, you can now conditionally include native functionalities like smart widgets, app clips, and share targets.

Overview

Despia offers a one-click publishing solution that simplifies the entire CI/CD deployment pipeline for iOS applications. With our native App Store Connect integration, you can:

  • Test your application internally via TestFlight with your development team

  • Distribute beta versions to testers through TestFlight public links

  • Publish your app to the App Store to reach millions of iPhone and iPad users

  • Conditionally include native iOS features like widgets, app clips, and share extensions

When you publish with Despia, your application is automatically built on real Apple Silicon Mac Minis, code-signed, and submitted to TestFlight for validation before you submit it for App Store review. With v3's new runtime, you can enable only the native functionalities you need, avoiding unnecessary SDK bloat and potential rejection risks.

Prerequisites
  • Despia v3 account

  • Apple Developer Account ($99/year)

  • App icon (1024x1024 PNG)

  • Basic app configuration completed

Key Changes in Despia v3 for iOS

Conditional Native Functionalities

  • Smart Widgets: iOS home screen widgets

  • App Clips: Lightweight app experiences

  • Share Targets: Share content from other apps

  • Push Notifications: New OneSignal integration

These features are now modular - enable only what you need without risking App Store rejection.
1

Configure Your App in Despia

1.1 Upload App Icon

  1. Navigate to Settings > Icon

  2. Upload a 1024x1024 PNG icon

  3. Ensure the icon meets Apple's guidelines

1.2 Configure Splash Screen

  1. Go to Settings > Splash Screen

  2. Upload your splash screen image

  3. Adjust size and positioning as needed

  4. Set appearance mode (light/dark)

1.3 Enable Native Targets

Navigate to the Targets tab to enable desired functionalities:

  • Smart Widgets

  • App Clips

  • Share into App

Note: Register all bundle IDs even if not immediately using the features. This allows easy enabling later.

2

Apple Developer Setup

2.1 Create Core Bundle ID

  1. Go to developer.apple.com

  2. Navigate to Identifiers > +

  3. Select App IDs > App > Continue

  4. Configure:

    • Description: "My App Core Bundle ID"

    • Bundle ID: Copy from Despia Publishing panel

    • Capabilities to enable:

      • App Attest

      • App Groups

      • Associated Domains

      • iCloud (include CloudKit support)

      • Push Notifications (with Broadcast capability)

2.2 Register Package Bundle IDs

For each enabled target (OneSignal, App Clip, Share Target, Smart Widget), repeat this process:

OneSignal Target

  1. Create new App ID:

    • Type: App

    • Description: "OneSignal Bundle for My App"

    • Bundle ID: Copy from Despia

    • Capabilities: App Groups, Push Notifications (Broadcast)

  2. Create App Group:

    • Description: "OneSignal App Group for My App"

    • Identifier: Copy from Despia

  3. Link App Group to Bundle ID:

    • Go to OneSignal Bundle ID > App Groups > Configure

    • Select the OneSignal App Group

    • Save

  4. Link to Core Bundle ID:

    • Go to Core Bundle ID > App Groups > Edit

    • Add OneSignal App Group

    • Save

App Clip Target

  1. Create new App ID:

    • Type: App Clip (⚠️ Different from others!)

    • Parent App ID: Select your Core Bundle ID

    • Product Name: "Clip" (exactly, with capital C)

    • Capabilities: App Groups, On Demand Install Capable

  2. Follow same App Group creation and linking process

Share Target & Smart Widget

Follow the same process as OneSignal, but:

  • Type: App (not App Clip)

  • Capabilities: App Groups only

Bundle ID Registration Summary

Target

Type

Required Capabilities

Core App

App

App Attest, App Groups, Associated Domains, iCloud (CloudKit), Push Notifications

OneSignal

App

App Groups, Push Notifications (Broadcast)

App Clip

App Clip

App Groups, On Demand Install Capable

Share Target

App

App Groups

Smart Widget

App

App Groups

3

App Store Connect Setup

  1. Go to appstoreconnect.apple.com

  2. Create new app:

    • Platform: iOS

    • Name: Your app name

    • Primary Language: Your choice

    • Bundle ID: Select your Core Bundle ID

    • SKU: Your app name in caps without spaces

  3. Copy the Apple ID from App Information (not your personal Apple ID!)

4

Connect Despia to Apple

4.1 If You Have an Existing Development Team

  1. In Despia, go to Publish App

  2. Paste the App Store App ID

  3. Select your development team

  4. Click Publish Project

4.2 First-Time Setup

  1. Enable App Store Connect API:

    • Go to App Store Connect > Users and Access > Integrations

    • Enable App Store Connect API

    • Accept terms

  2. Create API Key:

    • Click Generate API Key

    • Name: "Despia CICD"

    • Access: App Manager

    • Download the key (⚠️ Can only download once!)

  3. In Despia's Publishing Panel:

    • Account Issuer ID: Copy from App Store Connect

    • Development Team ID: Find at developer.apple.com (next to your business name)

    • API Key ID: Copy from the key you created

    • Upload API Key: Upload the downloaded .p8 file

  4. Click Link with Apple

5

Build and Deploy

  1. Click Publish Project

  2. Wait 20-30 minutes for the build process

  3. You'll receive a TestFlight email when complete

What Happens During Build

  • Despia provisions a Mac Mini in their build farm

  • Opens Xcode and loads your project

  • Signs in to your Apple Developer account

  • Builds and code signs your application

  • Submits to App Store Connect

6

TestFlight Setup

Internal Testing

  1. In App Store Connect, go to TestFlight

  2. Create Internal Testing group

  3. Add yourself and team members

  4. Wait for build to appear

External Testing (Beta Users)

  1. Create External Testing group

  2. Choose "Public Link" option

  3. Fill out:

    • Beta App Description

    • Feedback Email

    • Contact Information

  4. Submit for Review

  5. Share public TestFlight link once approved

7

App Store Submission

  1. Go to your app in App Store Connect

  2. Fill out all required information:

    • Screenshots

    • Description

    • Keywords

    • Categories

    • Privacy Policy URL

  3. Add your build (from TestFlight)

  4. Complete compliance questionnaires

  5. Submit for Review

Common Rejection Reasons & Solutions

Here is a list of some of the most common app soft rejection reasons, that we have seen occur with apps build in Despia - these are not triggered by Despia’s technology but incorrect setup.

Payment Links

Issue: Stripe checkout opens in-app instead of Safari

Solution: Settings > Link Handling > Open Always in Browser Add: checkout.stripe.com

External Links

Issue: Terms of Service opens in Safari instead of in-app

Solution: Configure appropriate link handling in Despia settings

Marketing Claims

Issue: Unrealistic health/financial claims

Solution: Modify app content to comply with Apple guidelines

Important Notes

Remote Updates

  • Web app changes: Update immediately without rebuild

  • Native add-ons: Can be added via JavaScript without rebuild

  • Settings changes: Require rebuild and resubmission

When to Rebuild

Only rebuild when changing:

  • App settings (link handling, permissions, etc.)

  • Enabled/disabled native targets

  • Bundle IDs or certificates

Support

If you encounter rejections or issues:

  1. Click Get Free Expert Help in Despia dashboard

  2. Email support@despia.com

  3. Include Apple's feedback for faster resolution

Build Features

  • Download IPA: Get the compiled app file

  • Export Source Code: Access full Xcode project

  • Human-readable code: Easily modifiable if needed

Best Practices

  1. Test thoroughly on TestFlight before App Store submission

  2. Register all bundle IDs upfront for easier feature additions

  3. Use descriptive names for bundle IDs and app groups

  4. Keep your API key secure - store backup safely

  5. Don't rebuild for web app changes - they update over-the-air

Troubleshooting

Build Failures

  • Verify all bundle IDs are correctly registered

  • Check all app groups are properly linked

  • Ensure capabilities match documentation

TestFlight Issues

  • Confirm you're added to internal testing group

  • Check email for TestFlight invitation

  • Verify build status in App Store Connect

API Key Issues

  • If upload appears unclear, click upload again to verify

  • Keep backup of .p8 file - cannot be re-downloaded

  • Create new key if lost

Need Help?

If you need assistance implementing the SDK or have questions, contact our support team at support@despia.com

Updated on