app version includes SDK com.segment.analytics.android:analytics, 4.9.4 or an SDK that one of your libraries depends on, which collects personal or sensitive data that includes but may not be limited to Advertising ID, Android ID identifiers.

Looks like you’re running nodejs version 12. Upgrade to 16.

yes i did upgraded it, and now showing this error when the EAS is building :frowning: do you know why?

[stderr] 
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
[stderr] 
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
> Configure project :react-native-firebase_app
:react-native-firebase_app package.json found at /home/expo/workingdir/build/node_modules/@react-native-firebase/app/package.json
:react-native-firebase_app:firebase.bom using default value: 29.1.0
:react-native-firebase_app:play.play-services-auth using default value: 20.1.0
:react-native-firebase_app package.json found at /home/expo/workingdir/build/node_modules/@react-native-firebase/app/package.json
:react-native-firebase_app:version set from package.json: 14.5.0 (14,5,0 - 14005000)
:react-native-firebase_app:android.compileSdk using custom value: 30
:react-native-firebase_app:android.targetSdk using custom value: 30
:react-native-firebase_app:android.minSdk using custom value: 21
:react-native-firebase_app:reactNativeAndroidDir /home/expo/workingdir/build/node_modules/react-native/android
> Configure project :react-native-firebase_crashlytics
:react-native-firebase_crashlytics package.json found at /home/expo/workingdir/build/node_modules/@react-native-firebase/crashlytics/package.json
:react-native-firebase_app package.json found at /home/expo/workingdir/build/node_modules/@react-native-firebase/app/package.json
:react-native-firebase_crashlytics:firebase.bom using default value: 29.1.0
:react-native-firebase_crashlytics package.json found at /home/expo/workingdir/build/node_modules/@react-native-firebase/crashlytics/package.json
:react-native-firebase_crashlytics:version set from package.json: 14.5.0 (14,5,0 - 14005000)
:react-native-firebase_crashlytics:android.compileSdk using custom value: 30
:react-native-firebase_crashlytics:android.targetSdk using custom value: 30
:react-native-firebase_crashlytics:android.minSdk using custom value: 21
:react-native-firebase_crashlytics:reactNativeAndroidDir /home/expo/workingdir/build/node_modules/react-native/android
> Task :app:bundleReleaseJsAndAssets
warning: the transform cache was reset.
Welcome to Metro!
Fast - Scalable - Integrated
[stderr] 
error index.js: Transformer.transform is not a function.
TypeError: Transformer.transform is not a function
    at Object.<anonymous> (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:80:38)
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:14:24)
    at _next (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:36:9)
    at /home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:43:7
    at new Promise (<anonymous>)
    at Object.<anonymous> (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:32:12)
    at Object._transform (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:98:21)
    at Object.transform (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/metro/src/DeltaBundler/Worker.js:55:21)
info Run CLI with --verbose flag for more details.
> Task :app:bundleReleaseJsAndAssets FAILED
[stderr] 
FAILURE: Build failed with an exception.
[stderr] 
* What went wrong:
[stderr] 
Execution failed for task ':app:bundleReleaseJsAndAssets'.
[stderr] 
> Process 'command 'node'' finished with non-zero exit value 1
[stderr] 
* Try:
[stderr] 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[stderr] 
* Get more help at https://help.gradle.org
[stderr] 
BUILD FAILED in 1m 58s
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9/userguide/command_line_interface.html#sec:command_line_warnings
1 actionable task: 1 executed
Error: Gradle build failed with unknown error. Please see logs for the "Run gradlew" phase.

What does the code look like exactly? I don’t see a Constants.deviceId in the docs.

Not sure off hand why the build is failing. What are your dependencies?

import Constants from “expo-constants”;
const deviceId = Constants.deviceId !== undefined ? Constants.deviceId : Constants.installationId;

