GithubHelp home page GithubHelp logo

oracle / pushiomanager-react-native Goto Github PK

View Code? Open in Web Editor NEW
15.0 6.0 17.0 1.5 MB

React Native Module for Responsys SDK

License: Universal Permissive License v1.0

Ruby 1.94% Java 43.76% JavaScript 28.53% Objective-C 25.05% Shell 0.71%
react-native ios android responsys oracle

pushiomanager-react-native's Introduction

React Native Module for Responsys SDK

This module makes it easy to integrate your React Native based mobile app with the Responsys SDK.

Table of Contents

Requirements

  • React Native >= 0.61.5
  • React Native CLI >= 2.0.1

For Android

  • Android SDK Tools >= 28.0.3

For iOS

  • iOS 12 or later

Setup

Before installing the plugin, you must setup your app to receive push notifications.

For Android

  • Get FCM Credentials
  • Log in to the Responsys Mobile App Developer Console and enter your FCM credentials (Project ID and Server API Key) for your Android app.
  • Get the pushio_config.json file generated from your credentials and place it in your project's android/app/src/main/assets folder. You might have to create the directory if it is not already present.

For iOS

  • Generate Auth Key
  • Log in to the Responsys Mobile App Developer Console and enter your Auth Key and other details for your iOS app.
  • Download the pushio_config.json file generated from your credentials.
  • Important: Copy PushIOManager.xcframework and place it in YOUR_APP_DIR/ios/framework/ folder before adding plugin to project.

Installation

The plugin can be installed with the React Native CLI,

cd <your_react_native_app>
yarn add @oracle/react-native-pushiomanager

For Android

  • Create a new directory - PushIOManager inside your app's android directory.

  • Download the SDK native binary from here and place the .aar file in this android/PushIOManager/ directory.

  • Inside the android/PushIOManager directory, create a file build.gradle with the following code:

     configurations.maybeCreate("default")
     artifacts.add("default", file('PushIOManager-6.56.3.aar'))
  • Add the following to your project-wide settings.gradle file:

     include ':PushIOManager'
     project(':PushIOManager').projectDir = new File(rootProject.projectDir, './PushIOManager')

For iOS

After installing plugin you need to install cocoapods,

  • Go to ios directory of you app, cd YOUR_APP_DIR/ios/
  • Run pod install

Note: This step will fail if PushIOManager.xcframework is not available in YOUR_APP_DIR/ios/framework/ folder before adding plugin to project with npm or yarn. Copy the PushIOManager.xcframework to YOUR_APP_DIR/ios/framework/ and perform Installation step again.

Integration

For Android

  • Open the build.gradle file located in android/app/ and add the following dependency,

     implementation 'androidx.core:core:1.6.0'
     implementation 'com.google.firebase:firebase-messaging:17.3.0' 
    
  • Open the AndroidManifest.xml file located in android/app/src/main and add the following,

    • Permissions above the <application> tag,

       <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
       <uses-permission android:name="${applicationId}.permission.PUSHIO_MESSAGE" />
       <uses-permission android:name="${applicationId}.permission.RSYS_SHOW_IAM" />
       <permission android:name=".permission.PUSHIO_MESSAGE" android:protectionLevel="signature" />
       <permission android:name="${applicationId}.permission.RSYS_SHOW_IAM" android:protectionLevel="signature" />
    • Intent-filter for launching app when the user taps on a push notification. Add it inside the <activity> tag of MainActivity,

       <intent-filter>
       	<action android:name="${applicationId}.NOTIFICATIONPRESSED" />
      		<category android:name="android.intent.category.DEFAULT" />
       </intent-filter>
    • Add the following code inside <application> tag,

        <receiver android:enabled="true" android:exported="false" android:name="com.pushio.manager.PushIOUriReceiver">
           <intent-filter>
               <action android:name="android.intent.action.VIEW" />
               <category android:name="android.intent.category.DEFAULT" />
               <data android:scheme="@string/uri_identifier" />
           </intent-filter>
       </receiver>
       <activity android:name="com.pushio.manager.iam.ui.PushIOMessageViewActivity" android:permission="${applicationId}.permission.SHOW_IAM" android:theme="@android:style/Theme.Translucent.NoTitleBar">
           <intent-filter>
               <action android:name="android.intent.action.VIEW" />
               <category android:name="android.intent.category.BROWSABLE" />
               <category android:name="android.intent.category.DEFAULT" />
               <data android:scheme="@string/uri_identifier" />
           </intent-filter>
       </activity>
    • (Optional) Intent-filter for Android App Links setup. Add it inside the <activity> tag of MainActivity,

       <intent-filter android:autoVerify="true">
       	<action android:name="android.intent.action.VIEW" />
       	<category android:name="android.intent.category.DEFAULT" />
       	<category android:name="android.intent.category.BROWSABLE" />
       	<data android:host="@string/app_links_url_host" android:pathPrefix="/pub/acc" android:scheme="https" />
      </intent-filter>
  • Open the strings.xml file located at android/app/src/main/res/values and add the following properties,

    • Custom URI scheme for displaying In-App Messages and Rich Push content,

       <string name="uri_identifier">pio-YOUR_API_KEY</string>

    You can find the API key in the pushio_config.json that was placed in android/app/src/main/assets earlier during setup.

    • (Optional) If you added the <intent-filter> for Android App Links in the steps above, then you will need to declare the domain name,

       <string name="app_links_url_host">YOUR_ANDROID_APP_LINKS_DOMAIN</string>

For iOS

  • Open the Xcode project workspace in your ios directory of cordova app.

  • Drag and Drop your pushio_config.json in Xcode project.

  • Select the root project and Under Capabilites add the "Push Notifications" and "Background Modes". Capability Image

  • Add below Import statements in AppDelegate.h.

#import <PushIOManager/PushIOManager.h>
#import <UserNotifications/UserNotifications.h>

  • AppDelegate needs to Conform UNUserNotificationCenterDelegate protocol in AppDelegate.h ,
