CM3050 Topic 10: Deployment
Main Info
Title: Deployment
Teachers: Joe McAlister
Semester Taken: April 2022
Parent Module: cm3050: Mobile Development
Description
In this module, we learn what it takes to export an expo app and the possibilities of further development
Key Reading
Apple
Android
Expo
Lecture Summaries
Not a requirement to submit your app to the app store for the project, but it’s important to know.
10.1 Code Signing
Code signing is an important part of creating a distributable app. At the heart of it is the means for identifying an app as being created by a specific developer. Holds the developer accountable.
Verifies that the bundle has not been altered since signing. Allows users to place trust in recognised developers.
Apple and google require you to sign your app with a certificate they provide themselves.
The model looks like this:

First you sign the app with your signature, then sent to Apple. Then they remove your signature and sign it themselves.
The signature runs off public key encryption. Developer encrypts a hashed version of their app with their private key. If the decoded hash matches the text of the source code, it’s all good.
10.2 Exporting From Expo
Expo builds app bundles in the cloud, not on your local machine (deprecated that).
You’ll need a free expo account, and a Google/Android dev account for code signing.
Fill in your app.json
. Pay attention to:
bundleIdentifier
in iOS - use reverse DNS ie domain.subdomain.subdomain
com.<company>.app
this is not visible to a user but is a unique, unchangeable identifier behind the scenes.
package
is the equivalent for Android.
version
is what you need to increment for each submission.
To build run expo build:android
or expo build:ios
, it will also run expo publish
in the background. You can set up different release channels.
When you’re done you will get a link to the downloadable bundle.
Then you can upload to the Google Play store on the online dashboard.
For IOS you need the Transporter app on a mac to deliver the bundle to Apple for review.