its just basically like this. it returns a device spesific id in form of UUID. we used this as a unique identifier for each user that downloaded the app. but i think its deprececated in SDK 44,45. you wont see it in the docs but when you console.log(Constants) it returns it.

iam using sdk 43.

there are bunch of em

{
		"@react-native-async-storage/async-storage": "~1.15.0",
		"@react-native-community/datetimepicker": "3.5.2",
		"@react-native-community/masked-view": "0.1.10",
		"@react-native-community/netinfo": "6.0.2",
		"@react-native-community/picker": "1.6.0",
		"@react-native-community/slider": "4.1.7",
		"@react-native-firebase/app": "^14.5.0",
		"@react-native-firebase/crashlytics": "^14.5.0",
		"@react-navigation/bottom-tabs": "^5.11.2",
		"@react-navigation/material-bottom-tabs": "^5.2.17",
		"@react-navigation/material-top-tabs": "^5.2.17",
		"@react-navigation/native": "^5.7.3",
		"@react-navigation/stack": "^5.9.0",
		"axios": "^0.20.0",
		"babel-plugin-module-resolver": "^4.0.0",
		"crypto-js": "^4.1.1",
		"easy-peasy": "^3.3.1",
		"expo": "43",
		"expo-av": "~10.1.3",
		"expo-camera": "~12.0.3",
		"expo-cli": "^4.3.0",
		"expo-crypto": "~10.0.3",
		"expo-device": "~4.0.3",
		"expo-face-detector": "~11.0.3",
		"expo-firebase-analytics": "~5.0.3",
		"expo-font": "~10.0.3",
		"expo-image-manipulator": "~10.1.2",
		"expo-image-picker": "~11.0.3",
		"expo-intent-launcher": "~10.0.3",
		"expo-linking": "~2.4.2",
		"expo-location": "~13.0.4",
		"expo-media-library": "~13.0.3",
		"expo-notifications": "~0.13.3",
		"expo-permissions": "~13.0.3",
		"expo-splash-screen": "~0.13.5",
		"expo-status-bar": "~1.1.0",
		"expo-svg-uri": "^1.3.1",
		"expo-updates": "~0.10.15",
		"expo-web-browser": "~10.0.3",
		"lottie-react-native": "4.0.3",
		"mobx": "^5.15.6",
		"mobx-react": "^6.3.0",
		"moment": "^2.29.0",
		"react": "17.0.1",
		"react-dom": "17.0.1",
		"react-native": "https://github.com/expo/react-native/archive/sdk-43.tar.gz",
		"react-native-animatable": "^1.3.3",
		"react-native-autoheight-webview": "^1.5.4",
		"react-native-calendars": "^1.403.0",
		"react-native-copilot": "^2.5.1",
		"react-native-counter": "^0.2.0",
		"react-native-crypto-js": "^1.0.0",
		"react-native-currency-input": "^1.0.1",
		"react-native-dialog": "^5.6.0",
		"react-native-elements": "^2.3.2",
		"react-native-expo-cached-image": "^1.2.1",
		"react-native-extra-dimensions-android": "^1.2.5",
		"react-native-gesture-handler": "~1.10.2",
		"react-native-get-random-values": "^1.7.2",
		"react-native-image-viewing": "^0.2.0",
		"react-native-maps": "0.28.1",
		"react-native-modal": "^11.5.6",
		"react-native-paper": "^4.7.2",
		"react-native-reanimated": "~2.2.0",
		"react-native-safe-area-context": "3.3.2",
		"react-native-screens": "~3.8.0",
		"react-native-svg": "12.1.1",
		"react-native-swiper": "^1.6.0",
		"react-native-tab-view": "^2.15.1",
		"react-native-view-shot": "3.1.2",
		"react-native-walkthrough-tooltip": "^1.1.11",
		"react-native-web": "0.17.1",
		"react-native-webview": "11.13.0",
		"react-navigation-tabs": "^2.9.0",
		"rn-pdf-reader-js": "^4.1.1",
		"unstated": "^2.1.1",
		"unstated-next": "^1.1.0",
		"use-count-up": "^2.3.0",
		"uuid": "^8.3.2"
	}

