OneSignal / onesignal-expo-plugin

The OneSignal Expo plugin allows you to use OneSignal without leaving the managed workflow. Developed in collaboration with SweetGreen.
Other
155 stars 50 forks source link

[Bug]: Build fails with OneSignalXCFramework (< 4.0, >= 3.0) error #142

Open tquinlan1992 opened 1 year ago

tquinlan1992 commented 1 year ago

What happened?

Running any profile with the eas build eas build -p ios locally on a M1 laptop results in the following error. The build in the expo.dev cloud build is successful

[INSTALL_PODS] [!] CocoaPods could not find compatible versions for pod "OneSignalXCFramework":
[INSTALL_PODS]   In Podfile:
[INSTALL_PODS]     OneSignalXCFramework (< 4.0, >= 3.0)
[INSTALL_PODS] 
[INSTALL_PODS]     react-native-onesignal (from `../../../node_modules/react-native-onesignal`) was resolved to 4.4.1, which depends on
[INSTALL_PODS]       OneSignalXCFramework (= 3.11.2)
[INSTALL_PODS] 
[INSTALL_PODS] Specs satisfying the `OneSignalXCFramework (< 4.0, >= 3.0), OneSignalXCFramework (= 3.11.2)` dependency were found, but they required a higher minimum deployment target.
[INSTALL_PODS] 
Error: pod exited with non-zero code: 1

Steps to reproduce?

1. Use an expo app
2. Go through the steps of using the onesignal-expo-plugin using version `"^1.2.0"`
3. Run `eas build -p ios` with any profile.  In my case I'm using this simulator profile 

{
  "build": {
    "simulator": {
      "developmentClient": true,
      "ios": {
        "simulator": true
      }
    },
  }

Plugin Config

"plugins": [
      [
        "onesignal-expo-plugin",
        {
          "mode": "development",
          "devTeam": "{devTeam}"
        }
      ]
]

What did you expect to happen?

The build to succeed

OneSignal Expo SDK version

1.2.0

Platform

iOS

Code of Conduct

rgomezp commented 1 year ago

Hey, Could you please provide the full log message (it gets cut off there at the end)?

Do you have the actual error message as well?

Also, please provide the plugin config in your app.json file

tquinlan1992 commented 1 year ago

Apologies, I'll provide that soon

tquinlan1992 commented 1 year ago

Hey, I've updated the issue above with the full log message for where the error occurs and provided the plugins section for the app.json

Also I noted that the build is failing on my m1 laptop, but succeeds in the expo.dev build

rgomezp commented 1 year ago

Howdy, Try adding iPhoneDeploymentTarget to your plugin props.

tquinlan1992 commented 1 year ago

Thanks for the note. Could you share an example of that set up? I couldn't find relevant docs

tquinlan1992 commented 1 year ago

Apologies, found the doc right here https://github.com/OneSignal/onesignal-expo-plugin#plugin-prop

tquinlan1992 commented 1 year ago

Setting it like so didn't seem to do the trick

      [
        "onesignal-expo-plugin",
        {
          "mode": "development",
          "devTeam": "devteam",
          "iPhoneDeploymentTarget": "12.0"
        }
      ]
rgomezp commented 1 year ago

Some things I would try:

tquinlan1992 commented 1 year ago

Appreciated πŸ‘ I have tried all the other profiles I believe and same issue

I'm going to try to doing the prebuild. Is that just "expo prebuild", I'll look for the docs as well. And anything in particular should I look for? I know it points to a dependency version issue and saw threads about changing android specific docs via pure react native, though wasn't sure if I would be able to make those same changes through the expo managed project

rgomezp commented 1 year ago

Howdy, Yes, we have a section on prebuilding in our main README. You can make use of your .gitignore to prevent from actually turning your project into a non-managed build.

I'm not completely following what you mean with regards to Android.

tquinlan1992 commented 1 year ago

Thank you! And no worries, I'm not exactly sure myself what I mean either... once I find time to try out the expo prebuild maybe I'll have something more

Eigilak commented 1 year ago

I fixed this by setting my iPhoneDeploymentTarget to 13

...expo,
plugins: [
      [
        'onesignal-expo-plugin',
        {
          iPhoneDeploymentTarget: '13.0',
        },
      ],
],
ilgiapa commented 1 year ago

HI all, I tried with iPhoneDeploymentTarget but nothing, same error.

11 Days ago EAS Build worked well.

Thanks

rgomezp commented 1 year ago

hey @ilgiapa , sorry for the delay. Were you able to resolve the error?

weichiangko commented 1 year ago

Hi All,

I fixed the issue by follwing the "Install pods" fail instruction:

  1. cd ios
  2. pod install --repo-update
  3. pod update OneSignalXCFramework

For anyone who bump into this issue

croshim commented 1 year ago

Still getting this issue while working with EAS. Any updates on this?

yernandus commented 1 year ago

Still getting this issue while working with EAS. Any updates on this?

try 14.0

ShaunPep commented 1 year ago

Hi Everyone,

I am currently facing the same issue, currently I have my app.json file setup as follows for the plugins.

"plugins": [
      [
        "onesignal-expo-plugin",
        {
          "mode": "production",
          "iPhoneDeploymentTarget": "15.0"
        }
      ],
      ["expo-build-properties", {"ios": {"deploymentTarget": "15.0", "extraPods": [{"name": "OneSignalXCFramework", "version": "5.0"}]}}]
    ]

When I run the command eas build -p ios --clear-cache --profile preview. I get the following error back - iOS build failed: Compatible versions of some pods could not be resolved. You are seeing this error because either:

I have tried running with clear-cache as well but still get the same error.

Any help would really be appreciated.

K3nn4 commented 1 year ago

Same problem, if you find a way to fix this plz, tell me ;)