@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate>

  • Implement the below delegate methods in AppDelegate.m.
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:
    (NSData *)deviceToken
{
    [[PushIOManager sharedInstance]  didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
    [[PushIOManager sharedInstance]  didFailToRegisterForRemoteNotificationsWithError:error];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [[PushIOManager sharedInstance] didReceiveRemoteNotification:userInfo];
}

- (void)application:(UIApplication *)application didReceiveRemoteNotification:
(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    [[PushIOManager sharedInstance] didReceiveRemoteNotification:userInfo
fetchCompletionResult:UIBackgroundFetchResultNewData fetchCompletionHandler:completionHandler];
}

//iOS 10 or later
-(void) userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:
(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler
{
    [[PushIOManager sharedInstance] userNotificationCenter:center didReceiveNotificationResponse:response
withCompletionHandler:completionHandler];
}

-(void) userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:
(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
    [[PushIOManager sharedInstance] userNotificationCenter:center willPresentNotification:notification
withCompletionHandler:completionHandler];
}

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
   [[PushIOManager sharedInstance] openURL:url options:options];
  return YES;
}
  • For In-App Messages and Rich Push Content follow the below steps :

    • To Enable Custom URI scheme for displaying In-App Messages and Rich Push content follow the Step 1. You can find the API key in the pushio_config.json that was placed in your Xcode project earlier during setup.

    • Follow Step 2 to add the required capabilites in your Xcode project for In-App messages.

  • For Media Attachments you can follow the following guide. Copy and paste the code provided in guide in respective files.

  • For Carousel Push you can follow the following guide. Copy and paste the code provided in guide in respective files.

Usage

The module can be accessed in JS code as follows,

import PushIOManager from '@oracle/react-native-pushiomanager';

Configure And Register

  • Configure the SDK,

     PushIOManager.configure("your-pushio_config.json", (error, response) => {
           
     });
  • Once the SDK is configured, register the app with Responsys,

    • Combine above steps and use Platform check to detect the platform.
     import { Platform } from 'react-native';
     
     if (Platform.OS === 'android') {
     	PushIOManager.registerApp(true, true, (error, response) => {
                 
         	});
     } else {
     	PushIOManager.registerForAllRemoteNotificationTypes((error, response) => {
                 
         		PushIOManager.registerApp(true, (error, response) => {
     		
     		});  
     	});
     }
             ```
  • Additional APIs (optional)

    iOS Only:

    • You can delay registration while app is launching or coming to foreground by implementing below API.
    // Implement before `registerForAllRemoteNotificationTypes` calls.
    PushIOManager.setDelayRegistration(true); 
    

User Identification

  • Associate an app installation with a user (usually after login),

     PushIOManager.registerUserId("userID");
  • When the user logs out,

     PushIOManager.unregisterUserId();

Engagements And Conversion

User actions can be attributed to a push notification using,

PushIOManager.trackEngagement(3, properties, (error, response) => {
	      
});

In-App Messages

In-App Message (IAM) are displayed in a popup window via system-defined triggers like $ExplicitAppOpen or custom triggers. IAM that use system-defined triggers are displayed automatically.

IAM can also be displayed on-demand using custom triggers.

  • Your marketing team defines a custom trigger in Responsys system and shares the trigger-event name with you.

  • Marketer launches the campaign and the IAM is delivered to the device via push or pull mechanism (depending on your Responsys Account settings)

  • When you wish to display the IAM popup, use,

     PushIOManager.trackEvent("custom_event_name", properties);

For iOS

These below steps are required for iOS In-App Messages.

  • To Enable Custom URI scheme for displaying In-App Messages and Rich Push content follow the Step 1. You can find the API key in the pushio_config.json that was placed in your Xcode project earlier during setup.

  • Follow Step 2 to add the required capabilites in your Xcode project for In-App messages.

Message Center

  • Get the Message Center messages list using,

Each Message Center message now supports an additional property called custom key-value pairs, it is a variable sized object with key value pairs and can be accessed like any other property of that message.

```javascript
PushIOManager.fetchMessagesForMessageCenter(messageCenterName, (error, response) => {
        if(error == null) {
            for(message of response.messages){
                console.log(message.messageID)
                console.log(message.message)
                console.log(message.customKeyValuePairs)
        
            }
        }
});
```
  • If any message has a rich-content (HTML) then call,

     PushIOManager.fetchRichContentForMessage(messageID, (error, response) => {
           // 'response' is the HTML content
     });

    Remember to store these messages, since the SDK cache is purgeable.

  • Add the following messageCenter listeners to get notified when messages are available.

    If your app uses React Class components, use lifecycle methods componentDidMount and componentWillUnmount to store and clean up the listener.

componentDidMount() {
       this.messageCenterListener = PushIOManager.addMessageCenterUpdateListener((response) =>
        console.log(response);
  	  );
}
componentWillUnmount() {
	if (this.messageCenterListener) {
		this.messageCenterListener.remove();
	}
}

If your app uses Functional components, update the useEffect hook to store the listener

useEffect(() => {
 	const messageCenterListener = PushIOManager.addMessageCenterUpdateListener((response) =>
        console.log(response);
  	  );

	return () => {
		messageCenterListener.remove()
   }; };

Geofences And Beacons

If your app is setup to monitor geofence and beacons, you can use the following APIs to record in Responsys when a user enters/exits a geofence/beacon zone.

PushIOManager.onGeoRegionEntered(geoRegion, (error, response) => {});
PushIOManager.onGeoRegionExited(geoRegion, (error, response) => {});
PushIOManager.onBeaconRegionEntered(beaconRegion, (error, response) => {});
PushIOManager.onBeaconRegionExited(beaconRegion, (error, response) => {});

Notification Preferences

Preferences are used to record user-choices for push notifications. The preferences should be pre-defined in Responsys before being used in your app.

  • Declare the preference beforehand in the app,

     PushIOManager.declarePreference(key, label, preferenceType, (error, response) => {
     
     });
  • Once a preference is declared successfully, you may save the preference using,

     PushIOManager.setPreference(key, value, (error, success) => {
     
     });

Do not use this as a persistent (key/value) store since this data is purgeable.

Changing Notification Icon and Color (Android Only)

Responsys SDK uses the app icon as the icon for notifications. You can change this by using the following two APIs,

PushIOManager.setNotificationLargeIcon("ic_notification_large");
PushIOManager.setNotificationSmallIcon("ic_notification_small");
  • Icon name should be provided without the file extension.
  • Icon images should be present in your app's drawable or mipmap directory, i.e. android/app/src/main/res/drawable or android/app/src/main/res/mipmap.

It is also possible to change the notification small icon color by using the following API,

PushIOManager.setNotificationSmallIconColor("#d1350f");

Handling Push Notifications (Android Only)

With release 6.52.1, you can now subscribe to FCM device tokens and push notifications callbacks from the Responsys plugin.

PushIOManager.onPushTokenReceived( response => {
	console.log("Device Token: " + response.deviceToken);
});

PushIOManager.onPushNotificationReceived( remoteMessage => {

	console.log("Push Message: " + JSON.stringify(remoteMessage));
	
	PushIOManager.isResponsysPush(remoteMessage, (error, response) => {

		if (response) {
			console.log("Received Push Message from Responsys");
	      	PushIOManager.handleMessage(remoteMessage);
	    } else {
	    	 // Not a Responsys Push, handle it appropriately
	    }
	});
});

This will allow you to handle push notifications while the app is in foreground or background.

These callbacks are also useful if you have multiple push plugins and need to decide how to process the incoming push notifications.

NOTE: When the app is in killed state (i.e. not in memory) the Responsys plugin will automatically process and display the push notifications.

Handling Deeplinks

When the user taps on a push notification (having a deeplink), the plugin passes the deeplink to the app.

Your app must implement the following native code to handle deeplinks.

For iOS

Ensure that you have implemented openURL method in your AppDelegate.m, as follows,

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

	[[PushIOManager sharedInstance] openURL:url options:options];
	
  return YES;
}

For Android

  • In AndroidManifest.xml, change the launchMode of MainActivity to singleTask and add the following Intent-filter,

     <activity
       android:name=".MainActivity"
       android:launchMode="singleTask">
       
       <intent-filter>
         <action android:name="${applicationId}.intent.action.PROCESS_RSYS_DEEPLINK" />
         <category android:name="android.intent.category.DEFAULT" />
         <data android:scheme="YOUR_CUSTOM_URL_SCHEME" />
       </intent-filter>
      
     </activity>
  • Add the following code to your MainActivity,

     import com.facebook.react.ReactInstanceManager;
     import com.facebook.react.bridge.ReactContext;
     import com.facebook.react.modules.core.DeviceEventManagerModule;
     import android.content.Intent;
     import android.net.Uri;
     
     
     @Override
     protected void onCreate(Bundle savedInstanceState){
     	super.onCreate(savedInstanceState);
     	handleIntent(getIntent());
     }
     
     @Override
     public void onNewIntent(Intent intent) {
     	super.onNewIntent(intent);
     	handleIntent(intent);
     }
     
     private void handleIntent(Intent intent){
         if(intent != null && intent.getData() != null) {
           final Uri deepLinkURL = intent.getData();
           
           ReactInstanceManager reactInstanceManager = getReactNativeHost().getReactInstanceManager();
           
           ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
           
           if(reactContext != null) {
             reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("PIOHandleOpenURL", deepLinkURL.toString()); 
           } else {
             reactInstanceManager.addReactInstanceEventListener(new ReactInstanceManager.ReactInstanceEventListener() {
               @Override
               public void onReactContextInitialized(ReactContext context) {
                 	context.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("PIOHandleOpenURL", deepLinkURL.toString());
                 	reactInstanceManager.removeReactInstanceEventListener(this);
               }
             });
           }
         }
    }

In your Javascript code, add the following deeplink listeners,

If your app uses React Class components, use lifecycle methods componentDidMount and componentWillUnmount to store and clean up the listener.

componentDidMount() {
	this.deepLinkListener = PushIOManager.setOpenURLListener(true, deeplink =>
		console.log("Deeplink: " + deeplink);
	);
}

componentWillUnmount() {
	if (this.deepLinkListener) {
		this.deepLinkListener.remove();
	}
}

If your app uses Functional components, update the useEffect hook to store listener

useEffect(() => {
 	const deepLinkListener = PushIOManager.setOpenURLListener(true, deeplink =>{
		console.log("Deeplink: " + deeplink);
	});

	return () => {
		deepLinkListener.remove()
	};
});

If your app uses Functional components, update the react-natigation hook to store listener

const [isReady, setIsReady] = useState(false);

const config =  {
   initialRouteName: "Home",
   screens: {
     Home: {
       path: "home",
     }
   }
  };
  
const linking = {
    prefixes: ["example://"],
    config: config.
}

let deeplinkurl

const onReceivePushIOURL = (deeplink) => {

  if (Platform.OS === "ios") {
    deeplinkurl =  deeplink.url;
  } else {
    deeplinkurl =  deeplink;
  }

  console.log("onReceivePushIOURL deeplink: " + deeplinkurl);
  

  if (deeplinkurl && navigationRef.isReady) {
      Linking.openURL(deeplinkurl);
    }

};

 useEffect(() => {
    const deepLinkListener = PushIOManager.setOpenURLListener(true, onReceivePushIOURL);
   return () => {
     deepLinkListener.remove();
   };

 },[]);
 
 return (
  <NavigationContainer ref={navigationRef}  onReady={onNavigationReady} linking={linking}
  )

Reporting Revenue/Purchase Events

Responsys plugin version 6.48.0 and above supports reporting Revenue/Purchase events. These events attribute purchases to the push campaign that led the app user into the mobile app. This API accepts an event object which allows In-App Purchase (Digital Goods) or Retail Purchase (Physical Goods) conversion-type to be reported.

var event = {};
event['orderId'] = '1234';
event['orderTotal'] = 50;
event['orderQuantity'] = 5;
event['conversionType'] = 3; // Possible values: 3 = In-App Purchase, 7 = Retail Purchase
event['customProperties'] = {}; // optional

PushIOManager.trackConversionEvent(event, (error, response) => {

});

Upgrades

6.56.3

For Android

API for registration has been changed to: registerApp(enablePushNotification, useLocation, callback)

This allows your app to control when to display the push notification permission prompt on Android 13 and later devices.

Also, with this release, we have made changes to our Multiple SDK guide after reports of duplicate notifications displayed due to a bug in @react-native-firebase/messaging plugin.

Make sure you implement the updated guide as you upgrade to plugin v6.56.3.

6.52.1

For Android

If you have been following our Multiple SDK guide, there are some changes with this release.

We no longer need the @react-native-firebase/app and @react-native-firebase/messaging plugins for multiple push plugin scenarios or to receive push in the background.

So, you may choose to uninstall these plugins.

yarn remove @react-native-firebase/app
yarn remove @react-native-firebase/messaging

6.50.1 to 6.51

With the release of v6.51.0, we have simplified the plugin integration process.

Due to this change, you will need to perform the following steps one-time only.

For Android

  • Remove the existing PushIOManager-6.50.1.aar file from app/src/main/libs directory.
  • Follow the setup instructions given in the Installation section above.

For iOS

  • Find and remove the following line from the YOUR_APP_DIR/ios/Podfile,

     pod 'PushIOManager', :path => '<PATH_TO_node_modules/@oracle/react-native-pushiomanager/PushIOManager/_Directory>'`
    
  • Create a framework directory inside YOUR_APP_DIR/ios/ directory.

  • Copy the latest PushIOManager.xcframework inside YOUR_APP_DIR/ios/framework/

  • Install the latest plugin yarn add @oracle/react-native-pushiomanager

Support

If you have access to My Oracle Support, please raise a request here, otherwise open an issue in this repository.

Contributing

This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide

Security

Please consult the security guide for our responsible security vulnerability disclosure process

License

Copyright (c) 2024 Oracle and/or its affiliates and released under the Universal Permissive License (UPL), Version 1.0.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

pushiomanager-react-native's People

Contributors

juliocvaz avatar neerhaj avatar s-wasan avatar savitha-rudramuni avatar shamilovtim avatar spavlusieva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pushiomanager-react-native's Issues

"PushIOManager/PushIOManagerAll.h file not found" error when building

Hello,

After adding both frameworks PushIOManager.framework and PIOMediaAttachmentExtension.framework (needed for media push notifications as stated in the documentation, the build fails with an error inside the react-native-pushiomanager pod:

'PushIOManager/PushIOManagerAll.h' file not found

Screenshot 2022-04-07 at 11 57 55

Both frameworks are in the framework directory and added as frameworks in Xcode for all targets.

Thank you!

Our Android users are receiving a crash in com.pushio.manager.PIOPermissionsActivity.onRequestPermissionsResult

Hello!

We need an urgent bugfix to this. Could you please provide an ETA for a resolution? Our users are receiving a crash in:
java.lang.ArrayIndexOutOfBoundsExceptionPIOPermissionsActivity length=0; index=0

Full stack trace:

java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
        at com.pushio.manager.PIOPermissionsActivity.onRequestPermissionsResult(PIOPermissionsActivity.java:54)
        at android.app.Activity.requestPermissions(Activity.java:5278)
        at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:502)
        at com.pushio.manager.PIOPermissionsActivity.processIntent(PIOPermissionsActivity.java:47)
        at com.pushio.manager.PIOPermissionsActivity.onNewIntent(PIOPermissionsActivity.java:22)
        at android.app.Activity.performNewIntent(Activity.java:8213)
        at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1409)
        at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1422)
        at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:4031)
        at android.app.ActivityThread.handleNewIntent(ActivityThread.java:4043)
        at android.app.servertransaction.NewIntentItem.execute(NewIntentItem.java:53)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2307)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8512)
        at java.lang.reflect.Method.invoke(Method.java:-2)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