are u sure there are no other way, preferably without EAS? i also have this message

Starting from August 9, 2022 midnight (UTC), new app releases containing the SDK version(s) that do not comply with the User Data policy may be blocked from release. You may consider moving to another SDK; removing this SDK; or if available from your SDK provider, upgrading to a policy-compliant version of this SDK that does not include the violating code.
According to the information provided by your SDK provider, you may consider upgrading to 4.10.1. Please consult the SDK provider for further information.
ACTION REQUIRED: Upload a new compliant version AND deactivate the noncompliant version.

does expo has segment version upgraded to 4.10.1 in SDK 45?

I believe the installationId is just a randomly generated UUID that is stored on the device for later use:

So I am pretty sure this is not something that Google cares about.

OK, if I have time later I will see if I can reproduce the build issue.

As I said here, the Expo team is apparently planning to have a look at this during the week. So if you really don’t want to switch to EAS Build (you will need to do it eventually) and you can wait a few days, maybe do that.

I don’t know what exactly they’re planning to do about it, but maybe upgrading to Segment 4.10.1 is one of the options they’re considering.

oke i think i will wait for the update. btw if there is an update where can i find out about it? like is theres an article or some sort?

thanks for your answers. i really appreciate it

If I hear about any changes they’ve made I’ll let you know. Not sure what they’re planning to say about it or where.

1 Like

I am seeing this, even with eas:build.

Also with regards to some earlier conversation in this thread, there is Application.androidId which is different than the Constants.deviceId.

I need help as I’m quite stuck, my manager doesn’t want to remove Segment but we need a new app store release.

If anyone at Expo needs it, here is the build which produced this rejection. I would like clarification if it is app.json settings, the actual application code, or something else which is causing this

Thanks

image

oh i see, in that case. i think the best solution for now is to wait the expo team to solve this maybe the best option for them is to upgrade the segment library to 4.10.1^ in their SDK.

Thanks, that’ll be awesome.

here’s a related issue: Android app rejected because of Segment version · Issue #17845 · expo/expo · GitHub

On Monday, June 13, we deployed expo-analytics-segment version 11.2.1 to resolve the issue for SDK 45 bare apps and apps using EAS Build. We also updated classic builds for SDK 45 to include this fix. Please run expo install expo-analytics-segment in your project to install this new version. After updating the version, bump your app version, rebuild, and resubmit.

We will deploy fixes to older SDK versions once affected users have confirmed that the issue has been resolved for them. Please confirm in this thread that the above instructions unblock your submission on SDK 45 apps with expo-analytics-segment.

1 Like

Cd mobile-app

Expo update to 45.0.0

Then

expo install expo-analytics-segment

Then go to App.js

Add these lines

import * as Segment from ‘expo-analytics-segment’;

Segment.setEnabledAsync(true);

After that you need to patch-package react native

For that

Cd…

Yarn patch-package react native

Then finally

You need to add
Yarn add react-native-safe-area-context -W

And then

Yarn app:build-android

Solve 100%

also having this issue and not quite ready to migrate to EAS yet and wondering what a good solution would be for expo build

@apps.eugene, as per notbrent’s comment above they’re working on it. If you’re on SDK 45, follow the instructions in the issue and leave a comment there about whether or not it fixes the issue. If you’re using an older SDK version, wait for an update.

Hi @vrides. Please elaborate on this? What patch are you applying to react-native?

Yes I am on SDK 40 still and in the managed workflow. This means only a new update (SDK 46) will work for me? And I’d have to upgrade to that latest SDK?

No. As far as I know, SDK 43 and up should work for you. If you do not use Segment in your app and you use EAS Build to build it, then I believe SDK 41 or SDK 42 (or higher) should also work for you.