rgomezp commented 1 year ago

@ShaunPep , You shouldn't need to include the OneSignalXCFramework pod as the plugin does this for you.

For anyone else seeing this issue, perhaps try deleting your ios directory and starting fresh in a managed build.

s-troupis commented 1 year ago

Try updating onesignal-expo-plugin to 2.0.0

imwexpex commented 11 months ago

For some reason after upgrading onesignal-expo-plugin to ^2.0.2 and running npx expo prebuild the OneSignalNotificationServiceExtension inside Podfile is not updated

To solve this issue you can manually remove:

target 'OneSignalNotificationServiceExtension' do
  pod 'OneSignalXCFramework', '>= 3.0', '< 4.0'
  use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
end

And run npx expo prebuild.

hasanaktas commented 11 months ago

eas build --platform ios --local

I don't want to prebuild.

I get this error when I want to create it with eas. If I remove the Onesignal libraries, it builds without any problems.

"expo": "^49.0.16" "onesignal-expo-plugin": "^2.0.2" "react-native-onesignal": "^5.0.2"

bug report

[RUN_EXPO_DOCTOR] Running "expo doctor"
[RUN_EXPO_DOCTOR] Running 10 checks on your project...
[RUN_EXPO_DOCTOR] βœ” Check Expo config for common issues
[RUN_EXPO_DOCTOR] βœ” Check package.json for common issues
[RUN_EXPO_DOCTOR] βœ” Check dependencies for packages that should not be installed directly
[RUN_EXPO_DOCTOR] βœ” Check for common project setup issues
[RUN_EXPO_DOCTOR] βœ” Check npm/ yarn versions
[RUN_EXPO_DOCTOR] βœ” Check Expo config (app.json/ app.config.js) schema
[RUN_EXPO_DOCTOR] βœ” Check that packages match versions required by installed Expo SDK
[RUN_EXPO_DOCTOR] βœ” Check that native modules do not use incompatible support packages
[RUN_EXPO_DOCTOR] βœ” Check for legacy global CLI installed locally
[RUN_EXPO_DOCTOR] βœ” Check that native modules use compatible support package versions for installed Expo SDK
[RUN_EXPO_DOCTOR] Didn't find any issues with the project!
[PREBUILD] $ /private/var/folders/rg/x3mc29zj5yg1dj0c0n3d7xhh0000gn/T/eas-build-local-nodejs/0c41f1bd-a202-428e-a491-b4787daab40a/build/node_modules/.bin/expo prebuild --no-install --platform ios
[PREBUILD] - Creating native project directories (./ios and ./android) and updating .gitignore
[PREBUILD] βœ” Created native project | gitignore skipped
[PREBUILD] - Updating your package.json scripts, dependencies, and main file
[PREBUILD] βœ” Updated package.json and added index.js entry point for iOS and Android
[PREBUILD] - Config syncing
[PREBUILD] Using node to generate images. This is much slower than using native packages.
[PREBUILD] β€Ί Optionally you can stop the process and try again after successfully running `npm install -g sharp-cli`.
[PREBUILD] - Config syncing
[PREBUILD] βœ” Config synced
[PREBUILD] Running "yarn install" in /var/folders/rg/x3mc29zj5yg1dj0c0n3d7xhh0000gn/T/eas-build-local-nodejs/0c41f1bd-a202-428e-a491-b4787daab40a/build directory
[PREBUILD] [1/4] Resolving packages...
[PREBUILD] success Already up-to-date.
[INSTALL_PODS] Using Expo modules
[INSTALL_PODS] [Expo] Enabling modular headers for pod ExpoModulesCore
[INSTALL_PODS] [Expo] Enabling modular headers for pod ReactCommon
[INSTALL_PODS] [Expo] Enabling modular headers for pod React-Core
[INSTALL_PODS] [Expo] Enabling modular headers for pod React-RCTAppDelegate
[INSTALL_PODS] [Expo] Enabling modular headers for pod expo-dev-menu-interface
[INSTALL_PODS] [Expo] Enabling modular headers for pod EXManifests
[INSTALL_PODS] [Expo] Enabling modular headers for pod EXUpdatesInterface
[INSTALL_PODS] [Expo] Enabling modular headers for pod expo-dev-menu
[INSTALL_PODS] [Expo] Enabling modular headers for pod RCT-Folly
[INSTALL_PODS] [Expo] Enabling modular headers for pod expo-dev-launcher
[INSTALL_PODS] [Expo] Enabling modular headers for pod SDWebImage
[INSTALL_PODS] [Expo] Enabling modular headers for pod SDWebImageWebPCoder
[INSTALL_PODS] [Expo] Enabling modular headers for pod SDWebImageAVIFCoder
[INSTALL_PODS] [Expo] Enabling modular headers for pod SDWebImageSVGCoder
[INSTALL_PODS] [Expo] Enabling modular headers for pod EXStructuredHeaders
[INSTALL_PODS] [Expo] Enabling modular headers for pod EASClient
[INSTALL_PODS] [Expo] Enabling modular headers for pod ReachabilitySwift
[INSTALL_PODS] [Expo] Enabling modular headers for pod ASN1Decoder
[INSTALL_PODS] Auto-generating `.xcode.env.local` with $NODE_BINARY=/Users/hasanaktas/.nvm/versions/node/v18.18.0/bin/node
[INSTALL_PODS] Auto-linking React Native modules for target `hipicondev`: RNCAsyncStorage, RNFlashList, RNGestureHandler, RNGoogleSignin, RNReanimated, RNSVG, RNScreens, lottie-react-native, react-native-adjust, react-native-date-picker, react-native-netinfo, react-native-onesignal, react-native-safe-area-context, and react-native-webview
[INSTALL_PODS] Framework build type is static library
[INSTALL_PODS] [Codegen] Generating ./build/generated/ios/React-Codegen.podspec.json
[INSTALL_PODS] Analyzing dependencies
[INSTALL_PODS] Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
[INSTALL_PODS] [Codegen] Found FBReactNativeSpec
[INSTALL_PODS] Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
[INSTALL_PODS] [Codegen] Found rncore
[INSTALL_PODS] Fetching podspec for `boost` from `../node_modules/react-native/third-party-podspecs/boost.podspec`
[INSTALL_PODS] Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
[INSTALL_PODS] Fetching podspec for `hermes-engine` from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`
[INSTALL_PODS] [Hermes] Using the release tarball from Maven Central
[INSTALL_PODS] [!] CocoaPods could not find compatible versions for pod "OneSignalXCFramework":
[INSTALL_PODS]   In Podfile:
[INSTALL_PODS]     OneSignalXCFramework (< 6.0, >= 5.0)
[INSTALL_PODS]     react-native-onesignal (from `../node_modules/react-native-onesignal`) was resolved to 5.0.2, which depends on
[INSTALL_PODS]       OneSignalXCFramework (= 5.0.2)
[INSTALL_PODS] Specs satisfying the `OneSignalXCFramework (< 6.0, >= 5.0), OneSignalXCFramework (= 5.0.2)` dependency were found, but they required a higher minimum deployment target.
[INSTALL_PODS] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `5F376399E74A4BB692B74A7F` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.
[INSTALL_PODS] 
Error: pod install exited with non-zero code: 1
    at ChildProcess.completionListener (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/spawn-async/build/spawnAsync.js:42:23)
    at Object.onceWrapper (node:events:632:26)
    at ChildProcess.emit (node:events:517:28)
    at maybeClose (node:internal/child_process:1098:16)
    at ChildProcess._handle.onexit (node:internal/child_process:303:5)
    ...
    at spawnAsync (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/spawn-async/build/spawnAsync.js:7:23)
    at spawn (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/turtle-spawn/dist/index.js:16:47)
    at installPods (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/build-tools/dist/ios/pod.js:11:38)
    at /Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/build-tools/dist/builders/ios.js:70:41
    at BuildContext.runBuildPhase (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/build-tools/dist/context.js:101:34)
    at buildAsync (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/build-tools/dist/builders/ios.js:69:19)
    at async runBuilderWithHooksAsync (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/build-tools/dist/builders/common.js:12:13)
    at async Object.iosBuilder (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/@expo/build-tools/dist/builders/ios.js:29:16)
    at async buildIosAsync (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/eas-cli-local-build-plugin/dist/ios.js:66:12)
    at async buildAsync (/Users/hasanaktas/.npm/_npx/63539ccd18962a9d/node_modules/eas-cli-local-build-plugin/dist/build.js:54:29)

Build failed
Unknown error. See logs of the Install pods build phase for more information.
npx exited with non-zero code: 1
newme616 commented 9 months ago

same problem here!

I hope this will be fixed soon

Czarczynski commented 6 months ago

bump here, any news?

martinezguillaume commented 2 months ago

When I was doing this command eas build --platform ios from my machine, I had my ios & android local folders generated. Deleting them before eas build did it for me

sharad-incapsulate commented 1 month ago

Issues exists with expo managed project as well using expo 51 with react-native-onesignal": "^5.2.2" and "onesignal-expo-plugin": "^2.0.3",