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

EAS not handling vendored framework correctly for store builds #2204

Closed
rbright opened this issue Jan 30, 2024 · 3 comments
Closed

EAS not handling vendored framework correctly for store builds #2204

rbright opened this issue Jan 30, 2024 · 3 comments
Labels
needs review Issue is ready to be reviewed by a maintainer

Comments

@rbright
Copy link

rbright commented Jan 30, 2024

Summary

Observations

  1. I observed an issue with a vendored xcframework in TestFlight builds of an application that caused the application to crash when an Expo module I wrote called a function that interacted with that framework. This issue did not occur when running prebuild and ios commands locally.

  2. Upon further inspection, I realized that the application only crashes when built with distribution set to store. It does not crash for internal builds.

Expected Behavior

I would expect EAS to properly handle vendored frameworks for store builds as it does for internal builds.

Managed or bare?

Bare

Environment

  expo-env-info 1.2.0 environment info:
    System:
      OS: macOS 14.2.1
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 20.10.0 - ~/.nvm/versions/node/v20.10.0/bin/node
      Yarn: 1.22.21 - ~/.nvm/versions/node/v20.10.0/bin/yarn
      npm: 10.2.3 - ~/.nvm/versions/node/v20.10.0/bin/npm
      Watchman: 2024.01.22.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.14.3 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 23.2, iOS 17.2, macOS 14.2, tvOS 17.2, visionOS 1.0, watchOS 10.2
      Android SDK:
        API Levels: 33, 34
        Build Tools: 33.0.1, 34.0.0
        System Images: android-34 | Google APIs ARM 64 v8a, android-34 | Google Play ARM 64 v8a
    IDEs:
      Android Studio: 2023.1 AI-231.9392.1.2311.11076708
      Xcode: 15.2/15C500b - /usr/bin/xcodebuild
    npmPackages:
      expo: 50.0.4 => 50.0.4
      expo-router: ^3.4.6 => 3.4.6
      react: 18.2.0 => 18.2.0
      react-native: 0.73.2 => 0.73.2
    npmGlobalPackages:
      eas-cli: 5.9.3
    Expo Workflow: bare
✔ Check Expo config for common issues
✔ Check package.json for common issues
✔ Check dependencies for packages that should not be installed directly
✔ Check for common project setup issues
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check npm/ yarn versions
✔ Check that packages match versions required by installed Expo SDK
✔ Check that native modules do not use incompatible support packages
✔ Check for legacy global CLI installed locally
✔ Check that native modules use compatible support package versions for installed Expo SDK

Error output

There are no build-time errors when building with EAS. The error presents at runtime and causes the application to crash.

Reproducible demo or steps to reproduce from a blank project

  1. Create a new Expo project with EAS.
  2. Create an Expo module that references a vendored xcframework in its podspec and calls a function from that framework.
  3. Use that module in your sample application.
  4. Initiate a build with distribution set to store in EAS and observe no build errors.
  5. Test the application functionality that leverages the vendored framework and observe a runtime crash.
@rbright rbright added the needs review Issue is ready to be reviewed by a maintainer label Jan 30, 2024
@rbright rbright changed the title EAS not handling vendored framework correctly when ios is present in gitignore EAS not handling vendored framework correctly for store builds Jan 30, 2024
@rbright
Copy link
Author

rbright commented Jan 30, 2024

Following up, this issue doesn't seem to appear as of EAS v7.1.2. There have been two major version updates since I originally configured EAS in late December, but setting the following in my EAS configuration is leading to TestFlight builds properly handling vendored frameworks:

{
  "cli": {
    "appVersionSource": "remote",
    "promptToConfigurePushNotifications": false,
    "version": ">= 7.1.2"
  },
  ...
}

@rbright rbright closed this as completed Jan 30, 2024
@rbright
Copy link
Author

rbright commented Jan 31, 2024

Reopening, because this is still failing intermittently. Simply rebuilding the same project with EAS can lead to success or failure with no changes.

@rbright rbright reopened this Jan 31, 2024
@rbright rbright closed this as completed Feb 13, 2024
@rbright
Copy link
Author

rbright commented Feb 13, 2024

Closing, as there seems to be no determinism to the failures in EAS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs review Issue is ready to be reviewed by a maintainer
Projects
None yet
Development

No branches or pull requests

1 participant