Galaxy S10
Android 11
Version 6.48

Failed to run pod install

On ios, with the 6.52 version update:
use_native_modules! pod 'PushIOManager', :path => './framework/'

When I try run pod install, I get this error:
[!] The 'Pods-dotzPayments' target has frameworks with conflicting names: pushiomanager.framework.

And when running with (old way):
pod 'PushIOManager', :path => '../node_modules/@oracle/react-native-pushiomanager/PushIOManager/'

All goes OK.

Can you help me?

Latest Gradle does not support projectless .AARs, project changes are needed.

The Android project recommends setting up a projectless aar in: ./app/src/main/libs/PushIOManager.aar. This is incompatible with latest Gradle, which does not accept projectless .aars and will throw compile time errors when you try to assemble an APK with this aar:

* What went wrong:
Execution failed for task ':react-native-pushiomanager:bundleDebugAar'.
> Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :react-native-pushiomanager project caused this error: /Users/admin/Documents/Development/shipt/nebula/android/app/src/main/libs/PushIOManager-6.48.1.aar

Instead, the .aar needs to be placed in a standalone directory with a build.gradle file. For example:

.
android/PushIOManager/build.gradle
android/PushIOManager/PushIOManager-6.48.1.aar

This can then be setup as a project within the user's settings.gradle:

