Closed nympheastudio closed 1 year ago
Hey @nympheastudio
Thanks for reaching out.
Can you share your app.json
or app.config.js
?
Also, can you share your Podfile?
thanks here is app.json : `{ "expo": { "name": "", "slug": "", "version": "2.3.2", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "plugins": [ ["sentry-expo"], [ "expo-image-picker", { "photosPermission": "custom photos permission", "cameraPermission": "Autoriser $(PRODUCT_NAME) à utiliser votre appareil photo pour créer votre carte d abonnement", "//": "Disables the microphone permission", "microphonePermission": false } ],
[
"expo-build-properties",
{
"android": {
"AsyncStorage_db_size_in_MB": "100"
},
"ios": {
"deploymentTarget": "13.0"
}
}
],
[
"customerio-expo-plugin",
{
"android": {
"googleServicesFile": "./google-services.json"
},
"ios": {
"pushNotification": {
"useRichPush": false,
"env": {
"siteId": "***",
"apiKey": "***",
"region": "eu"
}
}
}
}
],
"sentry-expo"
],
"splash": {
"image": "./assets/screen.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true,
"bundleIdentifier": "*******",
"infoPlist": {
"CFBundleLocalizations": [
"fr"
],
"CFBundleDevelopmentRegion": "fr",
"NSCameraUsageDescription": "L'app , necessite l'activation des permissions de l appareil photo pour creer votre carte d abonnement",
"NSPhotoLibraryUsageDescription": "L'app necessite l'activation des permissions d enregistrement de photo pour creer votre carte d abonnement",
"NSLocationAlwaysAndWhenInUseUsageDescription": "L'app , necessite l'activation des permissions de la geolocalisation, afin de vous permettre de vous localiser dans Avignon durant le Festival",
"NSLocationAlwaysUsageDescription": "L'app Festival OFF, n'enregistre pas vos données de geolocalisation, cette fonctionnalité est utilisé uniquement pour vous situer dans la ville d'Avignon durant le Festival, l'app n'enregistre pas vos données de geolocalisation",
"NSLocationWhenInUseUsageDescription": "L'app F , necessite l'activation des permissions de la geolocalisation pour vous situer dans la ville d'Avignon durant le Festival, L'app n'enregistre pas vos données de geolocalisation",
"NSPhotoLibraryAddUsageDescription": "L'app F, necessite l'activation des permissions de la galerie photo pour creer votre carte d abonnement"
}
},
"android": {
"googleServicesFile": "./google-services.json",
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "com.******.app",
"versionCode": 232,
"permissions": [
"android.permission.CAMERA"
]
},
"web": {
"favicon": "./assets/favicon.png"
},
"extra": {
"eas": {
"projectId": "808da6b7-aa40-4bb1-a9d5-768bdfbebf25"
}
}
} } `
and the pod log from eas :
Using Expo modules [Expo] Enabling modular headers for pod ExpoModulesCore [Expo] Enabling modular headers for pod EXImageLoader Auto-generating
.xcode.env.localwith $NODE_BINARY=/Users/expo/.nvm/versions/node/v16.18.1/bin/node Auto-linking React Native modules for target
festivaloff: RNCAsyncStorage, RNCMaskedView, RNCPicker, RNDateTimePicker, RNGestureHandler, RNReanimated, RNScreens, RNSentry, RNVectorIcons, customerio-reactnative, react-native-image-resizer, react-native-safe-area-context, and react-native-webview Framework build type is static library [Codegen] Generating ./build/generated/ios/React-Codegen.podspec.json Analyzing dependencies Fetching podspec for
DoubleConversionfrom
../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec [Codegen] Found FBReactNativeSpec Fetching podspec for
RCT-Follyfrom
../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec Fetching podspec for
boostfrom
../node_modules/react-native/third-party-podspecs/boost.podspec Fetching podspec for
glogfrom
../node_modules/react-native/third-party-podspecs/glog.podspec Fetching podspec for
hermes-enginefrom
../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec Adding spec repo
trunkwith CDN
https://cdn.cocoapods.org/ CocoaPods 1.12.1 is available. To update use:
gem install cocoapods For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.12.1 Downloading dependencies Installing ASN1Decoder (1.8.0) Installing CustomerIO (2.6.0) Installing CustomerIOCommon (2.6.0) Installing CustomerIOMessagingInApp (2.6.0) Installing CustomerIOMessagingPush (2.6.0) Installing CustomerIOMessagingPushAPN (2.6.0) Installing CustomerIOTracking (2.6.0) Installing DoubleConversion (1.1.6) Installing EASClient (0.5.1) Installing EXApplication (5.1.1) Installing EXCamera (13.2.1) Installing EXConstants (14.2.1) Installing EXFileSystem (15.2.2) Installing EXFont (11.1.1) Installing EXImageLoader (4.1.1) Installing EXJSONUtils (0.5.1) Installing EXLocation (15.1.1) Installing EXManifests (0.5.2) Installing EXMediaLibrary (15.2.3) Installing EXPermissions (14.1.1) Installing EXSplashScreen (0.18.2) Installing EXStructuredHeaders (3.1.1) Installing EXUpdates (0.16.4) Installing EXUpdatesInterface (0.9.1) Installing Expo (48.0.17) Installing ExpoDevice (5.2.1) Installing ExpoImageManipulator (11.1.1) Installing ExpoImagePicker (14.1.1) Installing ExpoKeepAwake (12.0.1) Installing ExpoModulesCore (1.2.7) Installing ExpoStoreReview (6.2.1) Installing FBLazyVector (0.71.8) Installing FBReactNativeSpec (0.71.8) Installing Gist (3.2.2) Installing RCT-Folly (2021.07.22.00) Installing RCTRequired (0.71.8) Installing RCTTypeSafety (0.71.8) Installing RNCAsyncStorage (1.17.11) Installing RNCMaskedView (0.2.8) Installing RNCPicker (2.4.8) Installing RNDateTimePicker (6.7.3) Installing RNGestureHandler (2.9.0) Installing RNReanimated (2.14.4) Installing RNScreens (3.20.0) Installing RNSentry (4.13.0) Installing RNVectorIcons (7.1.0) Installing React (0.71.8) Installing React-Codegen (0.71.8) Installing React-Core (0.71.8) Installing React-CoreModules (0.71.8) Installing React-RCTActionSheet (0.71.8) Installing React-RCTAnimation (0.71.8) Installing React-RCTAppDelegate (0.71.8) Installing React-RCTBlob (0.71.8) Installing React-RCTImage (0.71.8) Installing React-RCTLinking (0.71.8) Installing React-RCTNetwork (0.71.8) Installing React-RCTSettings (0.71.8) Installing React-RCTText (0.71.8) Installing React-RCTVibration (0.71.8) Installing React-callinvoker (0.71.8) Installing React-cxxreact (0.71.8) Installing React-hermes (0.71.8) Installing React-jsi (0.71.8) Installing React-jsiexecutor (0.71.8) Installing React-jsinspector (0.71.8) Installing React-logger (0.71.8) Installing React-perflogger (0.71.8) Installing React-runtimeexecutor (0.71.8) Installing ReactCommon (0.71.8) Installing Sentry (7.31.5) Installing Yoga (1.14.0) Installing boost (1.76.0) Installing customerio-reactnative (2.3.3) Installing fmt (6.2.1) Installing glog (0.3.5) Installing hermes-engine (0.71.8) Installing libevent (2.1.12) Installing react-native-image-resizer (1.4.5) Installing react-native-safe-area-context (4.5.0) Installing react-native-webview (11.26.0) Generating Pods project Setting REACT_NATIVE build settings Setting CLANG_CXX_LANGUAGE_STANDARD to c++17 on /Users/expo/workingdir/build/ios/festivaloff.xcodeproj Pod install took 117 [s] to run Integrating client project [!] Please close any current Xcode sessions and use
festivaloff.xcworkspacefor this project from now on. Patching imports for file: /Users/expo/workingdir/build/node_modules/react-native-image-resizer/ios/RCTImageResizer/RCTImageResizer.m Patching imports for file: /Users/expo/workingdir/build/node_modules/@sentry/react-native/ios/RNSentry.m Patching imports for file: /Users/expo/workingdir/build/node_modules/react-native-vector-icons/RNVectorIconsManager/RNVectorIconsManager.h Patching imports for file: /Users/expo/workingdir/build/node_modules/react-native-vector-icons/RNVectorIconsManager/RNVectorIconsManager.m Patching imports for file: /Users/expo/workingdir/build/node_modules/@sentry/react-native/ios/RNSentry.h expo_patch_react_imports! took 0.248 seconds to transform files. Pod installation complete! There are 73 dependencies from the Podfile and 81 total pods installed.
in app message are working so i suppose the customerio sdk is ll podded
Do you have Push capability enabled? See our docs on how to ensure it is enabled: https://customer.io/docs/sdk/react-native/push/#add-push-notification-capabilities-in-xcode
@nympheastudio Can you please confirm if the device has notification permission granted? You can check the notification permission on iOS by following these steps:
If your app has not been granted for notification permission, it won't show any notification. You can request for notification permission using any of the following options:
ios.disableNotificationRegistration
to false
in your configHi, thanks for your answer,
first, yes on the ipad , notifications are allowed (by default after installation).
secondly , yes i Push capability is enabled (it's on a managed expo project, so no xcode) but i can see the pod log : Installing CustomerIOMessagingPushAPN (2.6.0)
after customer.io init, i register Push like on the sample app : `
if (!DEV) { const generateRandomToken = () => { let length = 163 if (Platform.OS == "ios"){ length = 64 } const char = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890'; const random = Array.from( {length: 64}, () => char[Math.floor(Math.random() * char.length)] ); const randomString = random.join(""); return randomString } const token = generateRandomToken()
CustomerIO.registerDeviceToken(token)
console.log("Device token customer.io registered" + token);
}`
it seems to be ok on android , because people are created on customer.io database, but there is no IOS user. i m waiting testflight to test a new version, i hope it ll fix my problem, i ll let you know. thanks and have a nice day
Thank you for the code sample @nympheastudio. Unfortunately, this isn't how registerDeviceToken
expected to work. The token should be provided by push provider (FCM) and not a random number. If you are using another push service in your app (e.g. react-native-firebase/messaging
, expo-notifications
), you can fetch token from the service and pass it to CustomerIO SDK using registerDeviceToken
. If you aren't using any other push service, you can simply remove the code snippet for registering token and CustomerIO SDK will automatically register token for you.
thanks a lot for your help and suggestions, i ll try this "trick" on next build test on TestFlight.
But i still have questions please : i saw that the use react-native-community/push-notification and react-native-push-notification on the package.json maybe it come from there no ?
can it come from my customer.io APN config ? (who was working with expo push) should i re install expo-notification ? ( i read that it can make confict)
once again i m on managed expo, so debug is difficult and long, and for expo managed (without ios folder and xcode features) there is no exemple.
so if you have the sample project managed expo with recent lib , because the sample ami begin to be outdated ( "expo": "~42.0.1","react-native": "0.69.1" )
thanks and have a nice day
@nympheastudio We are working on making our SDK more compatible with expo-notifications
, but that is still in progress so you may face some challenges with it. However, other libraries (e.g. react-native-push-notification
) should work fine and can provide you with device token. You can then pass the token to registerDeviceToken
and it should work fine for you.
Please let us know if you have more questions.
Hi again,
so i tried without calling registerDeviceToken method and with using the expo token . In both of case , there is no activity and no people created in the customerio database.
token = (await Notifications.getExpoPushTokenAsync()).data;
console.log(token);
if(token !== ''){
if (!__DEV__) {
console.log(' CustomerIO.registerDeviceToken(token) - exec');
CustomerIO.registerDeviceToken(token);
}
}
Si sorry to repeat but, it seems that you do not have a sample working on IOS using recent dep like "expo": "~48.0.15" and "react": "18.2.0".
Once again i m on managed, so my developping context is tiny.
please, maybe can i share my repo to someone of your team ?
Thanks by advance ( my free trial ending in 5 days so i need to see it working, as you can imagine). Thanks
@nympheastudio I understand that you are currently experiencing some issues with the activities not being reported and no device being registered. I want to assure you that we are currently testing our plugin with these releases and have not encountered any major issues thus far. It's possible that there might be another underlying cause for the problem you're facing.
Since you mention there isn't any activity reported on dashboard, I suspect this could be issue with your keys when setting up on EAS? Can you please confirm if your app is fetching the correct keys during the SDK initialization and plugin configuration on EAS. Verifying the accuracy of these keys could help us pinpoint the issue.
Additionally, we have just released a new version of the plugin, which includes bug fixes. Updating to the latest version might help resolve the problem. We recommend giving it a try.
Thank you for your understanding and patience as we work to resolve this matter promptly.
thanks for your answer. Yes, i think the certif is okay , i was enable to receive push on ios and android via expo.
i ll test with the plugin in version 1.0.0-beta.10 and let you know
hello Muhammad, i did tried : with expo plugin beta 10 + customerio-reactnative 2.3.3 but still only able te get push by android again. with expo plugin beta 10 + customerio-reactnative 2.4.0 but it goes on error on "eas build"
so i m sorry, but i switch to signal and i was enable to get push on ios and android. Thanks for your help, but because deadline of my project is coming soon i can not test anymore and ll use signal for the moment.
thanks and have a nice day
@nympheastudio Thank you for trying out our SDK. We apologize for any inconvenience you experienced during the integration process. We understand your time constraints and the need for a different solution. While we regret that our SDK did not meet your immediate requirements, we appreciate your willingness to give it a try during its beta phase.
We would like to extend our support to you in case you decide to reconsider using our SDK in the future. We will be happy to provide you with any assistance you may need and keep you updated on the progress of our SDK's development.
Once again, we apologize for any inconvenience caused, and we appreciate your valuable feedback. Please don't hesitate to reach out to us if you have any further questions or concerns. We are committed to continuously improving our SDK and ensuring a seamless integration experience for all our users.
i m working to implement expo plugin, so actually , Push & In App Msg are okay on Android but on IOS only In App Msg are working.
i guess that dependencies are ll installed because In app message are working and build pass with no errors. after read on github issues, i deleted expo-notifications but still have the bug.
may be should i revoke the push certificate (Name : Expo Push Notifications Key 2022**) ?
i m asking help because Sentry doesn't get any bug on app load and when i send push. it's also difficult to debug because Testflight validation Team is slow( i to build on eas (almost 1 hour) then wait almost 2 days that i can test the build on TestFlight !)
so if you have any idea or remarks, thanks by advance
my package.json :