Skip to main content
You’re reading the docs for Newly v1 (legacy), the classic newly.app builder. Using app.newly.app or Newly for Mac? Go to the Newly v2 docs. Credits, pricing and features differ between the two.

App Deployment

Newly handles the entire app deployment process, from building your app to submitting it to the App Store and Play Store.

Deployment Options

APK (Android)

Android installable file for testing and side-loading

AAB (Android)

Android App Bundle for Google Play Store submission

iOS Build

iOS build for App Store submission

Backend Deploy

Push backend changes to production

Building for Android

The Deploy modal offers four Android targets:

Google Play Setup

Creating a Play Developer account, connecting Play Console, and choosing release tracks.

APK Build (Testing)

APK files let you install your app directly on Android devices:
1

Open Deploy Modal

Click MoreDeploy App in the project header
2

Select APK

Choose “Build APK” option
3

Configure

Set your app name and icon if not already configured
4

Build

Click Build and wait for compilation (5-10 minutes)
5

Download

Download the APK file when ready
6

Install on your device

Transfer the .apk to your Android device (email, Drive, or a direct download link) and tap it.Android will ask you to allow installs from this source the first time — this is normal for any app not installed from the Play Store. Approve it in the prompt, or under Settings → Apps → Special access → Install unknown apps.You may also see a Play Protect warning saying the app wasn’t recognized. Tap More details → Install anyway. It appears because the app hasn’t been scanned by Google, not because anything is wrong with your build.
APKs can be shared with testers directly without going through the Play Store. APK builds don’t require a signing key — only AAB builds do.
An .aab file cannot be installed on a device. It’s a bundle Google Play processes to generate device-specific APKs, not an installable app. If you want to put a build on a phone yourself, use the APK target.

AAB Build (Play Store)

Google Play requires an Android App Bundle (.aab), not an APK. You’ll need a Google Play Developer account ($25 one-time). The AAB target is a four-step wizard:
1

Enter Bundle Identifier

Your package name, in the format com.companyname.appname.
Package names cannot be changed after your first Play Store submission. Choose carefully!
2

Set App Version

Set the version name (e.g. 1.0.0) and version code (an integer). Newly shows your last successful build and pre-fills the next version for you — a patch bump and a version code one higher.Every upload to Google Play needs a version code higher than the previous one, and codes can never be reused.
3

Generate & Download Your Signing Key

Newly generates the release key Google Play requires, then asks you to download two files — release-keystore.p12 and keystore-credentials.txt. You cannot continue until both are saved.On later builds this step instead offers Use Existing Key (what you want) or Generate New Key.
Losing these files means you can never publish an update to your app. Back them up somewhere permanent — a password manager or encrypted backup, not just your Downloads folder. Full detail: Android Signing Keys.
4

Build

Newly builds and signs your app. When it finishes, download the .aab and upload it to Google Play Console.

Android Signing Keys

What the signing key is, how to store it, and what to do if you lose it.

Building for iOS

iOS builds require an Apple Developer Account ($99/year):
1

Apple Developer Account

Ensure you have an active Apple Developer Account
2

Select iOS Build

Choose “Build for iOS” in the Deploy modal
3

Expo Launch

  • Migrate to Github
  • Make the Repo public
  • Copy the Repo link
  • Open Expo Launch and paste the Repo link
4

Enter Credentials

Provide your Apple Developer credentials:
  • Apple ID
  • App-specific password (generate in Apple ID settings)
5

Configure App

  • App name
  • Bundle identifier (e.g., com.yourname.appname)
  • Version number
6

Build & Submit

Newly builds and submits to App Store Connect

Creating App-Specific Password

For iOS builds, you need an app-specific password:
  1. Go to appleid.apple.com
  2. Sign in with your Apple ID
  3. Navigate to Security → App-Specific Passwords
  4. Click “Generate Password”
  5. Name it “Newly” and save the generated password

Apps That Need Special Entitlements