include ':PushIOManager'
project(':PushIOManager').projectDir = new File(rootProject.projectDir, './PushIOManager)

Your react native project can then depend on a :PushIOManager project existing at ./PushIOManager and declared in that user's settings.gradle. The build.gradle of the react-native-pushiomanager should depend on the ":PushIOManager" project rather than the AAR.

Inside of react-native-pushiomanager replace:

implementation rootProject.files('app/src/main/libs/PushIOManager-6.48.1.aar')

with:

implementation project(":PushIOManager") or similar.

registerApp returns "Device Token Unavailable" on Android

Followed the directions on the site and still receive this error message on Android. Can you confirm that you've followed your own setup directions in a fresh project, reading directly off of the docs on the website and can make the package work?

I receive the following two errors:
In native: E/pushio: PIOGCMRIS oHI Error initializing FCM: Please set your project ID. A valid Firebase project ID is required to communicate with Firebase server APIs: It identifies your project with Google.

and also on the JS side: "Device Token Unavailable"

I also noticed that line 4 here in the docs looks suspiciously like a typo.
Screen Shot 2021-05-28 at 4 25 40 PM

Our env:

deps:

"@react-native-firebase/app": "^11.2.0",
"@react-native-firebase/perf": "^11.2.0",

firebase BoM is close to 26.0.0
which is messaging 21.0.0 and core 18.0.0

Notification Handling

I have implemented the notifications on iOS and Android. I get the notification in device.

Now when I click on notification I am not getting any event from which we can move on particular screen or we need to perform some task on that.

I have tried with onNotificationOpenedApp() and getInitialNotification() which is firebase/messaging method but it is not called when I click on notification.

Can anyone please let me know which method is used for the same?

Thanks in advance

'Maven' not found.

I have integrate the library with given setup points. For android I am getting below error:
Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'maven' not found

Screenshot 2022-01-31 at 5 08 31 PM

Can you please help me to resolve this issue?

SDK wrapper does not properly implement methods across platforms

Using the method declarePreference as an example:

    • On both iOS and Android this method requires reading the source code to understand how to use it. The lack of valid documentation contributes to a lack of transparency into how methods are not implemented the same on both Android and iOS.
  1. On iOS declarePreference:
  • To store a String requires a parameter of 0 which is opaque to the developers using this library. Why a 0? Presumably because it was easy to write the iOS implementation and ask for a 0 rather than to offer something more declarative. The correctness and user friendliness of such shortcuts aside, the library does not document this enum anywhere. Developers are left scanning the source code in order to use the library and React Native developers are not supposed to be scanning native source code and are not expected to understand it. This is not how a Javascript SDK wrapper is meant to be used.
  • On Android the very same method, instead of a 0 requires "STRING" to store a string. This is not a correct cross platform implementation, and defeats the purpose of bringing a library like this to a cross platform framework like React Native. Your iOS and Android developers are supposed to be cooperating and making sure that the javascript methods are implemented identically on both platforms. Where there are exceptions, you're supposed to call them out in documentation.

Error on PushIOManager.isResponsysPush and PushIOManager.handleMessage

I receive the push notification content but get an error when will display the notification (when PushIOManager is called).

Getting push content by console:

Captura de Tela 2021-09-03 aฬ€s 10 07 09

Error when receive a push notification and PushIOManager is called:

Screenshot_1630674401

Here is my config:

useEffect(() => {
    PushIOManager.configure('pushio_config.json', (error, response) => {
    })
  }, [])

Init service:

const startResponsys = () => {
  if (Platform.OS === 'android') {
    PushIOManager.registerApp(true, (error, response) => {
    })
  } else {
    PushIOManager.registerForAllRemoteNotificationTypes((error, response) => {
      PushIOManager.registerApp(true, (error, response) => {})
    })
  }
}

handlers:

const setBackgroundMessageHandler = (): void => {
  messaging().setBackgroundMessageHandler(async (remoteMessage) => {
    console.log(remoteMessage)
    PushIOManager.isResponsysPush(remoteMessage, (error, response) => {
      if (response) {
        // Push notification received from Responsys.
        PushIOManager.handleMessage(remoteMessage)
      } else {
        // Not a Responsys push notification, handle it appropriately.
      }
    })
  })
}

const onMessage = (): void => {
  messaging().onMessage(async (remoteMessage) => {
    console.log(remoteMessage)
    PushIOManager.isResponsysPush(remoteMessage, (error, response) => {
      if (response) {
        // Push notification received from Responsys.
        PushIOManager.handleMessage(remoteMessage.data)
      }else{
        // Not a Responsys push notification, handle it appropriately.
      }
    })
  })
}

registerUserId() does not work on IOS

Hi,

My Android integration is working correctly, but on IOS the function "registerForAllRemoteNotificationTypes" and "registerApp" is not working.

PushIOManager.configure('pushio_config.json', (error, response) => {
 console.log({error, response});
   if (Platform.OS === 'android') {
    PushIOManager.registerApp(true, (errorRegister, responseRegister) => {
      console.log({errorRegister, responseRegister});
    });
  } else {
    PushIOManager.registerForAllRemoteNotificationTypes(
      (errorAllNotification, responseAllNotificiation) => {
        console.log({ errorAllNotification, responseAllNotificiation });
        PushIOManager.registerApp(true, (errorRegister, responseRegister) => {
          console.log({ errorRegister, responseRegister });
        });
      },
    );
  }
});

Since the registerForAllRemoteNotificationTypes function was not working, I tested it by making registerApp directly, and with that it presented the success log.

PushIOManager.configure('pushio_config.json', (error, response) => {
  console.log({error, response});
    PushIOManager.registerApp(true, (errorRegister, responseRegister) => {
      console.log({errorRegister, responseRegister});
    });
});

But when I run PushIOManager.registerUserId() the identifier is not registered in the Responsys dashboard

PushIOManager.registerUserId("user_specifc_id");

I don't know what it could be, as I did the entire documentation integration process. Has anyone ever experienced this?

How can i set another folder for ios/framework and android/pushiomanager?

Hello, i have an app that distributes packages by NPM and I need to change the location of the folders from frameworks, so that whoever consumes my package by npm can receive the framework and don't needed to apply framework in all they projects , how can I set a new folder for iOS and Android consume pushiO framwork from another folder? in 6.50.0 or less version i can do like this:

on iOS early 6.51.0 version i can do like this on podfile:

pod 'PushIOManager', :path => '../node_modules/@company/pushio/PushIOManager.podspec'

where the pushIO is the framework did i download in oracle web site

on Android early 6.51.0 version i can do like this on build.gradle:
include ':PushIOManager'
project(':PushIOManager').projectDir = new File(rootProject.projectDir, ''../node_modules/@company/pushio/pushio.aar')

how can i change this folder of frameworksm or i cant?

Support to monorepo or custom project structure path

Eventually, when trying to install the library in a folder structure different from the one foreseen in the postinstall.sh script, the following error occurs:

155411864-d2de2b56-4729-4861-9f37-04664cf8c037

I made a correction proposal, but currently you are not accepting PR's. If possible, could you add this fix in a new release?

It will help us and help others a lot.

similar issue: #44

Needed add extra code to work foreground notification at iOS

For foreground work correct at iOS I need do this changes on AppDelegate.h:

#import <UserNotifications/UserNotifications.h>
and
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate, UNUserNotificationCenterDelegate>

On AppDelegate.m:

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
          center.delegate = self;
  
    [PushIOManager sharedInstance].notificationPresentationOptions = UNNotificationPresentationOptionAlert|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionBadge;

at the end add UserNotifications.framework under Linked Frameworks and Libraries

Patch for hot reload redbox iOS bug

Hello,

I was wondering if the patch for the hot reload redbox iOS bug could be pushed up to a branch so we can adopt this code in our app. We're finding the iOS native workaround to be insufficient for our needs.

Thank you!

Error when run on iOS and why do you need to edit node_modules from iOS?

First of all, I want to say congrats for creating an official bridge to React Native, I'm co creator of the react-native-responsys.

I'm trying to implement this bridge on iOS but I'm getting the following error:

Screen Shot 2021-07-12 at 18 29 31

It's the same problem with issue #5 I think it's a problem with the framework path, this step is very confusing in the documentation.

Why do you need to edit the node_modules and put the framework there? this folder is regenerated every time we install a dependency, I create a bridge recently to another SDK and the framework is on the bridge. we don't need to care about this on our apps, I think makes sense we make the same approach to this lib.

The same thing about android setup, maybe the .aar file can be inside this bridge.

React Native Android error come Service Unavailable

Hello team, I use this plugin in my React Native application and I follow all steps which you mention in your document but i face issue IN android every time when i running in real device . Error as below

My Code is

`PushIOManager.registerApp(true, (error, response) => {

       console.log("Error---> ", error);
      console.log("Response---> ", response);
      });`

Error--->

<HTML><HEAD>
    <TITLE>Service Unavailable</TITLE>
    </HEAD><BODY>
    <H1>Service Unavailable - DNS failure</H1>
    The server is temporarily unable to service your request.  Please try again
    later.<P>
    Reference&#32;&#35;11&#46;1e6a1002&#46;1632829818&#46;d62e5b1
    </BODY></HTML>

Can anybody tell me what is wrong here I follow all steps but error come every time not able to run in Android

PushIOManager.registerApp do not return error or success

Hi Support,
I have configured the pushio_config successfully, but when registerapp, nothing happen(no console.log print). Could you please let me know what is the reason?

PushIOManager.configure("pushio_config.json", (error, response) => {
console.log('configured');

if (Platform.OS === 'android') {
PushIOManager.registerApp(true, (error, response) => {
console.log(error, response); //this not happen
});
}
});

Thank

Failed to install in monorepo project

When trying to install the package in a monorepo project it doesn't find the ios folder correctly.

Postinstall script try to copy PushIOManager.framework in ios root folder but my ios is in /apps/my-app/ios

image

On Android setSmallIcon when used with an XML resource adds unneeded padding, makes notification icon look incorrect.

Our notification icon is an XML resource. As you can see the icon is not scaled correctly and seems to have padding. When used with pure FCM push (no Responsys) the icon appears correctly and at the right size. Also it would be nice if you provided a setIconColor function (for default_notification_color) in order to style the icon for when the icon is provided in XML format. When a PNG resource is used, the icon appears correctly in Responsys. So this is an incompatibility with XML icons.

Is there a reason you can't use the default icon settings that are already passed to FCM in AndroidManifest?

The native code is as follows:

      // if it's a responsys push, set the icon and handle it with Responsys
        if (pushIOManager.isResponsysPush(remoteMessage)) {
            String appName = reactContext.getPackageName();
            int notificationIconID = reactContext.getResources().getIdentifier("ic_launcher_foreground", "drawable", appName);
            pushIOManager.setDefaultSmallIcon(notificationIconID);
            pushIOManager.setDefaultLargeIcon(notificationIconID);
            pushIOManager.handleMessage(remoteMessage);
        } else {
            // Otherwise not a Responsys push notification, handle it through FCM only
            FCMModule.onMessageReceived(reactContext, dataMap);
        }

Responsys:
Screen Shot 2021-07-21 at 3 19 10 PM
Screen Shot 2021-07-21 at 3 19 18 PM

FCM:
Screen Shot 2021-07-21 at 3 21 53 PM
Screen Shot 2021-07-21 at 3 21 45 PM

update docs

Hi, the docs are not updated

use_native_modules!
pod 'PushIOManager', :path => '../node_modules/react-native-pushiomanager/PushIOManager/'

it is not missing the @oracle/react-native-pushiomanager ??

Plugin with id โ€˜mavenโ€™ not found

What platform(s) does this occur on?
Android

Environment
React-native : 0.69.1
Gradle version : 7.3.3
Project : Typescript

buildToolsVersion = "30.0.0"
minSdkVersion = 21
compileSdkVersion = 30
targetSdkVersion = 30

Reproducible demo or steps to reproduce from a blank project.

image

I think with the new gradle it is necessary to use maven-publish instead of maven

Update the plugin:
So, instead of using:
apply plugin: 'maven'
you should use
apply plugin: 'maven-publish'

Background push notifications

Hi,

I implemented the code below, but I don't receive the notification in the background

import messaging from '@react-native-firebase/messaging';
import PushIOManager from '@oracle/react-native-pushiomanager';
import { AppRegistry } from 'react-native';

messaging().setBackgroundMessageHandler(async remoteMessage => {

PushIOManager.isResponsysPush(remoteMessage, (error, response) => {
             
    if (response) {

        // Push notification received from Responsys.
        PushIOManager.handleMessage(remoteMessage);

    } else {

        // Not a Responsys push notification, handle it appropriately.
    }
});

});

AppRegistry.registerComponent(appName, () => App);

the version of firebase messaging is 13.1.0. Is a specific version needed?

Compiling projects on latest Android SDK version 31 is not possible

In our Android project, we have to upgrade compiling SDK version to 31 (Android 12) due to some circumstances. However, targeting Android 12 comes with some behaviour changes. One of them is:

If your app targets Android 12 and contains activities, services, or broadcast receivers that use intent filters, you must explicitly declare the android:exported attribute for these app components.
https://developer.android.com/about/versions/12/behavior-changes-12#exported

This requirement has to be met by application itself, but also by all libraries used in that application. But it seems, that service com.pushio.manager.PIOFCMIntentService does not have this android:exported specified, which makes library with latest Android SDK version unusable.

Thank you in advance.

Background messages only work if the message priority is set to 'high'

Hello, I updated my react-native from version 0.66.3 to 0.69.5 and notifications on Android are not showing, iOS works normally.

Found this error in Android Studio Logcat:

2022-09-22 16:51:46.996 9240-9240/com.app E/RNFirebaseMsgReceiver: Background messages only work if the message priority is set to 'high' android.app.BackgroundServiceStartNotAllowedException: Not allowed to start service Intent { cmp=com.app/io.invertase.firebase.messaging.ReactNativeFirebaseMessagingHeadlessService (has extras) }: app is in background uid UidRecord{b3a7cf6 u0a870 RCVR idle change:idle|uncached procs:0 seq(0,0,0)} at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1941) at android.app.ContextImpl.startService(ContextImpl.java:1887) at android.content.ContextWrapper.startService(ContextWrapper.java:793) at android.content.ContextWrapper.startService(ContextWrapper.java:793) at io.invertase.firebase.messaging.ReactNativeFirebaseMessagingReceiver.onReceive(ReactNativeFirebaseMessagingReceiver.java:55) at android.app.ActivityThread.handleReceiver(ActivityThread.java:4843) at android.app.ActivityThread.access$1800(ActivityThread.java:315) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2297) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8751) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

