Publish to the App Store (iOS)
How to publish your Thunkable project to the Apple App Store.
Publishing your app to the App Store can be a rewarding process.
Apple requires a lot information for apps that are available in their App Store. As a result, the publishing process can feel long and will require at least 20 minutes to complete the necessary steps on the Thunkable website, which currently requires information from 4 different Apple websites. We recommend completing the Prepare for Submission steps before starting the publishing process in Thunkable.
Thunkable is continually looking for ways to streamline the publishing process and has made it possible for creators to publish from a non-Mac computer, which is normally required by the standard publishing process.
In this document, the version of your app that you submit to the App Store is referred to as a build.
Apple holds a high standard for apps that are approved for distribution in the App Store so please review Apple's policies and guidelines to make sure your app is in compliance before you sign up for the Apple Developer Program
Steps to publishing to the Apple App Store:
Prepare for Submission
Create an Apple Developer Account
You need an Apple Developer Account to publish an app to the App Store. To get a Developer Account you must enroll in the Apple Developer Program. Enrollment is approximately $99 USD (or in local currency where available) per membership year.
Certain educational institutions qualify for free Apple developer accounts. To check if your school or university if eligible, please see here: iOS Developer University Program.
Set a Version Number
Open your Thunkable project.
Navigate to the Design tab.
Click the Settings gear icon in the sidebar.
Under the iOS header, set your app's Version Number.
If this is your first time sending this app to App Store Connect, set the version number to 1.
You need to increment your version number, or increase it by 1, every time you submit a build to App Store Connect.
Review your App Permissions
iOS Permissions
Apple requires that you explain to users why you need access to sensitive services like the device's camera, photo library, and microphone.
To add these explanations:
Open your Thunkable project.
Navigate to the Design tab.
Click the Settings gear icon in the sidebar.
Under the iOS Permissions heading, add your explanations. (Note: This section is only visible if your project utilizes these features.)
Tracking Usage Description
If your app utilizes one of the following features, you must provide user tracking usage details (UTUD):
AdMob
Location Sensor
Push Notifications
Web Viewer
These features share trackable data with third parties, and you must tell your users what data is being shared and why. If you don't provide this and your app engages in tracking, Apple will reject your submission and ask you to resubmit with an appropriate tracking string.
The field should be left blank if:
You do not use one of the features listed above (i.e. no trackable data is shared with third parties).
Your app contains a Web Viewer component that only accesses a local HTML file.
To learn more about what to say in your Tracking Usage Description, see here: What should I say in my Tracking Usage Description?
There are two locations where you can set your Tracking Usage Description:
Publishing Wizard We'll explore the iOS publishing wizard in more detail in future steps.
Create an app-specific password
If a developer uses a third-party platform like Thunkable to send an app build to App Store Connect, the developer must create an app-specific password.
You only need one app-specific password for Thunkable to send any build to App Store Connect on your behalf.
You do not need separate app-specific passwords for separate Thunkable projects.
You will need your app-specific password to send each new build to your App Store listing in the future, so make sure to record it securely.
Generate an app-specific password
Navigate to the Apple ID account website.
Enter the email address and password associated with your Apple ID.
If prompted, enter your two-factor authentication code.
On the Sign-In and Security page, select App-specific passwords.
Click Generate an app-specific password if this is your first time creating an app-specific password or the plus icon if you've created an app-specific password previously.
Give your app-specific password a meaningful name so you can recognize it later.
Remember:
You can use the same app-specific password for all of your Thunkable projects.
Creating a new one every time you publish a new project is unnecessary and not recommended.
Creating a new one when you want to update an existing project is unnecessary and not recommended.
Your app-specific password is provided. You cannot retrieve this password once you close this modal, so make sure you save it somewhere safe.
You cannot retrieve this password once you close this modal, so save it somewhere safe.
Click Done.
Change an app-specific password
Any time you change or reset your primary Apple ID password, all of your app-specific passwords are revoked automatically to protect the security of your account. You need to generate new app-specific passwords for any apps that you want to continue using. To manually revoke an app-specific password:
Sign in to appleid.apple.com.
In the Sign-In and Security section, select App-Specific Passwords.
Select the Remove button next to a password you want to delete, or Revoke All.
After you revoke a password, the app using that password will be signed out of your account until you generate a new password and sign in again.
Register Your App with Apple
Every app published on the App Store must have a unique name. For example, there can only ever be one app called Thunkable Sample App
. You can register your App ID to reserve the name you want.
To register an App ID:
Open your Apple Developer account page.
Under the Certificates, IDs & Profiles heading, select Identifiers.
Click the blue + icon to add a new identifier to your account.
Choose App IDs from the list of options.
Click Continue.
Select App.
Click Continue.
On the Register an App ID screen, complete or take note of the following fields:
Description - This is the name you want to give your app. It appears next to the app icon when downloaded on a user's device. It must be unique to the App Store and cannot use special characters such as @, &, *, "
Bundle ID - This is also unique to your app, but not visible to your app users. Apple recommends reversing your domain name to create your bundle ID, i.e. com.yourDomainName.yourAppName to avoid conflicts with other apps.
Uploading apps to the App Store requires an Explicit Bundle ID. Wildcard bundle IDs are no longer accepted.
App ID Prefix (Team ID) - Record your App ID Prefix or Team ID. This automatically created, unique identifier is linked to your Apple Developer Program membership. The same ID can be used for every app you publish.
Click Continue.
Confirm that the details are correct.
Click Register.
The new App ID you created is included in your list of Identifiers. Click the app's name to review its Description, App ID Prefix (Team ID), or Bundle ID.
Send a Build to App Store Connect
Start the Publishing Process in Thunkable
Thunkable enables you to send your build directly to the App Store without the need for any specialized software or hardware. To begin the process:
Within your Thunkable project, click the Publish and Download icon.
A publishing modal is provided to guide you through the publication process.
Click Get Started.
Enter the Apple ID associated with your Apple Developer account.
Since two-factor authentication is the default for Apple accounts, the instructions provided are for publishing with two-factor authentication enabled. If you need to enable it for your account, please see Apple's instructions here: Turn on two-factor authentication for your Apple ID.
Click Next.
Register app
Input your App Name, Team ID, and Bundle ID from when you completed these steps: Register an App ID on App Store Connect.
Click Next.
These values will remain the same every time you publish or update this app, so record them somewhere safe.
Create an iOS Distribution Certificate
A CSR is an encoded file containing information about your app, which Apple uses to create a certificate to encrypt traffic to your app. The following instructions walk you through how to:
Download a certificate signing request (CSR) from Thunkable
Use the CSR to generate a certificate from Apple
Download the certificate from Apple
Upload the certificate in Thunkable
To generate an Apple certificate and upload it to Thunkable:
Click Click to download CSR to download a certificate signing request (CSR) file.
Open your Apple Developer account page.
Under the Certificates, IDs & Profiles heading, select Certificates.
Click the blue + icon to add a new certificate to your account.
Choose iOS Distribution (App Store and Ad Hoc) from the list.
Click Continue.
Click Choose file.
From your computer, select the Certificate Signing Request (CSR) you download from Thunkable.
Click Continue.
Click Download to save a copy of the certificate to your computer.
Return to Thunkable.
Click Upload Certificate.
From your computer, select the
.cer
file you just downloaded.Click Next.
One certificate from Apple is all you need for all the apps you publish from your account in a year. However, the certificate must be uploaded every time you update your app, so we recommend you rename it and save it somewhere you'll know to look for it next time.
When a certificate expires, it will not affect published apps, but you must create a new one and connect it to a new provisioning profile the next time you update a published app or publish a new app.
A certificate is specific to the email account that was used to generate it. Therefore, if you help another Creator publish their app, you must log in and publish from that Creator's account using their certificate.
Apple limits the number of certificates you are allowed per account, so you may need to revoke a certificate before creating a new one.
Create a Provisioning Profile
Apple requires a provisioning profile to install an app on a device. You need to create a .mobileprovision
file in your Apple account and then return to Thunkable to upload this file.
Open your Apple Developer account page.
Under the Certificates, IDs & Profiles heading, select Profiles.
Click the blue + icon to add a new certificate to your account.
Under the Distribution heading, select App Store.
Click Continue.
Select the App ID for the app you want to publish.
Click Continue.
Select the certificate you wish to include in this provisioning profile.
Click Continue.
Name your provisioning profile.
Click Generate.
Click Download to save the provisioning profile to your computer.
Return to Thunkable.
Click Upload Profile.
From your computer, select the
.mobileprovision
file you just downloaded.Click Next.
Your provisioning profile name should only contain letters (A-Z, a-z), numbers (0-9), or spaces.
App-Specific Password
Locate and copy the app-specific password you generated and saved earlier. Instructions on generating an app-specific password are available here: Generate an app-specific password. Remember, you only need one app-specific password for Thunkable.
Paste your app-specific password into the provided field in the Thunkable publishing modal.
Click Next.
Create an App Listing on App Store Connect
Your app listing on App Store Connect is where you will manage your submission to the App Store.
Go to the App Store Connect website and log in.
Click My Apps.
Click the blue + button next to the heading Apps.
Select New App from the provided menu.
Complete the New App modal.
Platforms - iOS
Name - The name you gave your app when you registered it. This is how it will appear on the App Store. It can't be longer than 30 characters.
Primary Language - If localized app information isn’t available in an App Store country or region, the information from your primary language will be used instead. Learn more.
Bundle ID - Select the Bundle ID you registered previously.
SKU - A unique ID for your app that is not visible on the App Store. This is an identifier you create to track your apps on the App Store. You should stick to a pattern with your apps' SKU numbers to better organize them and keep track of app versions. Characters a-z, A-Z, 0-9, underscores, periods and dashes are all allowed.
User Access - You can limit which users see the app in App Store Connect. If you select Full Access, all users will have access to the app. Users with the Admin, Finance, and Reports roles cannot have their app access limited.
Click Create.
Return to Thunkable.
Click Next to confirm you've created a new app with App Store Connect.
App Info
You're nearly done! You just need to ensure these app settings fields are complete if you didn't populate them previously.
App icon: This app icon appears when a user downloads your app from the App Store. Recommended size: 1024x1024 px. This icon must not have any transparent pixels.
Version Number: The version number is visible to your users when they download a new version of your app. See here for additional information: Set a Version Number.
User Tracking Usage Description - If your app utilizes one of the following features, you must provide user tracking usage details (UTUD): AdMob, Location Sensor, Push Notifications, or Web Viewer (but not if your Web Viewer component only accesses a local HTML file). See here for additional information: Tracking Usage Description.
When the necessary fields are populated, click Submit.
Congratulations
You should shortly receive an email from Thunkable informing you that your build is being sent to the App Store. There are still a number of steps you need to complete on App Store Connect before your app can be published, but that's everything completed from the Thunkable side of things - congratulations!
Because of Apple's thorough review process, app submissions are frequently not approved on the first attempt. See here to assist you in troubleshooting the issues Apple flags with your submission: Troubleshooting.
Next Steps - App Store Connect
You will need to provide some information to Apple about your app before it can be reviewed and published.
Connect Your Build to Your App Listing
You should receive an email from Apple that says your app is ready in the App Store Connect website. This may take up to an hour.
To view your build:
Go to the App Store Connect website and log in.
Click My Apps.
Select the app you want to publish to open the app listing homepage.
Click the TestFlight tab. TestFlight is a tool from Apple that allows you to test your app before it is submitted for release in the App Store. If your build was submitted successfully, it will appear here.
Click the App Store tab.
Scroll down to the section titled Build.
Click Add Build.
Select the build you want to attach to the app listing.
Click Done.
Click Save in the upper right.
iOS App - Prepare for Submission
iOS Previews and Screenshots
Apple requires accurate screenshots of your app before publishing. By adding app screenshots that showcase your app's features and functionality on its store listing page, you can help your app attract new users on the App Store.
Click [version] Prepare for Submission under the iOS App heading in the sidebar.
Under the heading iOS Previews and Screenshots, there is a tab for each required screenshot size.
Generate the required screenshots. For instructions, see here: Generate Screenshots.
Drag your screenshots into the corresponding tabs.
Product Page Details
Apple requires a lot of information before submitting your app for review.
Click [version] Prepare for Submission under the iOS App heading in the sidebar.
Complete the following fields:
Promotional text - Your app’s promotional text appears at the top of the description and is up to 170 characters long. You can update promotional text at any time without having to submit a new version of your app. Consider using this to share the latest news about your app, such as limited-time sales or upcoming features.
Description - Provide an engaging description that highlights the features and functionality of your app.
Keywords - Include one or more keywords that describe your app. Keywords make App Store search results more accurate. Separate keywords with a English comma.
Support URL - A URL with support information for your app. This URL will be visible on the App Store.
Version - The version number of the app you are adding. Numbering should follow software versioning conventions.
Copyright - The name of the person or entity that owns the exclusive rights to your app, preceded by the year the rights were obtained (for example, "2008 Acme Inc."). Do not provide a URL.
Contact Information - The person in your organization who should be contacted if the App Review team has any questions or needs additional information.
Sign-In Information - This is a user name and password we can use to sign in to your app, so we can review all of its features. If users sign in using social media, provide information for an account we can use. Credentials must be valid and active for duration of review.
Click Save in the upper right.
For additional guidance, see here: Apple: Creating your product page.
App Information
Click App Information under the General heading in the sidebar.
Complete the following fields:
Subtitle - Subtitle Your app’s subtitle is intended to summarize your app in a concise phrase. (More details available here: Apple: Creating your product page.)
Categories - Categories on the App Store help users discover new apps to meet their needs.
Content Rights - Click Set Up Content Rights Information and answer the questions provided.
Age Rating - Click Set Up Age Rating Across All Platforms and answer the questions provided.
Click Save in the upper right.
Pricing and Availability
Click Pricing and Availability under the General heading in the sidebar.
Use this guide from Apple to complete your Pricing and Availability: Manage app pricing.
Click Save in the upper right.
App Privacy
Click App Privacy under the General heading in the sidebar.
Click Edit next to Privacy Policy.
Input your Privacy Policy URL.
Click Save.
Click Get Started to provide some information about your app's data collection practices. Depending on your answer to these questions, you may be asked to answer more quations and provide additional details.
When you've completed the the necessary fields, click Save in the upper right.
Submit for Review
When you have completed all of the sections above:
Click [version] Prepare for Submission under the iOS App heading in the sidebar.
Click Add for Review in the upper right.
Apple will let you know if there are any incomplete fields. Address these errors and click Add for Review again.
Confirm your submission is accurate and click Submit to App Review.
You will receive emails updating you on the progress of your submission.
Design assets
The final section requires screenshots for both iPhone and iPad and a high resolution icon.
The high resolution icon will be featured in the App Store listing and must be 1024 x 1024 px with no transparency. To generate this icon, we recommend a tool like this.
You can see the screenshots you need in Apple's screenshot specifications document.
You can create your own iOS screenshots in your browser. Learn more here: Generate Screenshots
Export compliance
You may need to answer a question about export compliance. Select Yes when asked if your app uses encryption.
Advertising identifier
After submitting your app for review, you may be asked, "Does this app use the Advertising Identifier (IDFA)?"
The app will still be able to be published, but you will want to check the following three boxes:
Note, you should not check the box labelled Serve advertisements within the app.
Adding Push Notifications
To publish an app to the App Store that contains Push Notifications, you need to:
Send an app that does not contain Push Notifications to App Store Connect. Follow the iOS publishing instructions above.
Add Push Notifications to your app project. Instructions are available here: Push Notifications by OneSignal: iOS Configuration.
Create a new .mobileprovision file.
Send the new version of your app to App Store Connect. Follow the iOS publishing instructions above.
Between sending these two versions of your app to App Store Connect, you will need to create a new .mobileprovision file. Here's a quick overview of what that process looks like.
Click on Provisioning Profiles > All to see your current iOS provisioning profiles. Notice that the app you just created is now invalid so we need to generate a new one.
Open the inactive profile and click on Edit to generate a new one.
Scroll to the bottom of the page and click Generate.
On the next screen, click the Download button and the .mobileprovision file will be saved to your downloads folder.
Update Your App
To update an existing App Store listing, follow the instructions on Apple's website here.
For Step 6, Upload your new build to App Store Connect, follow the instructions in Send a Build to App Store Connect.
Troubleshooting
You do not see your app uploaded to App Store Connect
Icons. Apple additionally does not allow you to have any icons with any transparent colors. We recommend app icons to be 192 x 192 px
Membership. To publish to the App Store, you'll need to sign up for Apple Developer Program Membership. This currently costs $99 / year.
App Store Connect. Make sure to follow this step on creating a new app on iTunes Connect
Certificates. If you have an existing Apple Developer Program account with 2 iOS certificates, you'll have to revoke one. Apple only allows developers to have 2 iOS certificates at a time and Thunkable creates one when it publishes to your account
Provisioning profile. After you revoke your certificate, it is possible that one or more of your provisioning profiles will become inactive. To publish successfully, you'll also need to delete any inactive provisioning profiles
Login. Apple ID or password were entered incorrectly. Since we don't store either one, there's no easy way for us to check so enter it slowly
Apple ID and privacy terms. You must accept Apple's new Apple ID and privacy terms.
You see a message saying "ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs". This is a warning, but you can still publish your app. See the Web Viewer documentation for more details.
Apple account password. If you change or update the password for your Apple account password, Apple deletes your app-specific password. If you change your Apple account password, you must create a new app-specific password.
Invalid Bundle ID. A bundle ID, or package name, is a unique identifier for your app. It can be updated in App Settings. Ensure your bundle ID follows the following rules:
Has at least two segments [one or more dots].
Each segment must start with a letter.
All characters must be alphanumeric or an underscore [a-z, A-Z, 0-9, or _].
Remove your app from the App Store
If you want to remove your apps from being listed in the App Store, open your app listing on App Store Connect and follow these instructions:
On the “App Store” tab, click on “Pricing and Availability”
Click the “Remove from Sale” radio button
Then click the “Save” button to unpublish your app
You can see these buttons in the screenshot below:
Please note that if your Apple Developer account expires, your apps will no longer be available for download in the App Store.
Removing your app from the Play Store will not delete it from devices which have previously downloaded the app.
Have feedback on this doc? Please take a moment to share your feedback here: Thunkable Docs Feedback. Your valuable insights will help us improve and better serve you in the future.
Last updated