If your app uses a gated capability — Family Controls (Screen Time), Critical Alerts, CarPlay, clinical Health Records, or Android restricted permissions like background location — you must apply for approval before submitting, or the store will reject it.

Permissions & Entitlements

How to request entitlements from Apple and declare restricted permissions on Google Play.

App Configuration

Before building, configure your app settings:

App Name & Icon

  1. Click MoreProject Settings
  2. Update app name
  3. Upload app icon (1024x1024 recommended)

App Icon Requirements

Use a simple, recognizable design that looks good at small sizes.

Backend Deployment

If your app uses Liquid Backend:
1

Open Deploy Modal

Click MoreDeploy App
2

Backend Section

Look for the “Backend” section in the modal
3

Push to Production

Click “Push to Production” to deploy backend changes
4

Verify

Production URL is shown when deployment completes
Deploying pushes your backend code and schema to production, not your dev data. Records created in dev stay in dev. See Dev and production data.
Deploy backend to production before submitting your app to stores. Your production app needs the production backend URL.

GitHub Integration

Connect GitHub for automatic code sync:
  1. Click MoreGitHub in the burger menu
  2. Authorize Newly to access GitHub
  3. Create a new repository or select existing
  4. Code syncs on each commit
Benefits:
  • Full version control
  • Collaborate with other developers
  • Deploy to custom infrastructure
  • Code backup and portability

GitHub Integration

Learn more about GitHub setup

Testing Before Submission

Before submitting to app stores:
  • Download APK and test on Android phone
  • Use TestFlight for iOS testing
  • Try different screen sizes
  • Test authentication flows
  • Verify data persistence
  • Check offline behavior
  • Test payments (if applicable)

App Store Submission Tips

Apple App Store

  • Screenshots: Required for each device size
  • Description: Clear, accurate app description
  • Privacy Policy: Required for all apps
  • Age Rating: Answer questionnaire accurately
  • Review Notes: Provide demo account if login required

Google Play Store

  • Screenshots: At least 2, up to 8
  • Feature Graphic: 1024x500 banner image
  • Privacy Policy: Link required
  • Content Rating: Complete questionnaire
  • Target Audience: Specify correctly

Troubleshooting Builds

Build Fails

  • Verify Apple ID and password are correct
  • Check app-specific password is valid
  • Ensure bundle ID is unique
  • Review build logs for specific errors
  • Check package name format (com.companyname.appname)
  • Verify the version code is higher than your previous upload — codes can never be reused
  • Review Gradle/dependency errors in the Logs panel → Build Logs. Paste the line containing FAILED or error: into the chat and the AI can usually fix it — see Using logs to debug
  • “Not signed with the correct key” — the build used a different signing key than your first release. Rebuild with Use Existing Key on step 3. See Android Signing Keys
  • “Version code already used” — bump the version code on step 2 and rebuild
  • APK not accepted — Play Store releases require an AAB, not an APK
  • Try building again (transient issues)
  • Clear build cache if available
  • Contact support via Discord
When an Android or iOS build fails, Newly analyzes the build log and offers a one-click fix in the chat panel — no digging through Gradle output. If the offer doesn’t appear, open the Logs panel → Build Logs, copy the line containing FAILED or error:, and paste it into the chat with one line of context.

App Rejection

If your app is rejected from stores:
  1. Read the rejection reason carefully
  2. Ask AI to help fix the issue
  3. Rebuild and resubmit
  4. Respond to reviewer if needed
Common rejection reasons:
  • Crashes or bugs
  • Incomplete functionality
  • Misleading metadata
  • Privacy policy issues
  • Guideline violations

Next Steps

Android Signing Keys

Generate and safeguard your Google Play release key

Google Play Setup

Play Developer account, Play Console connection, release tracks

GitHub Integration

Set up code syncing with GitHub

RevenueCat Payments

Add in-app purchases and subscriptions

Permissions & Entitlements

Apply for gated Apple entitlements and Android permissions