On Android plugin crashes repeatedly when location permissions are not enabled

The docs do not explain handling notification permissions and the plugin upon initial load crashes because notification permissions are not yet enabled. The plugin attempts to request permissions but still crashes several times before it's able to successfully request them. When disabling notifications from the Settings panel of the phone, the app will crash every single time it is opened until notification permissions are enabled again.

Is Oracle aware of any users using this project in production? It seems like in its current state this project couldn't be live so I just want some clarity on whether you've ever had this plugin work for a customer.

Crash message:

2021-05-28 18:57:31.519 6271-6271/com.shipt.groceries E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.shipt.groceries, PID: 6271
    java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
        at com.pushio.manager.PIOPermissionsActivity.onRequestPermissionsResult(PIOPermissionsActivity.java:54)
        at android.app.Activity.requestPermissions(Activity.java:4579)
        at androidx.core.app.ActivityCompat.requestPermissions(ActivityCompat.java:502)
        at com.pushio.manager.PIOPermissionsActivity.processIntent(PIOPermissionsActivity.java:47)
        at com.pushio.manager.PIOPermissionsActivity.onNewIntent(PIOPermissionsActivity.java:22)
        at android.app.Activity.performNewIntent(Activity.java:7339)
        at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1366)
        at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1378)
        at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:3295)
        at android.app.ActivityThread.performNewIntents(ActivityThread.java:3311)
        at android.app.ActivityThread.handleNewIntent(ActivityThread.java:3328)
        at android.app.servertransaction.NewIntentItem.execute(NewIntentItem.java:49)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1926)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:6990)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
        ```

Our Android users are receiving a java.lang.RuntimeException in com.pushio.manager.PIOAPIResultReceiver

Hello!

Could you please provide a bugfix and an ETA for a resolution?
Our users are receiving a crash in: com.pushio.manager.PIOAPIResultReceiver

Full stack trace:

java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$4.done(AsyncTask.java:415)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)

Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.pushio.manager.PIOAPIResultReceiver
        at android.os.Parcel.readParcelableCreator(Parcel.java:3376)
        at android.os.Parcel.readParcelable(Parcel.java:3284)
        at android.os.Parcel.readValue(Parcel.java:3186)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3579)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
        at android.os.BaseBundle.unparcel(BaseBundle.java:236)
        at android.os.BaseBundle.containsKey(BaseBundle.java:516)
        at android.content.Intent.hasExtra(Intent.java:8699)
        at com.pushio.manager.PIOAPIConnectorService.processRequest(PIOAPIConnectorService.java:49)
        at com.pushio.manager.PIOAPIConnectorService.onHandleIntent(PIOAPIConnectorService.java:43)
        at com.pushio.manager.PIOAPIConnectorService.onHandleWork(PIOAPIConnectorService.java:32)
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
        at androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
        at android.os.AsyncTask$3.call(AsyncTask.java:394)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)

Galaxy S20 FE 5G (SM-G781U)
Android 11
version 6.48

High number of crash reports on the android platform

Description

We are receiving a lot of errors related to the pushiomanager SDK on our crash analytics tool ( sentry ), but we can't identify what is causing this problem or get steps to reproduce when the error is happening. This happening only on the Android Platform.

React Native version:

System:
    OS: macOS 11.4
    CPU: (8) x64 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
    Memory: 420.87 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.8.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.21.0 - /usr/local/bin/npm
    Watchman: 2021.08.23.00 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
    Android SDK:
      API Levels: 28, 29, 31
      Build Tools: 28.0.3, 29.0.2, 31.0.0
      System Images: android-30 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 4.2 AI-202.7660.26.42.7486908
    Xcode: 12.5.1/12E507 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0 
    react-native: 0.61.5 => 0.61.5

Pushiomanager version

"version": "6.48.3",

Errors

1

ArrayIndexOutOfBoundsException
com.pushio.manager.PIOPermissionsActivity in onRequestPermissionsResult at line 54
android.app.Activity in requestPermissions at line 5278
androidx.core.app.ActivityCompat in requestPermissions at line 502
com.pushio.manager.PIOPermissionsActivity in processIntent at line 47
com.pushio.manager.PIOPermissionsActivity in onNewIntent at line 22
android.app.Activity in performNewIntent at line 8213
android.app.Instrumentation in callActivityOnNewIntent at line 1409
android.app.Instrumentation in callActivityOnNewIntent at line 1422
android.app.ActivityThread in deliverNewIntents at line 4031
android.app.ActivityThread in handleNewIntent at line 4043
android.app.servertransaction.NewIntentItem in execute at line 53
android.app.servertransaction.TransactionExecutor in executeCallbacks at line 135
android.app.servertransaction.TransactionExecutor in execute at line 95
android.app.ActivityThread$H in handleMessage at line 2307
android.os.Handler in dispatchMessage at line 106
android.os.Looper in loop at line 246
android.app.ActivityThread in main at line 8506
java.lang.reflect.Method in invoke
com.android.internal.os.RuntimeInit$MethodAndArgsCaller in run at line 602
com.android.internal.os.ZygoteInit in main at line 1139

2

RuntimeException
Failure delivering result ResultInfo{who=@android:requestPermissions:, request=1, result=0, data=null} to activity {app/com.pushio.manager.PIOPermissionsActivity}: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
android.app.ActivityThread in handleSendResult at line 4577
android.app.ActivityThread in -wrap22
android.app.ActivityThread$H in handleMessage at line 1789
android.os.Handler in dispatchMessage at line 106
android.os.Looper in loop at line 164
android.app.ActivityThread in main at line 7025
java.lang.reflect.Method in invoke
com.android.internal.os.RuntimeInit$MethodAndArgsCaller in run at line 441
com.android.internal.os.ZygoteInit in main at line 1408

Number of users affected

Screen Shot 2021-09-15 at 23 43 31

Thanks for all the help.

Multiples of repeated notifications Android

Hey guys,

After carrying out this implementation

https://github.com/oracle/pushiomanager-react-native/wiki/Android:-Handling-Push-Notifications-In-App-Background-or-Killed-State

We have the following problem with the Firebase SDK, after the user receives a notification from Firebase and the user has already received a notification from Responsys Oracle, the user receives the same notification several times from Responsys at intervals of time

Note: With the application closed or in the background, after receiving notification from firebase the problem begins.

On iOS PIODeviceProfiler.m is causing app hang crashes

Stack trace:

Role:               Foreground
OS Version:         iOS 14.6

App Hang: The app was terminated while unresponsive

0  libsystem_kernel.dylib _mach_msg_trap
1  libsystem_kernel.dylib _mach_msg
2  libdispatch.dylib      __dispatch_mach_send_and_wait_for_reply
3  libdispatch.dylib      _dispatch_mach_send_with_result_and_wait_for_reply
4  libxpc.dylib           _xpc_connection_send_message_with_reply_sync
5  Foundation             ___NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__
6  Foundation             -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]
7  Foundation             -[NSXPCConnection _sendSelector:withProxy:arg1:arg2:arg3:]
8  Foundation             __NSXPCDistantObjectSimpleMessageSend3
9  CoreLocation           _CLClientCreateIso6709Notation
10 CoreLocation           _CLSetClientTransientAuthorizationInfo
11 CoreLocation           _CLClientStopVehicleHeadingUpdates
12 Shipt                  -[PIODeviceProfiler getLocationPermission] (PIODeviceProfiler.m:394:44)
13 Shipt                  -[PIODeviceProfiler getAppPermissions:] (PIODeviceProfiler.m:382:32)
14 Shipt                  -[PIORegistrationManager createRegisterEvent:] (PIORegistrationManager.m:230:5)
15 Shipt                  -[PIORegistrationManager registerApp:completionHandler:] (PIORegistrationManager.m:94:9)
16 Shipt                  -[PIOAppLifecycleManager applicationWillEnterForeground] (PIOAppLifecycleManager.m:200:5)
17 CoreFoundation         ___CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
18 CoreFoundation         ____CFXRegistrationPost_block_invoke
19 CoreFoundation         __CFXRegistrationPost
20 CoreFoundation         __CFXNotificationPost
21 Foundation             -[NSNotificationCenter postNotificationName:object:userInfo:]
22 UIKitCore              -[UIApplication _sendWillEnterForegroundCallbacks]
23 UIKitCore              ___101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke_2
24 UIKitCore              __UIScenePerformActionsWithLifecycleActionMask
25 UIKitCore              ___101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke
26 UIKitCore              -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:]
27 UIKitCore              -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]
28 UIKitCore              -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:]
29 UIKitCore              ___186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke
30 UIKitCore              +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:actions:completion:]
31 UIKitCore              __UISceneSettingsDiffActionPerformChangesWithTransitionContext
32 UIKitCore              -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]
33 UIKitCore              ___64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke
34 UIKitCore              -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:]
35 UIKitCore              -[UIScene scene:didUpdateWithDiff:transitionContext:completion:]
36 UIKitCore              -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:]
37 FrontBoardServices     -[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:]
38 FrontBoardServices     ___94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2
39 FrontBoardServices     -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:]
40 FrontBoardServices     ___94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke
41 libdispatch.dylib      __dispatch_client_callout
42 libdispatch.dylib      __dispatch_block_invoke_direct
43 FrontBoardServices     __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__
44 FrontBoardServices     -[FBSSerialQueue _targetQueue_performNextIfPossible]
45 FrontBoardServices     -[FBSSerialQueue _performNextFromRunLoopSource]
46 CoreFoundation         ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
47 CoreFoundation         ___CFRunLoopDoSource0
48 CoreFoundation         ___CFRunLoopDoSources0
49 CoreFoundation         ___CFRunLoopRun
50 CoreFoundation         _CFRunLoopRunSpecific
51 GraphicsServices       _GSEventRunModal
52 UIKitCore              -[UIApplication _run]
53 UIKitCore              _UIApplicationMain
54 Shipt                  main (main.m:15:12)
55 libdyld.dylib          _start

In app messaging docs are vague and do not work on iOS

We are currently escalating with Oracle support but having followed the In App Messaging docs, our development team is receiving reports that in app messages do not work on iOS. The IAM docs are vague and light on details.

  • The docs simply ask that we setup schemes and permissions for IAM, we've set those up.
  • Is there any code implementation required for in app messages?

RN iOS build error. (pushiomanager/ios/NSDictionary+PIOConvert.h:9:9: fatal error: 'PushIOManager/PushIOManagerAll.h' file not found)

/Xcode/DerivedData/responsysTest-hiviarrpiumnaffbxxemyjyjmjfv/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-pushiomanager.build/Objects-normal/x86_64/NSArray+PIOConvert.dia -c /Users/Documents/test/responsysTest/responsysTest/node_modules/@oracle/react-native-pushiomanager/ios/NSArray+PIOConvert.m -o /Users/../Library/Developer/Xcode/DerivedData/responsysTest-hiviarrpiumnaffbxxemyjyjmjfv/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-pushiomanager.build/Objects-normal/x86_64/NSArray+PIOConvert.o
In file included from /Users//Documents/test/responsysTest/responsysTest/node_modules/@oracle/react-native-pushiomanager/ios/NSArray+PIOConvert.m:9:
/Users//Documents/test/responsysTest/responsysTest/node_modules/@oracle/react-native-pushiomanager/ios/NSDictionary+PIOConvert.h:9:9: fatal error: 'PushIOManager/PushIOManagerAll.h' file not found
#import <PushIOManager/PushIOManagerAll.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

CompileC /Users/../Library/Developer/Xcode/DerivedData/responsysTest-hiviarrpiumnaffbxxemyjyjmjfv/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FlipperKit.build/Objects-normal/x86_64/FlipperCppBridgingConnection.o /U

RegisterApp device token invalid IOS

Hey guys,

I'm having a problem sending notifications to devices registered by IOS, I'm getting the error: 400 - BadDeviceToken.

Has anyone dealt with this?

On iOS Error/Success callbacks never reached in registerForAllRemoteNotificationTypes()

When calling PushIOManager.registerForAllRemoteNotificationTypes((error, success) => {}) on iOS neither error nor success callback are ever reached. The native code does show an error log which is the following. Last message shows the specific native error

default	10:58:50.804481-0400	Shipt	[PushIOManager] -[PushIOManager isReadytoTrackEvent:] SDK not configured, trackEvent ignored.
default	10:58:50.935326-0400	Shipt	[PushIOManager] -[PushIOManager isReadytoTrackEvent:] SDK not configured, trackEvent ignored.
default	10:58:50.945250-0400	Shipt	[PushIOManager] -[PIOConfigConfigurator sdkConfiguredCorrectlyFor:accountToken:conversionUrl:riAppId:accountName:apiHost:globalRoutingURL:] globalRoutingURL is nil.
default	10:58:50.950407-0400	Shipt	[PushIOManager] -[PIOEventManager getBatchEvents:] Events cannot be fetched, because batch is nil.
default	10:58:50.950752-0400	Shipt	[PushIOManager] -[PIOBatchRequestManager sendBatchWithCompletionHandler:] Unable to create URL or request parameters for batch.
default	10:58:50.951443-0400	Shipt	[PushIOManager] -[PIOEventManager getBatchEvents:] Events cannot be fetched, because batch is nil.
default	10:58:50.951714-0400	Shipt	[PushIOManager] -[PIOBatchRequestManager sendBatchWithCompletionHandler:] Unable to create URL or request parameters for batch.
default	10:58:50.952656-0400	Shipt	[PushIOManager] -[PIOEventManager getBatchEvents:] Events cannot be fetched, because batch is nil.
default	10:58:50.953095-0400	Shipt	[PushIOManager] -[PIOBatchRequestManager sendBatchWithCompletionHandler:] Unable to create URL or request parameters for batch.
default	10:58:50.956223-0400	Shipt	[PushIOManager] Calling UIApplication registerForRemoteNotifications to obtain the device token.
default	10:58:51.150329-0400	Shipt	[PushIOManager] Registration scheduled after setting userID value.
default	10:58:51.271009-0400	Shipt	Config - error: (null) response {"pushio":{"appName":"censored","platformName":"censored","platform_type":"ios","apiKey":"censored","apiHost":"api.pushio.com","bundleId":"censored","accountToken":"censored","conversionUrl":"censored","riAppId":"censored"}}

TypeError: null is not an object (evaluating 'RCTPushIOManager.configure')

Hi there. I've been getting this error when trying to use PushIOManager in my react-native expo project.

TypeError: null is not an object (evaluating 'RCTPushIOManager.registerApp')
at node_modules\react-native\Libraries\LogBox\LogBox.js:148:8 in registerError
at node_modules\react-native\Libraries\LogBox\LogBox.js:59:8 in errorImpl
at node_modules\react-native\Libraries\LogBox\LogBox.js:33:4 in console.error
at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:104:6 in reportException
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:171:19 in handleException
at node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError
at node_modules\expo-error-recovery\build\ErrorRecovery.fx.js:9:32 in ErrorUtils.setGlobalHandler$argument_0
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:293:29 in invoke
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:154:27 in invoke
at node_modules\regenerator-runtime\runtime.js:164:18 in PromiseImpl.resolve.then$argument_0
at node_modules\react-native\node_modules\promise\setimmediate\core.js:37:13 in tryCallOne
at node_modules\react-native\node_modules\promise\setimmediate\core.js:123:24 in setImmediate$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:130:14 in _callTimer
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:181:14 in _callImmediatesPass
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:441:30 in callImmediates
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:387:6 in __callImmediates
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:135:6 in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:364:10 in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:134:4 in flushedQueue
at [native code]:null in flushedQueue
at [native code]:null in invokeCallbackAndReturnFlushedQueue

This is my "app" structure with the two downloaded files already placed.
image

This is my AndroidManifest.xml file:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.project">
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
  <uses-permission android:name="android.permission.USE_BIOMETRIC"/>
  <uses-permission android:name="android.permission.VIBRATE"/>
  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
  <uses-permission android:name="android.permission.CAMERA"/>
  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  <uses-permission android:name="android.permission.READ_CONTACTS"/>
  <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
  <uses-permission android:name="android.permission.READ_CALENDAR"/>
  <uses-permission android:name="android.permission.WRITE_CALENDAR"/>
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="${applicationId}.permission.PUSHIO_MESSAGE" />
  <uses-permission android:name="${applicationId}.permission.RSYS_SHOW_IAM" />
  <permission android:name=".permission.PUSHIO_MESSAGE" android:protectionLevel="signature" />
  <permission android:name="${applicationId}.permission.RSYS_SHOW_IAM" android:protectionLevel="signature" />
  <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme">
    <meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="40.0.0"/>
    <meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
    <meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
    <meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
    <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
      <intent-filter>
        <action android:name="${applicationId}.NOTIFICATIONPRESSED" />
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </activity>
    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
    <receiver android:enabled="true" android:exported="false" android:name="com.pushio.manager.PushIOUriReceiver" tools:node="replace">
      <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="@string/uri_identifier" />
      </intent-filter>
    </receiver>
    <activity android:name="com.pushio.manager.iam.ui.PushIOMessageViewActivity" android:permission="${applicationId}.permission.SHOW_IAM" android:theme="@android:style/Theme.Translucent.NoTitleBar">
      <intent-filter tools:ignore="AppLinkUrlError">
      <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="@string/uri_identifier" />
      </intent-filter>
    </activity>
  </application>
</manifest>

My strings.xml:

<resources>
    <string name="app_name">myProjectName</string>
    <string name="uri_identifier">pio-My_API_KEY</string>
</resources>

I've added the lib in my project using yarn add https://github.com/oracle/pushiomanager-react-native.git and also put this code in my App.js file:

import PushIOManager from 'react-native-pushiomanager';

if(Platform.OS === 'android') {
  PushIOManager.registerApp(true, (error, response) => {	
    
  });
} else {
  PushIOManager.registerForAllRemoteNotificationTypes((error, response) => {

    PushIOManager.registerApp(true, (error, response) => {

    });
});
}

PushIOManager.configure("pushio_config.json", (error, response) => {
  if(error) {
    console.log(error);
  } else {
    console.log(response);
  }
});

PS.: If I put only the configure function, I still get:

TypeError: null is not an object (evaluating 'RCTPushIOManager.configure')
at node_modules\react-native\Libraries\LogBox\LogBox.js:148:8 in registerError
at node_modules\react-native\Libraries\LogBox\LogBox.js:59:8 in errorImpl
at node_modules\react-native\Libraries\LogBox\LogBox.js:33:4 in console.error
at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:104:6 in reportException
at node_modules\react-native\Libraries\Core\ExceptionsManager.js:171:19 in handleException
at node_modules\react-native\Libraries\Core\setUpErrorHandling.js:24:6 in handleError
at node_modules\expo-error-recovery\build\ErrorRecovery.fx.js:9:32 in ErrorUtils.setGlobalHandler$argument_0
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:293:29 in invoke
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:154:27 in invoke
at node_modules\regenerator-runtime\runtime.js:164:18 in PromiseImpl.resolve.then$argument_0
at node_modules\react-native\node_modules\promise\setimmediate\core.js:37:13 in tryCallOne
at node_modules\react-native\node_modules\promise\setimmediate\core.js:123:24 in setImmediate$argument_0
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:130:14 in _callTimer
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:181:14 in _callImmediatesPass
at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:441:30 in callImmediates
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:387:6 in __callImmediates
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:135:6 in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:364:10 in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:134:4 in flushedQueue
at [native code]:null in flushedQueue
at [native code]:null in invokeCallbackAndReturnFlushedQueue

Does it have to do with the fact that I'm using expo or is there something I should have done and didn't?

How to verify if the SDK is configured correctly?

Hi guys!

I'm trying to implement pushiomanager in a react-native app, I did all the steps on this link, but I wasn't successful.

A part of the log that is interesting:

2021-07-06 22:39:15.600969-0400 AJPlace[60743:2527603] [connection] nw_socket_handle_socket_event [C5.1:1] Socket SO_ERROR [61: Connection refused]
2021-07-06 22:39:15.603961-0400 AJPlace[60743:2527603] [connection] nw_socket_handle_socket_event [C5.2:1] Socket SO_ERROR [61: Connection refused]
2021-07-06 22:39:15.605710-0400 AJPlace[60743:2527599] [connection] nw_connection_get_connected_socket [C5] Client called nw_connection_get_connected_socket on unconnected nw_connection
2021-07-06 22:39:15.606170-0400 AJPlace[60743:2527599] TCP Conn 0x600002ac8370 Failed : error 0:61 [61]
2021-07-06 22:39:15.690888-0400 AJPlace[60743:2527631] [javascript] Running "MyApp" with {"rootTag":1,"initialProps":{}}
2021-07-06 22:39:15.720674-0400 AJPlace[60743:2526158] [PushIOManager] -[PIORequestManager sendRequest] SDK not configured. URL is NULL

What would this URL is NULL?

Are there any simpler tutorials other than this one for me to follow?

Failed to run yarn install - (windows )

image

what is the reason for this script? version 6.52

"scripts": {
"postinstall": "rm -rf ./framework/PushIOManager.framework && cp -Rf ../../../ios/framework/PushIOManager.framework ./framework/ || { exit 1 && \n\n\n Error ==> PushIOManager.framework not found. Please copy the PushIOManager.framework to YOUR_APP_DIR/ios/framework/ and install package again. Follow README.md Installation instructions.<=== \n\n\n}"
},

On mac everything ok, but on windows there is no rm -rf command

Unable to install project dependencies

iOS

The problem

When I run the command npx pod-install (or cd ios && pod install) the following error is thrown:

kuze@MacBook-Air-de-Gustavo myapp-app % npx pod-install
npx: installed 1 in 2.9s
Scanning for pods...
1.10.0
> pod install
Adding a custom script phase for Pod RNFBApp: [RNFB] Core Configuration
Adding a custom script phase for Pod RNFBCrashlytics: [RNFB] Crashlytics Configuration
Auto-linking React Native modules for target `myapp`: BVLinearGradient, CodePush, RNCAsyncStorage, RNCPushNotificationIOS, RNDeviceInfo, RNFBAnalytics, RNFBApp, RNFBCrashlytics, RNFBDatabase, RNFBRemoteConfig, RNGestureHandler, RNRate, RNReanimated, RNResponsysBridge, RNSVG, RNScreens, RNVectorIcons, ReactNativePermissions, lottie-ios, lottie-react-native, react-native-camera, react-native-config, react-native-fbsdk, react-native-geolocation, react-native-maps, react-native-netinfo, react-native-pushiomanager, react-native-splash-screen, react-native-version-number, react-native-voice, react-native-webview, rn-fetch-blob, and toolbar-android
Installing unimodules:
 [email protected] from ../node_modules/expo-app-loader-provider/ios
 [email protected] from ../node_modules/expo-constants/ios
 [email protected] from ../node_modules/expo-file-system/ios
 [email protected] from ../node_modules/expo-local-authentication/ios
 [email protected] from ../node_modules/expo-permissions/ios
 [email protected] from ../node_modules/expo-secure-store/ios
 [email protected] from ../node_modules/unimodules-barcode-scanner-interface/ios
 [email protected] from ../node_modules/unimodules-camera-interface/ios
 [email protected] from ../node_modules/unimodules-constants-interface/ios
 [email protected] from ../node_modules/@unimodules/core/ios
 [email protected] from ../node_modules/unimodules-face-detector-interface/ios
 [email protected] from ../node_modules/unimodules-file-system-interface/ios
 [email protected] from ../node_modules/unimodules-font-interface/ios
 [email protected] from ../node_modules/unimodules-image-loader-interface/ios
 [email protected] from ../node_modules/unimodules-permissions-interface/ios
 [email protected] from ../node_modules/@unimodules/react-native-adapter/ios
 [email protected] from ../node_modules/unimodules-sensors-interface/ios
 [email protected] from ../node_modules/unimodules-task-manager-interface/ios

Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `Folly` from `../node_modules/react-native/third-party-podspecs/Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
Downloading dependencies
Installing PushIOManager (6.45)
Installing react-native-pushiomanager (6.47.1)
[!] The 'Pods-myapp' target has frameworks with conflicting names: pushiomanager.framework.

