Skip to content

myplaceonline/myplaceonline_expo

Repository files navigation

myplaceonline_expo

Build for App Stores

  1. Update PACKAGE in app.config.js:
    1. Android: com.myplaceonline
    2. iOS: com.myplaceonline.main
  2. In app.config.js, increment MAJOR_VERSION_NUMBER (Android always requires that the major version is incremented), and set PATCH_VERSION_NUMBER to the current date.
  3. git commit -am "Version X.Y.Z: Major changes"
  4. git tag X.Y.Z
  5. git push && git push --tags
  6. git pull
  7. Update packages
    1. iOS
      sudo rm -rf /usr/local/lib/node_modules/expo-cli/node_modules/webpack-dev-server/node_modules/fsevents/.node-gyp
      sudo mkdir /usr/local/lib/node_modules/expo-cli/node_modules/webpack-dev-server/node_modules/fsevents/.node-gyp
      sudo npm i -g --force expo expo-cli eas-cli
      npm install
      
  8. npx expo prebuild
  9. Android:
    1. Apply https://github.com/react-native-webview/react-native-webview/pull/3176/files
    2. Update android/app/src/main/res/values/styles.xml
      1. Set <item name="android:windowTranslucentStatus">true</item> within the top section.
    3. sudo rm -rf /tmp/metro-cache/
    4. Start Android Studio
    5. Open existing project } $DIRECTORY/android
    6. Disregard the prompt to upgrade Gradle
    7. Wait until the build and indexing finish, and observe a CMake error
    8. Close Android Studio
    9. Start Android Studio
    10. Expand myplaceonline_expo } app } res } mipmap, and delete any "anydpi" files under ic_*. Uncheck "Safe delete"
    11. Update the app icon:
      1. Right click on app } New } Image Asset
      2. Icon Type: Launcher Icons (Adaptive and Legacy)
      3. Foreground Layer } Path: /work/myplaceonline/src/myplaceonline/src/myplaceonline_expo/assets/icon.png
      4. Resize: 57%
      5. Background Layer } Color: ffffff
      6. Next
      7. Finish
    12. Add files to git: Check Don't Ask Again; Cancel
    13. If you want to test in emulators, run the following (or use the later instructions to install the apk):
      1. On Linux:
        1. In one terminal window:
          1. export ANDROID_HOME=$HOME/Android/Sdk/
          2. export PATH=${ANDROID_HOME}/platform-tools/:${PATH}
          3. npx react-native start
        2. In Android studio, select the emulator type and click Play, or from another terminal window:
          1. export ANDROID_HOME=$HOME/Android/Sdk/
          2. export PATH=${ANDROID_HOME}/platform-tools/:${PATH}
          3. npm run android
      2. On other operating systems:
        1. In Android studio, select the emulator type and click Play
        2. Or from another terminal window: npm run android
    14. Stop rails dev server, sudo systemctl stop elasticsearch postgresql, VS Code, and any other memory intensive programs
    15. Build } Generate Signed Bundle/APK
      1. Android App Bundle
      2. Key store path: /work/myplaceonline/src/myplaceonline/lib/keys/myplaceonline_android_phonegap.keystore
      3. Key store password: https://myplaceonline.com/passwords/653
      4. Key alias: myplaceonline_alias
      5. Key password: Same as above
      6. Next
      7. Destination folder: /work/myplaceonline/src/myplaceonline/lib/android/builds
      8. Build Variants: release
      9. Finish
      10. Do you want to add the following file to Git? } Remember, don't ask again; Cancel
    16. cd /work/myplaceonline/src/myplaceonline/lib/android/builds/release/
    17. export ANDROID_HOME=$HOME/Android/Sdk/
    18. export PATH=${ANDROID_HOME}/platform-tools/:${PATH}
    19. Connect Android phone
    20. adb devices
    21. adb uninstall com.myplaceonline
      1. If no devices, try adb kill-server; otherwise, try rebooting the phone
    22. rm *apks toc.pb universal.apk 2>/dev/null
    23. Download bundletool: https://developer.android.com/studio/command-line/bundletool
    24. Generate apks:
      java -jar ~/Downloads/bundletool-all-*.jar build-apks --bundle=app-release.aab --output=app-release.apks --ks=/work/myplaceonline/src/myplaceonline/lib/keys/myplaceonline_android_phonegap.keystore --ks-key-alias myplaceonline_alias --mode=universal
      
    25. Install on Android phone:
      1. Simple:
        java -jar ~/Downloads/bundletool-all-*.jar install-apks --apks=app-release.apks
        
      2. If installing on a more locked Android phone:
        unzip app-release.apks
        sudo /usr/local/share/.config/yarn/global/node_modules/xdl/binaries/linux/adb/adb kill-server
        sudo /usr/local/share/.config/yarn/global/node_modules/xdl/binaries/linux/adb/adb start-server
        sudo /usr/local/share/.config/yarn/global/node_modules/xdl/binaries/linux/adb/adb devices
        sudo /usr/local/share/.config/yarn/global/node_modules/xdl/binaries/linux/adb/adb install universal.apk
        
    26. Launch app from phone launcher
    27. Close Android Studio
  10. iOS:
    1. Open XCode and then open myplaceonline_expo.xcworkspace
    2. Wait for "Indexing" to complete
    3. First time: Preferences } Accounts } Add } [email protected]
    4. Double click on myplaceonline_expo
      1. Signing & Capabilities } Team: Kevin Grigorenko
      2. Build Phases } Bundle React Native code and images } On the first line, insert:
        export EXTRA_PACKAGER_ARGS="--minify=false"
        
    5. Update the status bar style:
      1. myplaceonline_expo } myplaceonline_expo } Info.plist
      2. Set Status bar style: Dark Content
      3. Privacy - Location *: Zoom into your current location. We don't store your location.
      4. Save the file
    6. If you want to test in emulators, select the emulator type and click Play
    7. Next to the play/stop buttons, to the right of myplaceonline_expo, select Build } Any iOS Device
    8. Product } Archive
    9. Click Distribute App
    10. Wait for an email that "The following build has completed processing"
    11. Quit XCode
    12. There may be a Metro terminal window open. If so, Ctrl+C and then Enter to end it.
    13. Go to https://appstoreconnect.apple.com/apps/
      1. Click on Myplaceonline
      2. Click on the plus button in the top left to create a new version and put in X.Y.Z
      3. Summarize updates under "What's New in This Version"
      4. If needed, update screenshots and other metadata.
        1. iPhone 14 Pro Max for 6.7" Screenshots. 1290x2796
        2. iPhone 12 Pro Max for 6.5" Screenshots
        3. iPhone 8 Plus for 5.5" Screenshots 1242x2208
        4. iPad Pro (4th Gen) for iPad Pro (3rd Gen) 12.9" Screenshots 2048x2732
        5. iPad Pro (4th Gen) for iPad Pro (2nd Gen) 12.9" Screenshots
      5. Click the button, "Select a build before you submit your app"
        1. Select Yes for encryption and Yes for exemption.
      6. Click Save
      7. Wait for the notification that the app is ready to be tested in Test Flight
      8. Test the app using Test Flight
  11. If the app testing is good:
    1. iOS:
      1. Go to https://appstoreconnect.apple.com/apps/
        1. Click on Myplaceonline
        2. Click Submit for Review
    2. Android:
      1. Update the Android app in the Play store:
        1. Go to https://play.google.com/console/
        2. User = [email protected]
        3. Click on Myplaceonline
        4. Click on Production
        5. Click Create new release
        6. Upload aab file
        7. Under Release notes, summarize the updates (required)
        <en-US>
        Various bug fixes
        </en-US>
        
        1. Click Save
        2. Click Review Release
        3. Click Start rollout to Production
        4. First time: Configure notifications to email when review is complete: All apps } Settings } Preferences
      2. The store listing (such as screenshots) is updated independently under Store Presence } Main store listing
        1. Pixel 2, Nexus 7, and Nexus 10 used for screenshots
  12. iOS:
    1. git checkout -b X.Y.Z_ios
    2. git add -A .
    3. git commit -am "iOS build"
    4. git push --set-upstream origin X.Y.Z_ios
  13. Android:
    1. git checkout -b X.Y.Z_android
    2. git add -A .
    3. git commit -am "Android build"
    4. git push --set-upstream origin X.Y.Z_android
  14. git checkout master
  15. git clean --force && git reset --hard && rm -rf android/ ios/

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published