Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⬆️ Upgrade to the latest everything #1168

Merged
merged 7 commits into from
Aug 27, 2024

Commits on Aug 27, 2024

  1. 🔥 Remove obsolete versions of the android SDK components

    This is consistent with
    e-mission/e-mission-docs#1079 (comment)
    and may fix the errors in the CI/CD for the android SDK installation script
    
    Testing done:
    with the other changes in this PR, `npx cordova build` succeeded
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    6caca9c View commit details
    Browse the repository at this point in the history
  2. ⬆️ Bump up to the latest version of all our dependencies

    This includes:
    - cordova-android
    - cordova-ios
    - core plugins (inapp-browser)
    - cordova CLI
    - nvm, node, npm
    - cocoapods
    - gradle
    
    This is consistent with
    e-mission/e-mission-docs#1079 (comment)
    to look through the changes in the cordova codebase
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    a7539e9 View commit details
    Browse the repository at this point in the history
  3. 🔥 Remove the manual gradle installation

    While investigating the issues with SSL errors, I discovered that cordova
    doesn't use the system gradle, but configures `build.gradle` so that the
    correct version of gradle is downloaded and installed on the first run.
    
    This means that we don't need to install gradle manually, which in turn, means
    that we don't need to install sdkman so that we install the pinned version of
    gradle.
    
    Yay for simplifying code and removing dependencies!
    e-mission/e-mission-docs#1079 (comment)
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    399e9e7 View commit details
    Browse the repository at this point in the history
  4. 🔥 Remove the pinned npm version; use the node default

    We had a pinned npm version, but we didn't actually use it,
    using the default version in node instead. As long as we have
    a reasonbly recent version of node, that seems like it will work.
    It is still pinned (just pinned implicitly by the node pin), and we don't
    actually use the pinned version now anyway.
    
    Yay for simplicity and not keeping bitrotted code around...
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    4377e43 View commit details
    Browse the repository at this point in the history
  5. ♻️ Use the correct package name for ibeacon plugin

    This ensures that we don't "discover" the plugin and try to install it
    e-mission#1168 (comment)
    
    Without this change:
    ```
    Discovered plugin "cordova-plugin-ibeacon". Adding it to the project
    Plugin "com.unarin.cordova.beacon" already installed on android.
    Plugin "com.unarin.cordova.beacon" already installed on ios.
    ```
    
    With this change: those logs don't show up
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    ff69416 View commit details
    Browse the repository at this point in the history
  6. ♻️ Move the ios script fix to before_compile

    It was in `before_build` earlier, but that led to the changes from the script
    being overridden before the actual compile started
    e-mission/e-mission-docs#1079 (comment)
    e-mission#1168 (comment)
    e-mission#1168 (comment)
    e-mission#1168 (comment)
    e-mission#1168 (comment)
    
    Testing done:
    
    Before this change:
    
    ```
    Done setting IPHONEOS_DEPLOYMENT_TARGET
    Overwriting existing resource file at platforms/ios/emission/Resources/GoogleService-Info.plist
    ^[[37mcordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist^[[39m
    ```
    
    After this change:
    
    ```
    Overwriting existing resource file at platforms/ios/emission/Resources/GoogleService-Info.plist
    ^[[37mcordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist^[[39m
    ...
    Done setting IPHONEOS_DEPLOYMENT_TARGET
    ...
    Touch /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build/Debug-iphonesimulator/emission.app (in target 'emission' from project 'emission')
        cd /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios
        /usr/bin/touch -c /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build/Debug-iphonesimulator/emission.app
    
    ** BUILD SUCCEEDED **
    ```
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    2a5f0bd View commit details
    Browse the repository at this point in the history
  7. 🔊 Improved logging around the script to patch the `IPHONEOS_DEPLOYMEN…

    …T_TARGET`
    
    Add additional logging to debug this more efficiently in the future
    The additional logging is accessed with `--verbose`. While testing this, I
    realized that `--verbose` would have been helpful in debugging this issue in
    the first place - it makes is really clear that the `pod install` happens as
    part of prepare before the compile. Still not sure how it worked locally before!
    
    - No verbose:
    
    ```
    cordova-custom-config: Applied custom config from config.xml to /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission/emission-Info.plist
    Apply patch to [
      'node_modules/@shopify/flash-list/ios/RNFlashList.xcodeproj/project.pbxproj',
      'node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj',
      'node_modules/cordova-ios/templates/project/__PROJECT_NAME__.xcodeproj/project.pbxproj',
      'node_modules/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj',
      'node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj/project.pbxproj',
      'node_modules/react-native-safe-area-context/ios/RNSafeAreaContext.xcodeproj/project.pbxproj',
      'node_modules/react-native-screens/ios/RNScreens.xcodeproj/project.pbxproj',
      'node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj/project.pbxproj',
      'platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj',
      'platforms/ios/Pods/Pods.xcodeproj/project.pbxproj',
      'platforms/ios/emission.xcodeproj/project.pbxproj'
    ]
    Done setting IPHONEOS_DEPLOYMENT_TARGET
    List simulator targets
    Select last emulator from list as default.
    List simulator targets
    No simulator found for ". Falling back to the default target.
    Building for "iPhone 15 Pro Max" Simulator (com.apple.CoreSimulator.SimDeviceType.iPhone-15-Pro-Max, iPhone-15-Pro-Max).
    Building project: /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/emission.xcworkspace
    	Configuration: Debug
    	Platform: emulator
    	Target: iPhone 15 Pro Max
    Command line invocation:
        /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -workspace emission.xcworkspace -scheme emission -configuration Debug -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 15 Pro Max" build SYMROOT=/Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/build
    ```
    
    - verbose
    
    ```
    pods.json found in platforms/ios
    Podfile found in platforms/ios
    Wrote to Podfile.
    Running `pod install` (to install plugins)
    ==== pod install start ====
    ==== pod install end ====
    Updating resource files at platforms/ios
    Prepared iOS project successfully
    
    Executing script found in config.xml for hook "before_compile": hooks/before_compile/ios/ios_change_deployment.js
    Context {
      hook: 'before_compile',
      opts: {
        platforms: [ 'ios' ],
        options: { verbose: true, argv: [] },
        verbose: true,
        silent: false,
        nohooks: [],
        searchpath: undefined,
        projectRoot: '/Users/kshankar/Desktop/data/e-mission/native_code_upgrade',
        cordova: { platforms: [Array], plugins: [Array], version: '12.0.1' },
        save: false,
        paths: [
          '/Users/kshankar/Desktop/data/e-mission/native_code_upgrade/platforms/ios/www'
        ]
      },
      cmdLine: '/Users/kshankar/.nvm/versions/node/v20.9.0/bin/node /Users/kshankar/Desktop/data/e-mission/native_code_upgrade/node_modules/.bin/cordova build ios --verbose',
      scriptLocation: '/Users/kshankar/Desktop/data/e-mission/native_code_upgrade/hooks/before_compile/ios/ios_change_deployment.js'
    }
    
    Apply patch to [
      'node_modules/@shopify/flash-list/ios/RNFlashList.xcodeproj/project.pbxproj',
      'node_modules/cordova-ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj',
      'node_modules/cordova-ios/templates/project/__PROJECT_NAME__.xcodeproj/project.pbxproj',
      'node_modules/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj',
      'node_modules/react-native-gesture-handler/ios/RNGestureHandler.xcodeproj/project.pbxproj',
      'node_modules/react-native-safe-area-context/ios/RNSafeAreaContext.xcodeproj/project.pbxproj',
      'node_modules/react-native-screens/ios/RNScreens.xcodeproj/project.pbxproj',
      'node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj/project.pbxproj',
      'platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj',
      'platforms/ios/Pods/Pods.xcodeproj/project.pbxproj',
      'platforms/ios/emission.xcodeproj/project.pbxproj'
    ]
    Done setting IPHONEOS_DEPLOYMENT_TARGET
    Executing script found in plugin cordova-custom-config for hook "before_compile": plugins/cordova-custom-config/hooks/applyCustomConfig.js
    ^[[32mcordova-custom-config: Loaded module dependencies^[[39m
    ^[[32mcordova-custom-config: Running applyCustomConfig.js^[[39m
    ^[[32mcordova-custom-config: Finished applying platform config^[[39m
    before patching, grep -r IPHONEOS_DEPLOYMENT_TARGET platforms/ios | sort | uniq:
     platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj:                         IPHONEOS_DEPLOYMENT_TARGET = 13.0;
    platforms/ios/Pods/Pods.xcodeproj/project.pbxproj:                              IPHONEOS_DEPLOYMENT_TARGET = 10.0;
    platforms/ios/Pods/Pods.xcodeproj/project.pbxproj:                              IPHONEOS_DEPLOYMENT_TARGET = 13.0;
    platforms/ios/Pods/Pods.xcodeproj/project.pbxproj:                              IPHONEOS_DEPLOYMENT_TARGET = 8.0;
    platforms/ios/Pods/Pods.xcodeproj/project.pbxproj:                              IPHONEOS_DEPLOYMENT_TARGET = 9.0;
    platforms/ios/emission.xcodeproj/project.pbxproj:                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
    
    after patching, grep -r IPHONEOS_DEPLOYMENT_TARGET platforms/ios | sort | uniq:
     platforms/ios/CordovaLib/CordovaLib.xcodeproj/project.pbxproj:                         IPHONEOS_DEPLOYMENT_TARGET = 13.0;
    platforms/ios/Pods/Pods.xcodeproj/project.pbxproj:                              IPHONEOS_DEPLOYMENT_TARGET = 13.0;
    platforms/ios/emission.xcodeproj/project.pbxproj:                               IPHONEOS_DEPLOYMENT_TARGET = 13.0;
    ```
    shankari committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    b93faf9 View commit details
    Browse the repository at this point in the history