Beta Testing with Standalone App & ideal customer

Wijnand Karsens
LECKR
Published in
4 min readMay 9, 2018

Based on https://docs.expo.io/versions/latest/guides/building-standalone-apps.html and my own findings (23 October 2017).

Step 1. Initial build for getting credentials:

Android:

- create android project in google play console

App.json

- Add reverse DNS value (com.progenworks.appslug) to ios.bundleIdentifier and android.package

- iOS: App Icon 1024 x 1024 non-transparent → put in assets/icon.png

- Don’t forget name, description, slug, splash

- Add notification settings:

“notification”: {“icon”: “./assets/notifications_icon.png”,“color”: “#000000”,“androidMode”: “collapse”,“androidCollapsedTitle”: “#{unread_notifications} nieuwe meldingen”},

exp start → exp build:android → wait 2–5 minutes → exp build:status

exp start → exp build:ios → wait 2–5 minutes → exp build:status

Make sure to add login credentials if you have an app that requires login

- Don’t put files in expo folder, not even under assets, or build will fail!
- Let expo handle certificates for now

Todo before uploading build:

Android:

  • up the version-number of app.json iOS if it’s not the first build
  • verhoog iOS versie-nr (version) indien niet 1e build
  • icon zonder transparency en zonder alpha channels (use alpha-channel-remover to remove alpha-channels from png)

Install Google:

https://docs.expo.io/versions/latest/sdk/google.html

https://docs.expo.io/versions/latest/sdk/map-view.html

https://console.developers.google.com/apis/credentials

Install Facebook:

https://docs.expo.io/versions/latest/sdk/facebook.html

Then build again -_-

Script:

Insert package names into review variables in import.

Change credentials in constants (import.C) for google oAuth and stuff like that

Fill in store listing with descriptions and assets:

Create screenshots of app from android simulator and iOS simulator (And tablets both platforms optionally)

Hi-res icon 512 x 512 32-bit PNG (with alpha)

Feature graphic 1024 w x 500 h JPG or 24-bit PNG (no alpha)

Privacy policy: http://leckr.io/privacy-policy or better

4. Make sure to set the right permissions under the android key! Otherwise expo will define defaults which are a lot of permissions.

Upload failed

Your APK’s package name must be in the following format “com.example.myapp”. It may contain letters (a-z), numbers and underscores (_). It must start with a lowercase character. It must be 150 characters or fewer. < — — — It’s not possible to call it com.progenworks.10g. It should start with a lowercase character, so probably com.progenworks.app10g would be ok.

SIDESTEPS:

- Configure app.json more, depending on what you need. This is also for permissions etc. See https://docs.expo.io/versions/latest/guides/configuration.html

- <StatusBar barStyle=”dark-content” /> in RN to keep statusbar text color the same as in expo on iOS (iOS standalone has different default than Expo)

NOTE:

- I let expo handle certificates. This is fine because it saves time, but I become completely dependent on their online services because I can’t update the app version without certificate.

More Info

https://developer.android.com/studio/publish/app-signing.html

https://calvium.com/how-to-make-a-p12-file/

Drag and drop the .apk into your Android emulator to see if the build was successful.

To run it on your Android device, make sure you have the Android platform tools installed along with adb, then just run adb install app-filename.apk with your device plugged in.

To run it on your iOS Simulator, first build your expo project with the simulator flag by running exp build:ios -t simulator, then download the tarball with the link given upon completion when running exp build:status. Unpack the tar.gz by running tar -xvzf your-app.tar.gz. Then you can run it by starting an iOS Simulator instance, then running xcrun simctl install booted <app path> and xcrun simctl launch booted <app identifier>. Another alternative which some people prefer is to install the ios-sim tool and then use ios-sim launch <app path>.

5. Android Developer Console to upload APK to Android to BETA test it

https://play.google.com/apps/publish/

6. TestFlight to test app for iOS

1. Add new app in iTunes connect

2. xCode → dev tools → application loader → select & upload IPA → Wait 15 minutes

Check this on the Apple submission form because of segment

  1. “Attribute this app installation to a previously served advertisement”
  2. “Attribute an action taken within this app to a previously served advertisement”
  3. “I, YOUR_NAME, confirm that this app, and any third party…”

Fill in everything in iTunes Connect and wait 1–2 days for manual review.

Make sure to add login credentials

7. Updates?

There are only a couple reasons why you might want to rebuild and resubmit the native binaries:

  • If you want to change native metadata like the app’s name or icon.
  • If you upgrade to a newer sdkVersion of your app (new React Native version, which requires new native code)

If you do this, also update the binary’s versionCode and buildNumber in app.json

  • Good to know: Note: Updates are handled differently on iOS and Android. On Android, updates are downloaded in the background. This means that the first time a user opens your app after an update they will get the old version while the new version is downloaded in the background. The second time they open the app they’ll get the new version. On iOS, updates are downloaded synchronously, so users will get the new version the first time they open your app after an update.

— —

SIDESTEPS:

- How to turn off dev mode? Or is it already off? Production optimisations react native apps should be checked

- app size: can I make it smaller?

  • permissions: can I change them to necessary only?

— — -

I’m available for contracting work in the summer of 2018 onwards. Let me know if you’re interested by sending an email to me at karsens AT outlook DOT com. My biggest skills are: React Native, Node JS, GraphQL (Apollo), and MySQL. My expertise is creating MVP’s quickly.

--

--

Wijnand Karsens
LECKR
Editor for

I am a programmer, writer and entrepreneur. Read more from me on http://karsens.com/