Aborting run
An unexpected error was encountered. Please report it as a bug:
Error
    at CocoaPodsPackageManager._installAsync (/Users/kuze/.npm/_npx/56882/lib/node_modules/pod-install/build/index.js:2:76150)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

kuze@MacBook-Air-de-Gustavo myapp-app % cd ios
kuze@MacBook-Air-de-Gustavo ios % pod repo update
Updating spec repo `trunk`

Setup

I've followed the steps from the official docs

Framework directory added to node_modules plugin folder
image

In package.json the plugin is being referenced as:

{
    "react": "16.13.1",
    "react-native": "0.63.4",
    "react-native-pushiomanager": "https://github.com/oracle/pushiomanager-react-native.git",
}

My Podfile looks like this:

platform :ios, '11.0'

require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'

target 'panvel' do
  # Pods for panvel
  config = use_native_modules!

  use_react_native!(:path => config["reactNativePath"])

  # Used to enable Google Maps on iOS
  rn_maps_path = '../node_modules/react-native-maps'
  pod 'react-native-google-maps', :path => rn_maps_path
  pod 'GoogleMaps'
  pod 'Google-Maps-iOS-Utils'

  pod 'RNCPushNotificationIOS', :path => '../node_modules/rn-push-ios'
  pod 'RNResponsysBridge', :path => '../node_modules/responsys-react-native/ios'

  pod 'RNFBAnalytics', :path => '../node_modules/@react-native-firebase/analytics'
  pod 'GoogleIDFASupport', '~> 3.14.0'

  pod 'react-native-camera', path: '../node_modules/react-native-camera', subspecs: [
    'TextDetector'
  ]

  use_unimodules!
  
  pod 'PushIOManager', :path => '../node_modules/react-native-pushiomanager/PushIOManager/'	

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
  # use_flipper!!

  post_install do |installer|
    # flipper_post_install(installer)
    installer.pods_project.targets.each do |target|

      if target.name == 'react-native-config'
        phase = target.project.new(Xcodeproj::Project::Object::PBXShellScriptBuildPhase)
        phase.shell_script = "cd ../../"\
        " && RNC_ROOT=./node_modules/react-native-config/"\
        " && export SYMROOT=$RNC_ROOT/ios/ReactNativeConfig"\
        " && export BUILD_DIR=$RNC_ROOT/ios/ReactNativeConfig"\
        " && ruby $RNC_ROOT/ios/ReactNativeConfig/BuildDotenvConfig.ruby"

        target.build_phases << phase
        target.build_phases.move(phase,0)
      end

    end
    installer.pods_project.build_configurations.each do |config|
      if config.name == 'Staging'
        config.build_settings['CONFIGURATION_TEMP_DIR'] = '$(PROJECT_TEMP_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)'
        config.build_settings['CONFIGURATION_BUILD_DIR'] = '$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)'
      end
    end
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        if config.name == 'Staging'
          config.build_settings['CONFIGURATION_TEMP_DIR'] = '$(PROJECT_TEMP_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)'
          config.build_settings['PODS_CONFIGURATION_BUILD_DIR'] = '${PODS_BUILD_DIR}/Release$(EFFECTIVE_PLATFORM_NAME)'
        end
        if Gem::Version.new('11.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
        end
      end
    end
  end
end

Android

When I run the command npx react-native run-android I get the following errors in the console:

> Task :unimodules-react-native-adapter:compileDebugJavaWithJavac

> Task :app:processDebugGoogleServices
Parsing json file: D:\git_panvel\panvel-app\android\app\google-services.json

> Task :app:processDebugManifest
D:\git_panvel\panvel-app\android\app\src\main\AndroidManifest.xml:19:5-66 Warning:
        Element uses-permission#android.permission.VIBRATE at AndroidManifest.xml:19:5-66 duplicated with element declared at AndroidManifest.xml:12:5-66
D:\git_panvel\panvel-app\android\app\src\main\AndroidManifest.xml:20:5-80 Warning:
        Element uses-permission#android.permission.RECEIVE_BOOT_COMPLETED at AndroidManifest.xml:20:5-80 duplicated with element declared at AndroidManifest.xml:11:5-81
D:\git_panvel\panvel-app\android\app\src\debug\AndroidManifest.xml:18:9-27:20 Warning:
        provider#expo.modules.filesystem.FileSystemFileProvider@android:authorities was tagged at AndroidManifest.xml:18 to replace other declarations but no other declaration present

> Task :app:compileDebugJavaWithJavac

> Task :app:checkDebugDuplicateClasses FAILED
w: Detected multiple Kotlin daemon sessions at build\kotlin\sessions

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.2/userguide/command_line_interface.html#sec:command_line_warnings
708 actionable tasks: 708 executed
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\expo-app-loader-provider\android\src\main\java\expo\loaders\provider\AppLoaderProvider.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\expo-constants\android\src\main\java\expo\modules\constants\ConstantsService.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\expo-local-authentication\android\src\main\java\expo\modules\localauthentication\LocalAuthenticationModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\expo-file-system\android\src\main\java\expo\modules\filesystem\FileSystemModule.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\expo-secure-store\android\src\main\java\expo\modules\securestore\SecureStoreModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\lottie-react-native\src\android\src\main\java\com\airbnb\android\react\lottie\LottieAnimationViewManager.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\lottie-react-native\src\android\src\main\java\com\airbnb\android\react\lottie\LottieAnimationViewManager.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-camera\android\src\main\java\com\google\android\cameraview\Camera2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-code-push\android\app\src\main\java\com\microsoft\codepush\react\CodePushNativeModule.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\@react-native-community\async-storage\android\src\main\java\com\reactnativecommunity\asyncstorage\AsyncStorageModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\@react-native-community\geolocation\android\src\main\java\com\reactnativecommunity\geolocation\GeolocationModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-device-info\android\src\main\java\com\learnium\RNDeviceInfo\RNDeviceModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-fbsdk\android\src\main\java\com\facebook\reactnative\androidsdk\Utility.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\@react-native-firebase\analytics\android\src\main\java\io\invertase\firebase\analytics\UniversalFirebaseAnalyticsModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\@react-native-firebase\database\android\src\reactnative\java\io\invertase\firebase\database\ReactNativeFirebaseDatabaseCommon.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\@react-native-firebase\crashlytics\android\src\main\java\io\invertase\firebase\crashlytics\Constants.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\@react-native-firebase\remote-config\android\src\main\java\io\invertase\firebase\config\UniversalFirebaseConfigModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-pushiomanager\android\src\main\java\com\pushio\manager\rn\RCTPIOCommonUtils.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-reanimated\android\src\main\java\com\swmansion\reanimated\NodesManager.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-reanimated\android\src\main\java\com\swmansion\reanimated\NodesManager.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-version-number\android\src\main\java\com\apsl\versionnumber\RNVersionNumberModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\react-native-webview\android\src\main\java\com\reactnativecommunity\webview\RNCWebViewManager.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\node_modules\@unimodules\react-native-adapter\android\src\main\java\org\unimodules\adapters\react\services\UIManagerModuleWrapper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\git_panvel\panvel-app\android\app\src\debug\java\br\com\dimed\panvel\ReactNativeFlipper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class com.pushio.manager.BuildConfig found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAPICompletionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAPIConnector found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAPIConnectorService found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAPIResultReceiver found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAppConfigManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAppConfigManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAppLifecycleManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAppLifecycleManager$ActivityStatus found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOAppLifecycleManager$AppStatus found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOApplication found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBadgeManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBadgeRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBadgeSyncListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBatch found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBatch$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBatchRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBatchRequestManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOBeaconRegion found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCategoryManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCategoryManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCommonUtils found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCompletionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConfigurationListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConfigurationManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConfigurationManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConfigurationManager$2 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConnectionManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConnectivityChangeListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOConnectivityReceiver found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOContentPresenter found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOContentPresenter$PIOActivityDetectorTask found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOContextProviderListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOContextType found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCrashLogManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCrashLogManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOCrashLogRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIODBStore found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIODeepLinkListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIODeviceProfiler found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIODeviceProfiler$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOEngagementManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOEngagementRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOEvent found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOEvent$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOEventManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOEventManager$PIOEventListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOFCMIntentService found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOFormLinkCompletionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOFormLinkContentRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOGCMRegistrationIntentService found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOGeoRegion found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInAppMessage found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInAppMessageManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInAppMessageManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInAppMessageManager$1$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInAppMessageRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInteractiveNotificationButton found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInteractiveNotificationCategory found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOInternalResponse found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOLocationManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOLocationManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOLogger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMCMessage found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMCMessage$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMCMessageError found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMCMessageListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMCRichContentListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMessageCenterManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMessageCenterManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOMessageCenterRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIONotificationManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOPermission found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOPermissionsActivity found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOPreferenceManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOPreferenceManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegion found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionCompletionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionEventType found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionEventType$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionEventType$2 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionEventType$3 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionEventType$4 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionException found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionRequestCompletionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionRequestManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegionRequestManager$1$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegistrationManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORegistrationRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORemoteViewClickHandlerService found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORemoteViewClickReceiver found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORequestCompletionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORsysHyperlinkHandler found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORsysIAMHyperlinkListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIORsysLinkRequestManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOSessionManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOUserManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PIOUserManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOActivityLauncher found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOBroadcastReceiver found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOConstants found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOEngagementService found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOHttpRequestType found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOLocalEventProcessor found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIONotificationServiceType found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOPersistenceManager found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOPersistenceManager$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOPushHandler found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOPushHandler$PushIOMessageListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOUriReceiver found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.PushIOUrlHandlerService found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.exception.PIOMCMessageAPIException found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.exception.PIOMCMessageException found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.exception.PIOMCRichContentException found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.exception.ValidationException found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.PushIOAction found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.PushIOEventAction found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.PushIOMessageAction found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.PushIOMessageAction$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.PushIOMessageViewType found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PIOMessageViewModel found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOMessageFullscreenFragment found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOMessageFullscreenFragment$OnFragmentInteractionListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOMessageViewActivity found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOMessageViewActivity$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOMessageViewActivity$2 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOMessageViewActivity$3 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOWebView found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOWebView$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOWebView$2 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOWebView$3 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.iam.ui.PushIOWebView$PushIOWebViewEventListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.preferences.PushIOPreference found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.preferences.PushIOPreference$Type found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.Badger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.ShortcutBadgeException found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.ShortcutBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.AdwHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.ApexHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.AsusHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.DefaultBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.EverythingMeHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.HuaweiHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.IntentConstants found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.NewHtcHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.NovaHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.OPPOHomeBader found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.SamsungHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.SonyHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.SonyHomeBadger$1 found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.VivoHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.XiaomiHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.ZTEHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.impl.ZukHomeBadger found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.util.BroadcastHelper found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.shortcutbadger.util.CloseHelper found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.tasks.PushIOEngagementListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.tasks.PushIOGetImageTask found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.tasks.PushIOGetImageTask$PushIOImageDownloadListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.tasks.PushIOListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.tasks.PushIONotificationServiceDiscoveryListener found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.tasks.PushIOTask found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.trackers.PushIOPublisher found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)
  Duplicate class com.pushio.manager.trackers.PushIOTracker found in modules PushIOManager-6.47.1-runtime.jar (PushIOManager-6.47.1.aar) and jetified-PushIOManager-6.43.2-runtime.jar (PushIOManager-6.43.2.aar)

  Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.


* Try:
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.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 55s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
Note: Some input files use unchecked or unsafe operations.

I appreciate if someone can help me solve this

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.