Giter Site home page Giter Site logo

nativescript / push-plugin Goto Github PK

View Code? Open in Web Editor NEW
122.0 40.0 48.0 24.79 MB

Contains the source code for the Push Plugin.

License: Apache License 2.0

Objective-C 36.07% JavaScript 14.76% Java 23.95% Shell 8.61% TypeScript 16.61%
nativescript ios android push-notifications firebase-cloud-messaging mobile

push-plugin's Introduction

Push Plugin for NativeScript


This plugin is deprecated. Feel free to use the Firebase Plugin for implementing push notifications in your NativeScript app. If you already have an app that use the Push Plugin, read the migrate-to-firebase doc for initial guidance.


Build Status

The code for the Push Plugin for NativeScript.

Installation

In the Command prompt / Terminal navigate to your application root folder and run:

tns plugin add nativescript-push-notifications

Configuration

Android

See the Android Configuration for using Firebase Cloud Messaging for information about how to add Firebase to your project.

  • Edit the package.json file in the root of application, by changing the bundle identifier to match the Firebase's project package name. For example:

    "id": "org.nativescript.PushNotificationApp"
  • Edit the app/App_Resources/Android/app.gradle file of your application, by changing the application ID to match the bundle identifier from the package.json. For example:

    android {
    // ...
        defaultConfig {
            applicationId = "org.nativescript.PushNotificationApp"
        }
    // ...
    }
  • Go to the application folder and add the Android platform to the application

    tns platform add android
  • Add the google-settings.json file with the FCM configuration to the app/App_Resources/Android folder in your app. If this file is not added, building the app for android will fail.

The plugin will default to version 12.0.1 of the firebase-messaging SDK. If you need to change the version, you can add a project ext property firebaseMessagingVersion:

    // in the root level of /app/App_Resources/Android/app.gradle:
    project.ext {
        firebaseMessagingVersion = "+" // OR the version you wish
    }

iOS

  • Ensure you have set up an App in your Apple Developer account, with Push Notifications enabled and configured. More on this in the Apple's AddingCapabilities documentation > Configuring Push Notifications section.

  • Edit the package.json file in the root of application, by changing the bundle identifier to match the App ID. For example:

    "id": "org.nativescript.PushNotificationApp"
  • Go to the application folder and add the iOS platform to the application

    tns build ios
  • Go to (application folder)/platforms/ios and open the XCode project. Enable Push Notifications in the project Capabilities options. In case you don't have XCode, go to (application folder)/platforms/ios/(application folder name) , find *.entitlements file and add to it aps-environment key and its value as shown below:

    <plist version="1.0">
    <dict>
        <key>aps-environment</key>
        <string>development</string>
    </dict>
    </plist>

Usage

Using the plugin in Android

Add code in your view model or component to subscribe and receive messages (don't forget to enter your Firebase Cloud Messaging Sender ID in the options of the register method):

TypeScript

import * as pushPlugin from "nativescript-push-notifications";
private pushSettings = {
    senderID: "<ENTER_YOUR_PROJECT_NUMBER>", // Required: setting with the sender/project number
    notificationCallbackAndroid: (stringifiedData: String, fcmNotification: any) => {
        const notificationBody = fcmNotification && fcmNotification.getBody();
        this.updateMessage("Message received!\n" + notificationBody + "\n" + stringifiedData);
    }
};
pushPlugin.register(pushSettings, (token: String) => {
    alert("Device registered. Access token: " + token);;
}, function() { });

Javascript

var pushPlugin = require("nativescript-push-notifications");
var pushSettings = {
        senderID: "<ENTER_YOUR_PROJECT_NUMBER>", // Required: setting with the sender/project number
        notificationCallbackAndroid: function (stringifiedData, fcmNotification) {
            var notificationBody = fcmNotification && fcmNotification.getBody();
            _this.updateMessage("Message received!\n" + notificationBody + "\n" + stringifiedData);
        }
    };
pushPlugin.register(pushSettings, function (token) {
    alert("Device registered. Access token: " + token);
}, function() { });
  • Run the app on the phone or emulator:

    tns run android
  • The access token is written in the console and displayed on the device after the plugin sucessfully subscribes to receive notifications. When a notification comes, the message will be displayed in the notification area if the app is closed or handled directly in the notificationCallbackAndroid callback if the app is open.

Using the plugin in iOS

Add code in your view model or component to subscribe and receive messages:

TypeScript

import * as pushPlugin from "nativescript-push-notifications";
const iosSettings = {
    badge: true,
    sound: true,
    alert: true,
    interactiveSettings: {
        actions: [{
            identifier: 'READ_IDENTIFIER',
            title: 'Read',
            activationMode: "foreground",
            destructive: false,
            authenticationRequired: true
        }, {
            identifier: 'CANCEL_IDENTIFIER',
            title: 'Cancel',
            activationMode: "foreground",
            destructive: true,
            authenticationRequired: true
        }],
        categories: [{
            identifier: 'READ_CATEGORY',
            actionsForDefaultContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER'],
            actionsForMinimalContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER']
        }]
    },
    notificationCallbackIOS: (message: any) => {
        alert("Message received!\n" + JSON.stringify(message));
    }
};

pushPlugin.register(iosSettings, (token: String) => {
    alert("Device registered. Access token: " + token);

    // Register the interactive settings
    if(iosSettings.interactiveSettings) {
        pushPlugin.registerUserNotificationSettings(() => {
            alert('Successfully registered for interactive push.');
        }, (err) => {
            alert('Error registering for interactive push: ' + JSON.stringify(err));
        });
    }
}, (errorMessage: any) => {
    alert("Device NOT registered! " + JSON.stringify(errorMessage));
});

Javascript

var pushPlugin = require("nativescript-push-notifications");
var iosSettings = {
    badge: true,
    sound: true,
    alert: true,
    interactiveSettings: {
        actions: [{
            identifier: 'READ_IDENTIFIER',
            title: 'Read',
            activationMode: "foreground",
            destructive: false,
            authenticationRequired: true
        }, {
            identifier: 'CANCEL_IDENTIFIER',
            title: 'Cancel',
            activationMode: "foreground",
            destructive: true,
            authenticationRequired: true
        }],
        categories: [{
            identifier: 'READ_CATEGORY',
            actionsForDefaultContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER'],
            actionsForMinimalContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER']
        }]
    },
    notificationCallbackIOS: function (data) {
        alert("message", "" + JSON.stringify(data));
    }
};

pushPlugin.register(iosSettings, function (data) {
    alert("Device registered. Access token" + data);

    // Register the interactive settings
        if(iosSettings.interactiveSettings) {
            pushPlugin.registerUserNotificationSettings(function() {
                alert('Successfully registered for interactive push.');
            }, function(err) {
                alert('Error registering for interactive push: ' + JSON.stringify(err));
            });
        }
}, function() { });
  • Run the app on the phone or simulator:

    tns run ios
  • [HINT] Install the pusher app to send notifications to the device being debugged on. In the 'device push token' field paste the device access token generated in the {N} CLI / XCode debug console after launching the app.

API Reference

Methods

register(options, successCallback, errorCallback) - subscribe the device with Apple/Google push notifications services so the app can receive notifications

Option Platform Type Description
senderID Android String The Sender ID for the FCM project. This option is required for Android.
notificationCallbackAndroid Android Function Callback to invoke, when a push is received on Android.
badge iOS Boolean Enable setting the badge through Push Notification.
sound iOS Boolean Enable playing a sound.
alert iOS Boolean Enable creating a alert.
clearBadge iOS Boolean Enable clearing the badge on push registration.
notificationCallbackIOS iOS Function Callback to invoke, when a push is received on iOS.
interactiveSettings iOS Object Interactive settings for use when registerUserNotificationSettings is used on iOS.

The interactiveSettings object for iOS can contain the following:

Option Type Description
actions Array A list of iOS interactive notification actions.
categories Array A list of iOS interactive notification categories.

The actions array from the iOS interactive settings contains:

Option Type Description
identifier String Required. String identifier of the action.
title String Required. Title of the button action.
activationMode String Set to either "foreground" or "background" to launch the app in foreground/background and respond to the action.
destructive Boolean Enable if the action is destructive. Will change the action color to red instead of the default.
authenticationRequired Boolean Enable if the device must be unlocked to perform the action.
behavior String Set if the action has a different behavior - e.g. text input.

The categories array from the iOS interactive settings contains:

Option Type Description
identifier String Required. String identifier of the category.
actionsForDefaultContext Array Required. Array of string identifiers of actions.
actionsForMinimalContext Array Required. Array of string identifiers of actions.

For more information about iOS interactive notifications, please visit the Apple Developer site

var settings = {
    badge: true,
    sound: true,
    alert: true,
    interactiveSettings: {
        actions: [{
            identifier: 'READ_IDENTIFIER',
            title: 'Read',
            activationMode: "foreground",
            destructive: false,
            authenticationRequired: true
        }, {
        identifier: 'CANCEL_IDENTIFIER',
            title: 'Cancel',
            activationMode: "foreground",
            destructive: true,
            authenticationRequired: true
        }],
        categories: [{
            identifier: 'READ_CATEGORY',
            actionsForDefaultContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER'],
            actionsForMinimalContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER']
        }]
    },
    notificationCallbackIOS: function(message) {
        alert(JSON.stringify(message));
    }
};


pushPlugin.register(settings,
    // Success callback
    function(token){
        // Register the interactive settings
        if(settings.interactiveSettings) {
            pushPlugin.registerUserNotificationSettings(function() {
                alert('Successfully registered for interactive push.');
            }, function(err) {
                alert('Error registering for interactive push: ' + JSON.stringify(err));
            });
        }
    },
    // Error Callback
    function(error){
        alert(error.message);
    }
);

unregister(successCallback, errorCallback, options) - unsubscribe the device so the app stops receiving push notifications. The options object is the same as on the register method

Parameter Platform Type Description
successCallback iOS Function Called when app is successfully unsubscribed. Has one object parameter with the result.
successCallback Android Function Called when app is successfully unsubscribed. Has one string parameter with the result.
errorCallback Android Function Called when app is NOT successfully unsubscribed. Has one parameter containing the error.
options Android Function Called when app is NOT successfully unsubscribed. Has one parameter containing the error.
pushPlugin.unregister(
    // Success callback
    function(result) {
        alert('Device unregistered successfully');
    },
    // Error Callback
    function(errorMessage) {
        alert(errorMessage);
    },
    // The settings from the registration phase
    settings
);

areNotificationsEnabled(successCallback) - check if push notifications are enabled (iOS only, always returns true on Android)

Parameter Platform Type Description
successCallback iOS/Android Function Called with one boolean parameter containing the result from the notifications enabled check.
pushPlugin.areNotificationsEnabled(function(areEnabled) {
        alert('Are Notifications enabled: ' + areEnabled);
    });

Android only

onMessageReceived(callback) DEPRECATED - register a callback function to execute when receiving a notification. You should set this from the notificationCallbackAndroid registration option instead

Parameter Type Description
stringifiedData String A string containing JSON data from the notification
fcmNotification Object iOS/Android

The fcmNotification object contains the following methods:

Method Returns
getBody() String
getBodyLocalizationArgs() String[]
getBodyLocalizationKey() String
getClickAction() String
getColor() String
getIcon() String
getSound() String
getTag() String
getTitle() String
getTitleLocalizationArgs() String[]
getTitleLocalizationKey() String

onTokenRefresh(callback) - register a callback function to execute when the old token is revoked and a new token is obtained. Note that the token is not passed to the callback as an argument. If you need the new token value, you'll need to call register again or add some native code to obtain the token from FCM

Parameter Type Description
callback Function Called with no arguments.
pushPlugin.onTokenRefresh(function() {
        alert("new token obtained");
});

iOS only

registerUserNotificationSettings(successCallback, errorCallback) - used to register for interactive push on iOS

Parameter Type Description
successCallback Function Called when app is successfully unsubscribed. Has one object parameter with the result.
errorCallback Function Called when app is NOT successfully unsubscribed. Has one parameter containing the error.

Troubleshooting

In case the application doesn't work as expected. Here are some things you can verify

Troubleshooting issues in Android

  • When the application is started using tns run android (i.e. in debug mode with livesync) some background notifications might not be received correctly. This happens because the app is not started in a normal way for debugging and the resume from background happens differently. To receive all notifications correctly, stop the app (swipe it away it from the recent apps list) and start it again by tapping the app icon on the device.

  • Thе google-services plugin is added automatically. If this fails, you can try adding it manually:

    • Navigate to the project platforms/android/ folder and locate the application-level build.gradle file
    • Add the google-services plugin to the list of other dependencies in your app's build.gradle file
      dependencies {
      	// ...
      	classpath "com.google.gms:google-services:3.0.0"
      	// ...
      }
    • Add the following line be at the bottom of your build.gradle file to enable the Gradle plugin
      apply plugin: 'com.google.gms.google-services'
  • Ensure that the AndroidManifest.xml located at platforms/android/build/... (do not add it in your "App_Resources/Android/AndroidManifest.xml" file) contains the following snippets for registering the GCM listener:

    <activity android:name="com.telerik.pushplugin.PushHandlerActivity"/>
    <receiver
        android:name="com.google.android.gms.gcm.GcmReceiver"
        android:exported="true"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.pushApp.gcm" />
        </intent-filter>
    </receiver>
    <service
        android:name="com.telerik.pushplugin.PushPlugin"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </service>
  • Ensure that the AndroidManifest.xml located at platforms/android/build/... contains the following permissions for push notifications:

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

Troubleshooting issues in iOS

  • Error "Error registering: no valid 'aps-environment' entitlement string found for application" - this means that the certificates are not correctly set in the xcodeproject. Open the xcodeproject, fix them and you can even run the application from xcode to verify it's setup correctly. The bundle identifier in xcode should be the same as the "id" in the package.json file in the root of the project. Also make sure that "Push Notifications" is switched ON in the "Capabilities" page of the project settings.

Android Configuration for using Firebase Cloud Messaging

The nativescript-push-notifications module for Android relies on the Firebase Cloud Messaging (FCM) SDK. In the steps below you will be guided to complete a few additional steps to prepare your Android app to receive push notifications from FCM.

  1. Add the google-services.json file

    To use FCM, you need this file. It contains configurations and credentials for your Firebase project. To obtain this follow the instructions for adding Firebase to your project from the official documentation. Scroll down to the Manually add Firebase section.

    Place the file in your app's App_Resources/Android folder

  2. Obtain the FCM Server Key (optional)

    This key is required to be able to send programmatically push notifications to your app. You can obtain this key from your Firebase project.

Receive and Handle Messages from FCM on Android

The plugin allows for handling data, notification, and messages that contain both payload keys which for the purposes of this article are reffered to as mixed. More specifics on these messages are explained here.

The plugin extends the FirebaseMessagingService and overrides its onMessageReceived callback. In your app you need to use the notificationCallbackAndroid setting when calling the register method of the plugin.

The behavior of the callback in the module follows the behavior of the FCM service.

Handling Data Messages

The notificationCallbackAndroid method of the plugin is called each time a data notification is received.

If the app is stopped or suspended, NO notification is constructed and placed in the tray. Tapping the app icon launches the app and invokes the notificationCallbackAndroid callback where you will receive the notification data.

If the app is active and in foreground, the notificationCallbackAndroid callback is invoked immediately with the notification data (fcmNotification).

Handling Notification Messages

If the app is active and in foreground, it invokes the notificationCallbackAndroid callback with two arguments (stringifiedData, fcmNotification).

If the app is in background, a notification is put in the tray. When tapped, it launches the app, but does not invoke the notificationCallbackAndroid callback.

Handling Mixed Messages

Mixed messages are messages that contain in their load both data and notification keys. When such message is received:

  • The app is in foreground, the notificationCallbackAndroid callback is invoked with parameters (stringifiedData, fcmNotification)
  • The app is in background, the notificationCallbackAndroid callback is not invoked. A notification is placed in the system tray. If the notification in the tray is tapped, the data part of the mixed message is available in the extras of the intent of the activity and are available in the respective application event of NativeScript.

Example of handling the data part in the application resume event (e.g. the app was brought to the foreground from the notification):

application.on(application.resumeEvent, function(args) {
    if (args.android) {
        var act = args.android;
        var intent = act.getIntent();
        var extras = intent.getExtras();
        if (extras) {
            // for (var key in extras) {
            //     console.log(key + ' -> ' + extras[key]);
            // }
            var msg = extras.get('someKey');
        }
    }
});

Parameters of the notificationCallbackAndroid Callback

Depending on the notification event and payload, the notificationCallbackAndroid callback is invoked with two arguments.

  • stringifiedData - String. A stringified JSON representation of the data value in the notification payload.
  • fcmNotification - RemoteMessage.Notification. A representation of the RemoteMessage.Notification class which can be accessed according to its public methods. This parameter is available in case the callback was called from a message with a notification key in the payload.

Setting Notification Icon and Color

The plugin automatically handles some keys in the data object like message, title, color, smallIcon, largeIcon and uses them to construct a notification entry in the tray.

Custom default color and icon for notification messages can be set in the AndroidManifest.xml inside the application directive:

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_ic_notification" />
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/colorAccent" />

For more info visit the Edit the app manifest article.

Contribute

We love PRs! Check out the contributing guidelines. If you want to contribute, but you are not sure where to start - look for issues labeled help wanted.

Get Help

Please, use github issues strictly for reporting bugs or requesting features. For general questions and support, check out Stack Overflow or ask our experts in NativeScript community Slack channel.

push-plugin's People

Contributors

alexanderfilipov avatar antondobrev avatar atanasovg avatar dimitartodorov avatar eddyverbruggen avatar etabakov avatar fritzvd avatar fwilkens avatar gprodanov avatar hypery2k avatar lini avatar mitkodev avatar nikoms avatar nsplugins avatar plamen5kov avatar r0bot avatar tbozhikov avatar yyosifov avatar

Stargazers

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

Watchers

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

push-plugin's Issues

cannot register with the plugin

im using nativescirpt 2.4.1 and
"nativescript-push-notifications": "0.0.19"

i tried the following but nothing happened at all !!

this is main-page.js

var createViewModel = require("./main-view-model").createViewModel;

function onNavigatingTo(args) {
    var page = args.object;
    page.bindingContext = createViewModel();
}

exports.onNavigatingTo = onNavigatingTo;

and here is main-view-model.js

var Observable = require("data/observable").Observable;

function createViewModel() {
    var viewModel = new Observable();

    viewModel.onGCM = function () {
        var pushPlugin = require("nativescript-push-notifications");
        pushPlugin.register({ senderID: '1055396435824' }, function (data){
            console.log(JSON.stringify(data));
            viewModel.message = JSON.stringify(data);
        }, function() {

        });

        pushPlugin.onMessageReceived(function callback(data) {
            viewModel.message = JSON.stringify(data);
            console.log(JSON.stringify(data));
        });
    }

    return viewModel;
}

exports.createViewModel = createViewModel;

and this is main-page.xml

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="onNavigatingTo">
    <StackLayout class="p-20">
        <Label text="Tap the button" class="h1 text-center"/>
        <Label text="{{ message }}" class="h2 text-center" textWrap="true"/>
        <Button text="GCM" tap="{{ onGCM }}" class="btn btn-primary btn-active"/>
    </StackLayout>
</Page>

nothing appeared on the consoel log at all !!

what is wrong

Push plugin fails on Android 6

Steps to reproduce:
Run sample-push-plugin app.
Tap "Enable Notifications"

Result:

10-28 12:25:02.763  2309  2309 W AccessibilityNodeInfoDumper: Fetch time: 0ms
10-28 12:25:02.773  2394  2394 W System  : ClassLoader referenced unknown path: /system/priv-app/Settings/lib/x86
10-28 12:25:02.793  1877  2408 E GCM     : Missing checkin config file
10-28 12:25:02.793  1877  2408 W GCM     : GCM FAILED TO INITIALIZE - missing checkin
10-28 12:25:02.923  1290  1475 I ActivityManager: Start proc 2411:com.android.calendar/u0a20 for broadcast com.android.calendar/.widget.CalendarAppWidgetService$CalendarFactory
10-28 12:25:02.930  2411  2411 I art     : Late-enabling JIT
10-28 12:25:02.932  2411  2411 I art     : JIT created with code_cache_capacity=2MB compile_threshold=1000
10-28 12:25:02.939  2338  2338 V JS      : EverliveError: Error while retrieving a token: AUTHENTICATION_FAILED
10-28 12:25:02.940  2338  2383 W System.err: java.io.IOException: AUTHENTICATION_FAILED
10-28 12:25:02.940  2338  2383 W System.err:    at com.google.android.gms.iid.zzc.zzb(Unknown Source)
10-28 12:25:02.940  2338  2383 W System.err:    at com.google.android.gms.iid.zzc.zza(Unknown Source)
10-28 12:25:02.940  2338  2383 W System.err:    at com.google.android.gms.iid.InstanceID.zzc(Unknown Source)
10-28 12:25:02.940  2338  2383 W System.err:    at com.google.android.gms.iid.InstanceID.getToken(Unknown Source)
10-28 12:25:02.940  2338  2383 W System.err:    at com.telerik.pushplugin.ObtainTokenThread.getTokenFromGCM(ObtainTokenThread.java:40)
10-28 12:25:02.940  2338  2383 W System.err:    at com.telerik.pushplugin.ObtainTokenThread.run(ObtainTokenThread.java:31)

MISSING_INSTANCEID_SERVICE"

i got this error when i try the plugin as mentioned here
i've installed google play services on my computer and still the same error !!

JS: "Error while retrieving a token: MISSING_INSTANCEID_SERVICE"

Error on merge resources

App does not build and show error when try to merge the resource files inside the project dependency "nativescript-plugin-google-play-services"

...
AAPT out(1955802397) : No Delegate set : lost message:  Output file: C:\...App\platforms\android\build\intermediates\res\merged\NativescriptAppResourcesnativescript-facebook-pluginnativescript-google-maps-sdknativescript-plugin-google-play-servicesnativescript-push-notifications\debug\drawable-xxxhdpi\arrow_down.png
AAPT out(359020287) : No Delegate set : lost message:Done
AAPT out(1955802397) : No Delegate set : lost message:Error
AAPT out(1955802397) : No Delegate set : lost message:Done
...

Push plugin does not work on Android 24

Hi,

NativeScript CLI 2.3.0 is going to support Android Build Tools 24.

Currently, if you try to run the sample app with this setup it will crash:

08-29 10:03:51.140  3557  3581 E AndroidRuntime: FATAL EXCEPTION: Thread-193
08-29 10:03:51.140  3557  3581 E AndroidRuntime: Process: org.nativescript.allsdk, PID: 3557
08-29 10:03:51.140  3557  3581 E AndroidRuntime: java.lang.IncompatibleClassChangeError: The method 'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'com.google.android.gms.iid.zzd' appears in /data/app/org.nativescript.allsdk-1/base.apk)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.google.android.gms.iid.zzd.zzeb(Unknown Source)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.google.android.gms.iid.zzd.<init>(Unknown Source)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.google.android.gms.iid.zzd.<init>(Unknown Source)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.telerik.pushplugin.ObtainTokenThread.getTokenFromGCM(ObtainTokenThread.java:39)
08-29 10:03:51.140  3557  3581 E AndroidRuntime:    at com.telerik.pushplugin.ObtainTokenThread.run(ObtainTokenThread.java:31)
08-29 10:03:51.143  1534  2673 W ActivityManager:   Force finishing activity org.nativescript.allsdk/com.tns.NativeScriptActivity
08-29 10:03:51.152  1193  1193 D gralloc : Registering a buffer in the process that created it. This may cause memory ordering problems.

Possible solution - Update Android Support Library from v4 to v7:
https://github.com/NativeScript/push-plugin/tree/master/native-src/android/libs

CC: @AntonDobrev.

iOS app crashes on start after register for push

Hi,

The application crashes on start when trying to register for push notifications. I am using the code from the home page here:
https://github.com/NativeScript/push-plugin

I'm trying to enable push in the sampleGroceries app:
https://github.com/NativeScript/sample-Groceries

The demo app used to run smooth, but after adding the support for push notifications and installing on my iPhone it crashes immediately on start.

Here is the crash report:


Incident Identifier: 1A99F211-DF3F-40BE-98FC-BE9D8E6C64EB
CrashReporter Key:   b99067efe89e005e4507e3e323779ceba942456f
Hardware Model:      iPhone7,2
Process:             sampleGroceries [599]
Path:                /private/var/containers/Bundle/Application/331AE670-D5E8-4B46-867E-EC5467CECFBC/sampleGroceries.app/sampleGroceries
Identifier:          net.tablesapp
Version:             1.0 (1.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2016-06-08 23:19:30.30 +0300
Launch Time:         2016-06-08 23:19:24.24 +0300
OS Version:          iOS 9.3.2 (13F69)
Report Version:      105

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000deaddead
Triggered by Thread:  0

Filtered syslog:
None found

Global Trace Buffer (reverse chronological seconds):
0.277575     libsystem_trace.dylib      0x0000000181e449cc dyld_image_header_containing_address(0x14ed58100) failed



Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   sampleGroceries                 0x0000000100107d04 0x1000ec000 + 113924
1   sampleGroceries                 0x0000000100107cfc 0x1000ec000 + 113916
2   sampleGroceries                 0x00000001001111e8 0x1000ec000 + 152040
3   sampleGroceries                 0x0000000100602508 0x1000ec000 + 5334280
4   sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
5   sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
6   sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
7   sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
8   sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
9   sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
10  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
11  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
12  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
13  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
14  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
15  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
16  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
17  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
18  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
19  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
20  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
21  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
22  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
23  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
24  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
25  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
26  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
27  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
28  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
29  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
30  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
31  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
32  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
33  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
34  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
35  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
36  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
37  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
38  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
39  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
40  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
41  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
42  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
43  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
44  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
45  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
46  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
47  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
48  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
49  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
50  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
51  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
52  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
53  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
54  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
55  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
56  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
57  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
58  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
59  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
60  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
61  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
62  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
63  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
64  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
65  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
66  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
67  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
68  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
69  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
70  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
71  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
72  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
73  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
74  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
75  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
76  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
77  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
78  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
79  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
80  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
81  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
82  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
83  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
84  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
85  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
86  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
87  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
88  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
89  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
90  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
91  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
92  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
93  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
94  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
95  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
96  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
97  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
98  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
99  sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
100 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
101 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
102 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
103 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
104 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
105 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
106 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
107 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
108 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
109 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
110 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
111 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
112 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
113 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
114 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
115 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
116 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
117 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
118 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
119 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
120 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
121 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
122 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
123 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
124 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
125 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
126 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
127 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
128 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
129 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
130 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
131 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
132 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
133 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
134 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
135 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
136 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
137 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
138 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
139 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
140 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
141 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
142 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
143 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
144 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
145 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
146 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
147 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
148 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
149 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
150 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
151 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
152 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
153 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
154 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
155 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
156 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
157 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
158 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
159 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
160 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
161 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
162 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
163 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
164 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
165 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
166 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
167 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
168 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
169 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
170 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
171 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
172 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
173 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
174 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
175 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
176 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
177 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
178 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
179 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
180 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
181 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
182 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
183 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
184 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
185 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
186 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
187 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
188 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
189 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
190 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
191 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
192 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
193 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
194 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
195 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
196 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
197 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
198 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
199 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
200 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
201 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
202 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
203 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
204 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
205 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
206 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
207 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
208 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
209 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
210 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
211 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
212 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
213 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
214 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
215 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
216 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
217 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
218 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
219 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
220 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
221 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
222 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
223 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
224 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
225 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
226 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
227 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
228 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
229 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
230 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
231 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
232 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
233 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
234 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
235 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
236 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
237 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
238 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
239 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
240 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
241 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
242 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
243 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
244 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
245 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
246 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
247 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
248 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
249 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
250 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
251 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
252 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
253 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
254 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
255 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
256 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
257 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
258 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
259 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
260 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
261 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
262 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
263 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
264 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
265 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
266 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
267 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
268 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
269 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
270 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
271 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
272 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
273 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
274 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
275 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
276 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
277 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
278 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
279 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
280 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
281 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
282 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
283 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
284 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
285 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
286 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
287 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
288 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
289 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
290 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
291 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
292 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
293 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
294 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
295 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
296 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
297 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
298 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
299 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
300 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
301 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
302 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
303 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
304 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
305 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
306 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
307 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
308 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
309 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
310 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
311 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
312 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
313 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
314 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
315 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
316 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
317 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
318 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
319 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
320 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
321 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
322 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
323 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
324 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
325 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
326 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
327 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
328 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
329 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
330 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
331 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
332 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
333 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
334 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
335 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
336 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
337 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
338 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
339 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
340 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
341 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
342 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
343 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
344 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
345 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
346 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
347 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
348 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
349 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
350 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
351 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
352 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
353 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
354 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
355 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
356 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
357 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
358 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
359 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
360 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
361 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
362 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
363 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
364 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
365 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
366 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
367 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
368 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
369 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
370 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
371 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
372 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
373 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
374 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
375 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
376 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
377 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
378 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
379 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
380 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
381 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
382 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
383 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
384 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
385 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
386 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
387 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
388 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
389 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
390 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
391 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
392 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
393 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
394 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
395 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
396 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
397 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
398 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
399 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
400 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
401 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
402 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
403 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
404 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
405 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
406 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
407 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
408 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
409 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
410 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
411 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
412 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
413 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
414 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
415 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
416 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
417 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
418 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
419 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
420 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
421 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
422 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
423 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
424 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
425 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
426 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
427 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
428 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
429 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
430 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
431 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
432 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
433 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
434 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
435 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
436 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
437 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
438 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
439 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
440 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
441 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
442 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
443 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
444 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
445 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
446 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
447 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
448 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
449 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
450 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
451 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
452 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
453 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
454 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
455 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
456 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
457 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
458 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
459 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
460 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
461 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
462 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
463 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
464 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
465 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
466 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
467 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
468 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
469 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
470 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
471 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
472 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
473 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
474 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
475 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
476 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
477 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
478 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
479 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
480 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
481 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
482 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
483 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
484 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
485 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
486 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
487 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
488 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
489 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
490 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
491 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
492 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
493 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
494 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
495 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
496 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
497 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
498 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
499 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
500 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
501 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
502 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
503 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
504 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
505 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
506 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
507 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
508 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
509 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620
510 sampleGroceries                 0x00000001006041b4 0x1000ec000 + 5341620

Thread 1:
0   libsystem_kernel.dylib          0x0000000181d60b48 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000181e29530 _pthread_wqthread + 1284
2   libsystem_pthread.dylib         0x0000000181e29020 start_wqthread + 4

Thread 2 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 2:
0   libsystem_kernel.dylib          0x0000000181d614d8 kevent_qos + 8
1   libdispatch.dylib               0x0000000181c247d8 _dispatch_mgr_invoke + 232
2   libdispatch.dylib               0x0000000181c13648 _dispatch_source_invoke + 0

Thread 3:
0   libsystem_kernel.dylib          0x0000000181d60b48 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000181e29530 _pthread_wqthread + 1284
2   libsystem_pthread.dylib         0x0000000181e29020 start_wqthread + 4

Thread 4 name:  WTF Parallel Helper Thread
Thread 4:
0   libsystem_kernel.dylib          0x0000000181d5ff24 __psynch_cvwait + 8
1   libsystem_pthread.dylib         0x0000000181e2ace8 _pthread_cond_wait + 648
2   libc++.1.dylib                  0x00000001817b742c std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 56
3   sampleGroceries                 0x00000001001515a4 0x1000ec000 + 415140
4   sampleGroceries                 0x0000000100331b64 0x1000ec000 + 2382692
5   sampleGroceries                 0x0000000100150b70 0x1000ec000 + 412528
6   sampleGroceries                 0x0000000100150964 0x1000ec000 + 412004
7   sampleGroceries                 0x0000000100152d74 0x1000ec000 + 421236
8   sampleGroceries                 0x0000000100153174 0x1000ec000 + 422260
9   libsystem_pthread.dylib         0x0000000181e2bb28 _pthread_body + 156
10  libsystem_pthread.dylib         0x0000000181e2ba8c _pthread_body + 0
11  libsystem_pthread.dylib         0x0000000181e29028 thread_start + 4

Thread 5:
0   libsystem_kernel.dylib          0x0000000181d60b48 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000181e29530 _pthread_wqthread + 1284
2   libsystem_pthread.dylib         0x0000000181e29020 start_wqthread + 4

Thread 6:
0   libsystem_kernel.dylib          0x0000000181d60b48 __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x0000000181e29530 _pthread_wqthread + 1284
2   libsystem_pthread.dylib         0x0000000181e29020 start_wqthread + 4

Thread 7:
0   libsystem_kernel.dylib          0x0000000181d6041c __semwait_signal + 8
1   libsystem_c.dylib               0x0000000181c7d22c nanosleep + 212
2   libc++.1.dylib                  0x00000001817f53b4 std::__1::this_thread::sleep_for(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > const&) + 84
3   sampleGroceries                 0x0000000100144cec 0x1000ec000 + 363756
4   sampleGroceries                 0x00000001001449f8 0x1000ec000 + 363000
5   sampleGroceries                 0x000000010014711c 0x1000ec000 + 373020
6   sampleGroceries                 0x0000000100147380 0x1000ec000 + 373632
7   libsystem_pthread.dylib         0x0000000181e2bb28 _pthread_body + 156
8   libsystem_pthread.dylib         0x0000000181e2ba8c _pthread_body + 0
9   libsystem_pthread.dylib         0x0000000181e29028 thread_start + 4

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x000000016fd10f68   x1: 0x0000000000020000   x2: 0x0000000000000000   x3: 0x0000000104fec800
    x4: 0x0000000100cfd358   x5: 0x000000016fd10f78   x6: 0x0000000000000000   x7: 0x0000000000000fa0
    x8: 0x00000000deaddead   x9: 0x000000016fc38000  x10: 0x00000000000d90a8  x11: 0x000000010068edae
   x12: 0x0000000000000040  x13: 0x0000000000014ed5  x14: 0x0000000104feff00  x15: 0x0000000000000041
   x16: 0x0000000181e2faf4  x17: 0x0000000000000001  x18: 0x0000000000000000  x19: 0x00000001a028c488
   x20: 0x0000000000000020  x21: 0x0000000104fd4110  x22: 0x0000000104f96b50  x23: 0x00000001a028c488
   x24: 0x0000000000000009  x25: 0x000000016fd10fe8  x26: 0x0000000100610079  x27: 0x000000010061007d
   x28: 0x000000010061007b  fp: 0x000000016fd11100   lr: 0x0000000100107cfc
    sp: 0x000000016fd10fb0   pc: 0x0000000100107d04 cpsr: 0x80000000

Binary Images:
0x1000ec000 - 0x10066ffff sampleGroceries arm64  <efac9aad85a03a1c9c9783b71a46840d> /var/containers/Bundle/Application/331AE670-D5E8-4B46-867E-EC5467CECFBC/sampleGroceries.app/sampleGroceries
0x100a18000 - 0x100a23fff PushPlugin arm64  <d8f2a309022a3a87aa592b604dcb8023> /var/containers/Bundle/Application/331AE670-D5E8-4B46-867E-EC5467CECFBC/sampleGroceries.app/Frameworks/PushPlugin.framework/PushPlugin
0x120014000 - 0x120043fff dyld arm64  <488b8b4696fb312db76da956e6f5aef5> /usr/lib/dyld
0x1817ac000 - 0x1817adfff libSystem.B.dylib arm64  <77c873c418a6317f821f7b706d5b7dc6> /usr/lib/libSystem.B.dylib
0x1817b0000 - 0x181802fff libc++.1.dylib arm64  <9ec0d9dcf728349582c26a7da72f0364> /usr/lib/libc++.1.dylib
0x181804000 - 0x181823fff libc++abi.dylib arm64  <aaa40b7f52513cf79c6f814b133556a7> /usr/lib/libc++abi.dylib
0x181824000 - 0x181b90fff libobjc.A.dylib arm64  <939f392022903f2da2858e676e4191ef> /usr/lib/libobjc.A.dylib
0x181b94000 - 0x181b98fff libcache.dylib arm64  <43424f4c7252330ca92c1a865da896e1> /usr/lib/system/libcache.dylib
0x181b9c000 - 0x181ba7fff libcommonCrypto.dylib arm64  <e47d758d207e32c8ab546b59785d2ab8> /usr/lib/system/libcommonCrypto.dylib
0x181ba8000 - 0x181babfff libcompiler_rt.dylib arm64  <b77c451c7ffb356fb3c8368cac95d8f3> /usr/lib/system/libcompiler_rt.dylib
0x181bac000 - 0x181bb3fff libcopyfile.dylib arm64  <1c1678aa36073b42b4406c6dbb06e9f0> /usr/lib/system/libcopyfile.dylib
0x181bb4000 - 0x181c0ffff libcorecrypto.dylib arm64  <b42ff635d1303d45bafe057e5a1e6243> /usr/lib/system/libcorecrypto.dylib
0x181c10000 - 0x181c3efff libdispatch.dylib arm64  <65568801b7463adeb6e20dc25d14d801> /usr/lib/system/libdispatch.dylib
0x181c40000 - 0x181c42fff libdyld.dylib arm64  <e1f151766d6e3755a1a59f62d9a3d9f9> /usr/lib/system/libdyld.dylib
0x181c44000 - 0x181c44fff liblaunch.dylib arm64  <fbb5f1442c3039188da689963efde4d8> /usr/lib/system/liblaunch.dylib
0x181c48000 - 0x181c4cfff libmacho.dylib arm64  <1f37b179ad26307192b3b763ba5f816a> /usr/lib/system/libmacho.dylib
0x181c50000 - 0x181c51fff libremovefile.dylib arm64  <267c6cbaf2193309bd8a191fad38cc79> /usr/lib/system/libremovefile.dylib
0x181c54000 - 0x181c6afff libsystem_asl.dylib arm64  <fffe50d37b1c3f92af6f4a68a6d60068> /usr/lib/system/libsystem_asl.dylib
0x181c6c000 - 0x181c6dfff libsystem_blocks.dylib arm64  <8bbf799e57f93ed1be24cf2ce6c221a3> /usr/lib/system/libsystem_blocks.dylib
0x181c70000 - 0x181ceffff libsystem_c.dylib arm64  <a05dd3ed96153b1bb2da1954a08d4d23> /usr/lib/system/libsystem_c.dylib
0x181cf0000 - 0x181cf3fff libsystem_configuration.dylib arm64  <c5ce1ced5659354ab63871b42d04a7cd> /usr/lib/system/libsystem_configuration.dylib
0x181cf4000 - 0x181cf7fff libsystem_containermanager.dylib arm64  <504648cfa43d3668b9678b74e33697f2> /usr/lib/system/libsystem_containermanager.dylib
0x181cf8000 - 0x181cf9fff libsystem_coreservices.dylib arm64  <8f94549c633036aa99efb0f067031a05> /usr/lib/system/libsystem_coreservices.dylib
0x181cfc000 - 0x181d12fff libsystem_coretls.dylib arm64  <498e424eb31f3d5cb49523cec07f339d> /usr/lib/system/libsystem_coretls.dylib
0x181d14000 - 0x181d1cfff libsystem_dnssd.dylib arm64  <096026a14628397ea96580ce7704f39e> /usr/lib/system/libsystem_dnssd.dylib
0x181d20000 - 0x181d42fff libsystem_info.dylib arm64  <932df5ba705a3b6d948c5dcff196ea6b> /usr/lib/system/libsystem_info.dylib
0x181d44000 - 0x181d65fff libsystem_kernel.dylib arm64  <29df8d8d12d034ffa906bb02f04610f4> /usr/lib/system/libsystem_kernel.dylib
0x181d68000 - 0x181d84fff libsystem_m.dylib arm64  <a97bf91d4a233dbc94bef06734a2eac0> /usr/lib/system/libsystem_m.dylib
0x181d88000 - 0x181da1fff libsystem_malloc.dylib arm64  <a8af95191b283ca9aa7f9cf80c459bf5> /usr/lib/system/libsystem_malloc.dylib
0x181da4000 - 0x181e07fff libsystem_network.dylib arm64  <a8e4200aecc73e56a8458a0e9cb4a6f0> /usr/lib/system/libsystem_network.dylib
0x181e08000 - 0x181e11fff libsystem_networkextension.dylib arm64  <d1a7579c71943631845c2908d69bfbc6> /usr/lib/system/libsystem_networkextension.dylib
0x181e14000 - 0x181e1efff libsystem_notify.dylib arm64  <da8d7d155da230d287a67c46e9b3ccbc> /usr/lib/system/libsystem_notify.dylib
0x181e20000 - 0x181e25fff libsystem_platform.dylib arm64  <4386956061113d7a9e415e543b1243bc> /usr/lib/system/libsystem_platform.dylib
0x181e28000 - 0x181e30fff libsystem_pthread.dylib arm64  <7965d331db2c3bd2b8cbc1bc78babca2> /usr/lib/system/libsystem_pthread.dylib
0x181e34000 - 0x181e36fff libsystem_sandbox.dylib arm64  <f82362117e823f0fbcbf9922ca025f26> /usr/lib/system/libsystem_sandbox.dylib
0x181e38000 - 0x181e48fff libsystem_trace.dylib arm64  <fe1b1e8d0b3633c58d415c6fe8594903> /usr/lib/system/libsystem_trace.dylib
0x181e4c000 - 0x181e51fff libunwind.dylib arm64  <b0067e5ea3ca3b28abc5cb7d50390363> /usr/lib/system/libunwind.dylib
0x181e54000 - 0x181e54fff libvminterpose.dylib arm64  <630bf4c89edf3935b7afe56abdb5caad> /usr/lib/system/libvminterpose.dylib
0x181e58000 - 0x181e7dfff libxpc.dylib arm64  <fc63a0a505523f7fac2c4ea9d9662ba1> /usr/lib/system/libxpc.dylib
0x181e80000 - 0x182085fff libicucore.A.dylib arm64  <9416014bb51e35aebdb2a9f572a2c5f8> /usr/lib/libicucore.A.dylib
0x182088000 - 0x182099fff libz.1.dylib arm64  <8fcb56adfdc13e9593582266b1e4ac18> /usr/lib/libz.1.dylib
0x18209c000 - 0x18241cfff CoreFoundation arm64  <182fd72b7fdf330b8dbf70db93af6b63> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
0x182420000 - 0x182430fff libbsm.0.dylib arm64  <d045301bcacc37d785d754d5c978d979> /usr/lib/libbsm.0.dylib
0x182434000 - 0x182434fff libenergytrace.dylib arm64  <c4ee08bffdfc3ce0990c1fbeb858f9dc> /usr/lib/libenergytrace.dylib
0x182438000 - 0x1824a9fff IOKit arm64  <0864d9c20424332d8979a4f548848c16> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x1824ac000 - 0x1824ccfff libMobileGestalt.dylib arm64  <9cc485a12c323768a6b6e88d973bd44e> /usr/lib/libMobileGestalt.dylib
0x1824d0000 - 0x1825bafff libxml2.2.dylib arm64  <be446a86b5fa3620beeeb3a56a320e7b> /usr/lib/libxml2.2.dylib
0x1825bc000 - 0x18262efff Security arm64  <85e9578e7bc732ca9cced737b84163bb> /System/Library/Frameworks/Security.framework/Security
0x182630000 - 0x182689fff SystemConfiguration arm64  <92717250c7393c44878d137773604d46> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration
0x18268c000 - 0x182774fff libsqlite3.dylib arm64  <c703a175f1c43ed28d81b839ba961183> /usr/lib/libsqlite3.dylib
0x182778000 - 0x182a0cfff CFNetwork arm64  <aaa7ff247b7b3357aa90f6a4dddf0697> /System/Library/Frameworks/CFNetwork.framework/CFNetwork
0x182a10000 - 0x182a1dfff libbz2.1.0.dylib arm64  <8ebfd413e3fd3889b546857fcf554b6f> /usr/lib/libbz2.1.0.dylib
0x182a20000 - 0x182a39fff liblzma.5.dylib arm64  <68bb861dc8bd3547b5ace073ed504b14> /usr/lib/liblzma.5.dylib
0x182a3c000 - 0x182a56fff libCRFSuite.dylib arm64  <1a2c1f709f213faf81fd2223b719c899> /usr/lib/libCRFSuite.dylib
0x182a58000 - 0x182a82fff libarchive.2.dylib arm64  <bf6ae1a9c965363ba9f10ff0ca32ee7c> /usr/lib/libarchive.2.dylib
0x182a84000 - 0x182aa2fff libextension.dylib arm64  <8a88fb35fee03a36ae138e676b9a0e9f> /usr/lib/libextension.dylib
0x182aa4000 - 0x182aa5fff liblangid.dylib arm64  <cdb184e30c3c303694a96b3150520673> /usr/lib/liblangid.dylib
0x182aa8000 - 0x182d16fff Foundation arm64  <7cf4edf781cb30438b812ded8716cd95> /System/Library/Frameworks/Foundation.framework/Foundation
0x182d18000 - 0x182dc3fff libBLAS.dylib arm64  <097b7e769a3439ad8fdb3abb0edc9daf> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib
0x182dc4000 - 0x183129fff libLAPACK.dylib arm64  <566419f65c9338599694a04da8e20fbf> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dylib
0x18312c000 - 0x183391fff vImage arm64  <789df1b35e183397803583a25feff3c7> /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/vImage
0x183394000 - 0x1833b6fff libvMisc.dylib arm64  <3c655ae6f62035bbba069387c490efbb> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvMisc.dylib
0x1833b8000 - 0x1833cbfff libLinearAlgebra.dylib arm64  <94d099e954d638e39ef1773639ef61af> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLinearAlgebra.dylib
0x1833cc000 - 0x1833dbfff libSparseBLAS.dylib arm64  <80ca4fb770613c76b2449daf05c6dc25> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libSparseBLAS.dylib
0x1833dc000 - 0x183448fff libvDSP.dylib arm64  <f4e8d68f55af3511a28a616737dcc354> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib
0x18344c000 - 0x18344cfff vecLib arm64  <546ad53c3a4a36709fdf6e50b76b2ec9> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib
0x183450000 - 0x183450fff Accelerate arm64  <a1953e95570a3de6a923a812ffbd90ad> /System/Library/Frameworks/Accelerate.framework/Accelerate
0x183454000 - 0x18397ffff CoreGraphics arm64  <63001c4acb4135428df4b62f2f698e0f> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
0x183980000 - 0x183994fff GraphicsServices arm64  <d8509ae0233539218bf97db29a7d31c2> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
0x183998000 - 0x1839e0fff AppSupport arm64  <1469530c1aa03d2486d678bed8482764> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport
0x1839e4000 - 0x183ab7fff MobileCoreServices arm64  <2096d560a53b3fd28ff0a7f46e3ba060> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices
0x183ab8000 - 0x183b07fff BaseBoard arm64  <b6f2014b564430538f5252776acfa530> /System/Library/PrivateFrameworks/BaseBoard.framework/BaseBoard
0x183b08000 - 0x183b13fff AssertionServices arm64  <48c978bd14553765b4a7f1cee1b14c83> /System/Library/PrivateFrameworks/AssertionServices.framework/AssertionServices
0x183b14000 - 0x183b38fff BackBoardServices arm64  <207836d8c1833eeab468f622f4d0f366> /System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices
0x183b3c000 - 0x183b3ffff MobileSystemServices arm64  <6d85ae92680935bbb51db96c7a021118> /System/Library/PrivateFrameworks/MobileSystemServices.framework/MobileSystemServices
0x183b40000 - 0x183b75fff FrontBoardServices arm64  <b1a46eb324d23a51813b565ae7f04b88> /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices
0x183b78000 - 0x183b82fff UserNotificationServices arm64  <74d3e76dff833048b39ae8e0ceb44140> /System/Library/PrivateFrameworks/UserNotificationServices.framework/UserNotificationServices
0x183b84000 - 0x183bb0fff SpringBoardServices arm64  <6535787e172939d0b8abfe852a185b3d> /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices
0x183bb4000 - 0x183bc5fff MobileKeyBag arm64  <169edc8949693d349807056d1e316f2a> /System/Library/PrivateFrameworks/MobileKeyBag.framework/MobileKeyBag
0x183bc8000 - 0x183bcefff IOSurface arm64  <d62fd4ed209e32f98d5dbc34f9484ef4> /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface
0x183bd0000 - 0x183bdcfff liblockdown.dylib arm64  <36e1e9187c193410a5f7cf46e3dc7afe> /usr/lib/liblockdown.dylib
0x183be0000 - 0x183bf2fff CrashReporterSupport arm64  <8e45addb6a1f379d98c9164764948fc2> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport
0x183bf4000 - 0x183bf6fff IOSurfaceAccelerator arm64  <65789d64b5f937e987c6f27125a38100> /System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/IOSurfaceAccelerator
0x183bf8000 - 0x183c39fff AppleJPEG arm64  <24fc6e2cd59a318e9f59da6383bfd90d> /System/Library/PrivateFrameworks/AppleJPEG.framework/AppleJPEG
0x183c3c000 - 0x183f5efff ImageIO arm64  <8b10562bfdd23addb249367deb92aefd> /System/Library/Frameworks/ImageIO.framework/ImageIO
0x183f60000 - 0x183f64fff TCC arm64  <09fcccda721f35c3936e68acf3d216a4> /System/Library/PrivateFrameworks/TCC.framework/TCC
0x183f68000 - 0x183f6dfff AggregateDictionary arm64  <51bcd4b61f3739eb85fdcc4a037e3696> /System/Library/PrivateFrameworks/AggregateDictionary.framework/AggregateDictionary
0x183f70000 - 0x183f7dfff PowerLog arm64  <a50ba8508d733823be55425db249606c> /System/Library/PrivateFrameworks/PowerLog.framework/PowerLog
0x183f80000 - 0x183fe2fff libTelephonyUtilDynamic.dylib arm64  <59e0bc898f27370d8e4961910f891b3b> /usr/lib/libTelephonyUtilDynamic.dylib
0x183fe4000 - 0x183ff6fff CommonUtilities arm64  <194ea4f46bf537029d10e4ce8b28ca5f> /System/Library/PrivateFrameworks/CommonUtilities.framework/CommonUtilities
0x183ff8000 - 0x18400ffff libcompression.dylib arm64  <ac77f3a3cad832a7b748c30e013bbc0b> /usr/lib/libcompression.dylib
0x184010000 - 0x18425afff CoreData arm64  <aa00d2e704e333e199f8e34b3c661b12> /System/Library/Frameworks/CoreData.framework/CoreData
0x18425c000 - 0x184260fff libCoreVMClient.dylib arm64  <69b5ba7317d532b898c3ffb5574bb883> /System/Library/Frameworks/OpenGLES.framework/libCoreVMClient.dylib
0x184264000 - 0x184268fff IOAccelerator arm64  <d92ad93b196b38a6b054b1cc3fbd1f1a> /System/Library/PrivateFrameworks/IOAccelerator.framework/IOAccelerator
0x18426c000 - 0x18426dfff libCVMSPluginSupport.dylib arm64  <ed32d5e2c1e630b18097aa7890c92171> /System/Library/Frameworks/OpenGLES.framework/libCVMSPluginSupport.dylib
0x184270000 - 0x184273fff libCoreFSCache.dylib arm64  <abe2067778503127a31c42352d2e43ec> /System/Library/Frameworks/OpenGLES.framework/libCoreFSCache.dylib
0x184274000 - 0x1842bafff libGLImage.dylib arm64  <e67acd0811bf318dadb48a49b97bee7b> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib
0x1842bc000 - 0x1842c6fff libGFXShared.dylib arm64  <fdc295986ea03203bbfc904ffc4cca6b> /System/Library/Frameworks/OpenGLES.framework/libGFXShared.dylib
0x1842c8000 - 0x1842cffff IOMobileFramebuffer arm64  <f82bfbe1dc083eabb7ff1a8d9980fe47> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer
0x1842d0000 - 0x1842d0fff libmetal_timestamp.dylib arm64  <bdc8f33a1b453c8f827726c7f46640dc> /System/Library/PrivateFrameworks/GPUCompiler.framework/libmetal_timestamp.dylib
0x1842d4000 - 0x18431afff Metal arm64  <95ce1f8a4d483d11aa49533e2ae2a568> /System/Library/Frameworks/Metal.framework/Metal
0x18431c000 - 0x184326fff OpenGLES arm64  <7c7a0c5191f53f518e994638139ca1df> /System/Library/Frameworks/OpenGLES.framework/OpenGLES
0x184328000 - 0x18434afff CoreVideo arm64  <31ef8b764af3301ea5e7267fcae838cb> /System/Library/Frameworks/CoreVideo.framework/CoreVideo
0x18434c000 - 0x18434efff OAuth arm64  <0f1ae5abcad13b4b948193a2405c61b4> /System/Library/PrivateFrameworks/OAuth.framework/OAuth
0x184358000 - 0x18438ffff Accounts arm64  <1cf893c2c3c03137acb576d5a7fc2cee> /System/Library/Frameworks/Accounts.framework/Accounts
0x184390000 - 0x184482fff libiconv.2.dylib arm64  <1c378c57054a32a6b2eed4e3cbb3a2b7> /usr/lib/libiconv.2.dylib
0x184484000 - 0x18453dfff CoreAudio arm64  <25687ef4b3c4389f828006882b280db4> /System/Library/Frameworks/CoreAudio.framework/CoreAudio
0x184540000 - 0x184543fff UserFS arm64  <693602c29c64370aab1a77544ddc7e5a> /System/Library/PrivateFrameworks/UserFS.framework/UserFS
0x184544000 - 0x184632fff CoreMedia arm64  <51c728b4974936448426dccd30e3fc5a> /System/Library/Frameworks/CoreMedia.framework/CoreMedia
0x184634000 - 0x18463cfff libcupolicy.dylib arm64  <056df1f0f2893ad08b9c7fbed9271c6f> /usr/lib/libcupolicy.dylib
0x184640000 - 0x1846b2fff CoreTelephony arm64  <d48572ad7be13a99b7a783c12c6657f4> /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony
0x1846b4000 - 0x184794fff libFontParser.dylib arm64  <7ab9c32919d731969bc2a75b3f03aa17> /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib
0x184798000 - 0x18481afff VideoToolbox arm64  <0902a89a960935c08b3715cadedc2a50> /System/Library/Frameworks/VideoToolbox.framework/VideoToolbox
0x18481c000 - 0x18481cfff FontServices arm64  <39a3005cf101328f94f3a412cfa04fae> /System/Library/PrivateFrameworks/FontServices.framework/FontServices
0x184820000 - 0x184943fff CoreText arm64  <5d80f981ab953f73b08881908a610117> /System/Library/Frameworks/CoreText.framework/CoreText
0x184944000 - 0x184955fff ProtocolBuffer arm64  <4d1a9d53f37b3b448cbc62ede839532f> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer
0x184958000 - 0x18497ffff PersistentConnection arm64  <57092c3dc97437f9a14b61cae9e60e88> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection
0x184980000 - 0x184985fff DataMigration arm64  <ba39fefdd4d530108117d3cce9c24d80> /System/Library/PrivateFrameworks/DataMigration.framework/DataMigration
0x184988000 - 0x184ca1fff AudioToolbox arm64  <3acc644e69ff3aedae6e3af12f13c58c> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox
0x184ca4000 - 0x184e52fff QuartzCore arm64  <a736a01bca6b389485fd370575885f3a> /System/Library/Frameworks/QuartzCore.framework/QuartzCore
0x184e54000 - 0x184e5afff Netrb arm64  <e3abc95050e93feb9999aad619858dd8> /System/Library/PrivateFrameworks/Netrb.framework/Netrb
0x184e5c000 - 0x184e6dfff libcmph.dylib arm64  <f9b0e4b1c2b83f848b351670183dcf24> /usr/lib/libcmph.dylib
0x184e70000 - 0x184e8dfff libmis.dylib arm64  <19a3fb5270713311900b8723341c9649> /usr/lib/libmis.dylib
0x184e90000 - 0x184f10fff LanguageModeling arm64  <25b1d85465f531118bbcd9b3afcb4151> /System/Library/PrivateFrameworks/LanguageModeling.framework/LanguageModeling
0x184f14000 - 0x184ff1fff ManagedConfiguration arm64  <6829ea88182532c69d9eb79c0d5d8ab8> /System/Library/PrivateFrameworks/ManagedConfiguration.framework/ManagedConfiguration
0x184ff4000 - 0x18500bfff libmarisa.dylib arm64  <72aff9de7b7a3d0f8d24b2f2e33599b1> /usr/lib/libmarisa.dylib
0x18500c000 - 0x1850d3fff ProofReader arm64  <e62d51dcf4a134a2981acc214a79ee83> /System/Library/PrivateFrameworks/ProofReader.framework/ProofReader
0x1850d4000 - 0x1850dafff MediaAccessibility arm64  <dbc84b51887d3c239f748993bfe87be2> /System/Library/Frameworks/MediaAccessibility.framework/MediaAccessibility
0x1850dc000 - 0x1850ebfff MobileAsset arm64  <4f36adf36909306e8cdda53f431aec5e> /System/Library/PrivateFrameworks/MobileAsset.framework/MobileAsset
0x1850ec000 - 0x18514dfff ColorSync arm64  <7a7f1de762e734a1b0185bbcf4c5805d> /System/Library/PrivateFrameworks/ColorSync.framework/ColorSync
0x185150000 - 0x18519bfff MetalPerformanceShaders arm64  <7530c46bdba43048b3780b308d1e0349> /System/Library/Frameworks/MetalPerformanceShaders.framework/MetalPerformanceShaders
0x18519c000 - 0x1855c8fff FaceCore arm64  <9fe0da65d44f3e58872fa11c1d79a801> /System/Library/PrivateFrameworks/FaceCore.framework/FaceCore
0x1855cc000 - 0x185647fff Quagga arm64  <872de61a4b163a57b1e5df76124b9013> /System/Library/PrivateFrameworks/Quagga.framework/Quagga
0x185648000 - 0x1857f2fff CoreImage arm64  <df4ffff30c383def8d08b5b28b6df84d> /System/Library/Frameworks/CoreImage.framework/CoreImage
0x1857f4000 - 0x185826fff TextInput arm64  <475a479564123e0aafd3f578a8ad861a> /System/Library/PrivateFrameworks/TextInput.framework/TextInput
0x185828000 - 0x185835fff libAccessibility.dylib arm64  <767e55a612343e498e13731d796f2f9f> /usr/lib/libAccessibility.dylib
0x185844000 - 0x185e25fff JavaScriptCore arm64  <d094d276d4e5331c9a34bf2f88c27894> /System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore
0x185e28000 - 0x186018fff StoreServices arm64  <042efaf81deb3c86bfbe3caf43049128> /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices
0x18601c000 - 0x186ff5fff WebCore arm64  <8aaebe0c772a318e843a74ef2df4e312> /System/Library/PrivateFrameworks/WebCore.framework/WebCore
0x186ff8000 - 0x187021fff libxslt.1.dylib arm64  <f975d2eb5ac931289181480098ed5630> /usr/lib/libxslt.1.dylib
0x187024000 - 0x1870fffff WebKitLegacy arm64  <d2be4b22dfa0373e80b137334598dd13> /System/Library/PrivateFrameworks/WebKitLegacy.framework/WebKitLegacy
0x187100000 - 0x1871b8fff CoreUI arm64  <1fd04759197f312ab80538caca1dd94e> /System/Library/PrivateFrameworks/CoreUI.framework/CoreUI
0x1871bc000 - 0x1871e1fff DictionaryServices arm64  <03b326076ce4388099fb7442bcbcbd3b> /System/Library/PrivateFrameworks/DictionaryServices.framework/DictionaryServices
0x1871e4000 - 0x1871e4fff HangTracer arm64  <8280ac9665623548a0428f192fb2342b> /System/Library/PrivateFrameworks/HangTracer.framework/HangTracer
0x1871e8000 - 0x187236fff PhysicsKit arm64  <d5863be3b3d3375997ce983229cfa34a> /System/Library/PrivateFrameworks/PhysicsKit.framework/PhysicsKit
0x187238000 - 0x18730efff UIFoundation arm64  <a012ee13e0bf395794c95ce1b5670728> /System/Library/PrivateFrameworks/UIFoundation.framework/UIFoundation
0x187310000 - 0x187f3afff UIKit arm64  <bc9398e03d593b3fb4b66794602f9602> /System/Library/Frameworks/UIKit.framework/UIKit
0x187f3c000 - 0x187f5dfff CoreBluetooth arm64  <6d465f745c9f3d40994aa5c5dfb8bd47> /System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth
0x187f60000 - 0x187f85fff DataAccessExpress arm64  <e410b3818af13c29bf77e432571282d1> /System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress
0x187f88000 - 0x187fa1fff NetworkStatistics arm64  <5e417d9061873b19b049ad6121fa503f> /System/Library/PrivateFrameworks/NetworkStatistics.framework/NetworkStatistics
0x187fa4000 - 0x18801ffff AddressBook arm64  <a607c38de2223ca7ad304af82f136914> /System/Library/Frameworks/AddressBook.framework/AddressBook
0x188020000 - 0x18812dfff CoreMotion arm64  <46cfcdd3850a33f0b7d60e3ba802739c> /System/Library/Frameworks/CoreMotion.framework/CoreMotion
0x188130000 - 0x18813ffff CacheDelete arm64  <0cd7d27acecb36cd896af0ecbce96841> /System/Library/PrivateFrameworks/CacheDelete.framework/CacheDelete
0x188140000 - 0x18814dfff CoreAUC arm64  <49032794e9663a38870ae3825f822ff9> /System/Library/PrivateFrameworks/CoreAUC.framework/CoreAUC
0x188150000 - 0x18856dfff MediaToolbox arm64  <16c9b8baa166301e92addb64c340bcce> /System/Library/Frameworks/MediaToolbox.framework/MediaToolbox
0x188570000 - 0x1886f1fff Celestial arm64  <be72eb1ecb6731a7ae02da26a895f81d> /System/Library/PrivateFrameworks/Celestial.framework/Celestial
0x1886f4000 - 0x188700fff IntlPreferences arm64  <26be9c8bb13f380cb1c3b6b817802f17> /System/Library/PrivateFrameworks/IntlPreferences.framework/IntlPreferences
0x188704000 - 0x188706fff CoreDuetDebugLogging arm64  <b5fdb39dea6b3fc8babd0bdc054e6b69> /System/Library/PrivateFrameworks/CoreDuetDebugLogging.framework/CoreDuetDebugLogging
0x188708000 - 0x18871dfff CoreDuetDaemonProtocol arm64  <12eeb031ac203a6bb7794b5bab52671a> /System/Library/PrivateFrameworks/CoreDuetDaemonProtocol.framework/CoreDuetDaemonProtocol
0x188720000 - 0x1887d3fff CoreDuet arm64  <227bd93065bc38dbafff0c3774d180ff> /System/Library/PrivateFrameworks/CoreDuet.framework/CoreDuet
0x1887d4000 - 0x1887d5fff BTLEAudioController arm64  <40888f1dde2a3f7bb1b6047b871b7872> /System/Library/PrivateFrameworks/BTLEAudioController.framework/BTLEAudioController
0x1887d8000 - 0x188850fff libAVFAudio.dylib arm64  <6085404284a933f29311bda931a38e43> /System/Library/Frameworks/AVFoundation.framework/libAVFAudio.dylib
0x188854000 - 0x1889d4fff AVFoundation arm64  <6dddb40fbe9c39dc82bae11fb54fafaa> /System/Library/Frameworks/AVFoundation.framework/AVFoundation
0x1889d8000 - 0x188a09fff libtidy.A.dylib arm64  <62273117ae1833b6b0fbc5374ac00955> /usr/lib/libtidy.A.dylib
0x188a0c000 - 0x188a7dfff IMFoundation arm64  <a2971938c9fd3fb79d9939b67d46f99e> /System/Library/PrivateFrameworks/IMFoundation.framework/IMFoundation
0x188a80000 - 0x188f0bfff GeoServices arm64  <a97b65948adb33f5952ab3380c08fae6> /System/Library/PrivateFrameworks/GeoServices.framework/GeoServices
0x188f0c000 - 0x188f0dfff DiagnosticLogCollection arm64  <23c742c1baa03399bd005d2330fe2272> /System/Library/PrivateFrameworks/DiagnosticLogCollection.framework/DiagnosticLogCollection
0x188f10000 - 0x188f11fff Marco arm64  <78085fa90dd73982acd80b9b4f074efa> /System/Library/PrivateFrameworks/Marco.framework/Marco
0x188f14000 - 0x188f7dfff CoreLocation arm64  <a9132384c0643bb496aeec5a8c84b4af> /System/Library/Frameworks/CoreLocation.framework/CoreLocation
0x188f80000 - 0x188f85fff ConstantClasses arm64  <e397ebe2ca23360688f15acf8b0a3e6c> /System/Library/PrivateFrameworks/ConstantClasses.framework/ConstantClasses
0x188f88000 - 0x188f93fff libChineseTokenizer.dylib arm64  <12cb857d186b341f9ad1c8ee75095ee5> /usr/lib/libChineseTokenizer.dylib
0x188f94000 - 0x1891f3fff libmecabra.dylib arm64  <fd1d427c7edb3273a4b69ab882307567> /usr/lib/libmecabra.dylib
0x1891f4000 - 0x189227fff IDSFoundation arm64  <cc84c7f670f5388196c6925444d2a947> /System/Library/PrivateFrameworks/IDSFoundation.framework/IDSFoundation
0x189228000 - 0x1892a4fff IDS arm64  <19e33dc7a1543276aeb04256f063e7cb> /System/Library/PrivateFrameworks/IDS.framework/IDS
0x1892a8000 - 0x1892c3fff MediaServices arm64  <f17b85f7f5033fd4b5aaf25dd06a4330> /System/Library/PrivateFrameworks/MediaServices.framework/MediaServices
0x1892c4000 - 0x1892e8fff AuthKit arm64  <d5bdd3f8cd393986a31d7977eb1d655a> /System/Library/PrivateFrameworks/AuthKit.framework/AuthKit
0x1892ec000 - 0x1892f1fff libheimdal-asn1.dylib arm64  <2cdbd8d18d663aafb7fbb18c2235f1c6> /usr/lib/libheimdal-asn1.dylib
0x1892f4000 - 0x189383fff MediaRemote arm64  <92629accc5893914aa63fc9403a57381> /System/Library/PrivateFrameworks/MediaRemote.framework/MediaRemote
0x189384000 - 0x1894b5fff MobileSpotlightIndex arm64  <db752ecb81bc378789058b3e985f9c8f> /System/Library/PrivateFrameworks/MobileSpotlightIndex.framework/MobileSpotlightIndex
0x1894b8000 - 0x1894d3fff PlugInKit arm64  <84c62dcf044f3ddbbb66629ff757016d> /System/Library/PrivateFrameworks/PlugInKit.framework/PlugInKit
0x1894d4000 - 0x1894fcfff ProtectedCloudStorage arm64  <c035a3cf43773b248cd946368b8d68f6> /System/Library/PrivateFrameworks/ProtectedCloudStorage.framework/ProtectedCloudStorage
0x189534000 - 0x18955cfff ContactsFoundation arm64  <5b56325e99d43df0875893f3629cf775> /System/Library/PrivateFrameworks/ContactsFoundation.framework/ContactsFoundation
0x189560000 - 0x189564fff ParsecSubscriptionServiceSupport arm64  <c840948751e43512a04638cf49270da6> /System/Library/PrivateFrameworks/ParsecSubscriptionServiceSupport.framework/ParsecSubscriptionServiceSupport
0x189568000 - 0x1895f0fff Contacts arm64  <ac886a1dee353472b42d6236c7472564> /System/Library/Frameworks/Contacts.framework/Contacts
0x1895f4000 - 0x18962ffff CoreSpotlight arm64  <4fc7c966e5a03e14bc6d2bd4bb757934> /System/Library/Frameworks/CoreSpotlight.framework/CoreSpotlight
0x189630000 - 0x18964ffff vCard arm64  <8139df6f04d830f39ef345d53ffb6466> /System/Library/PrivateFrameworks/vCard.framework/vCard
0x189918000 - 0x18991cfff CommunicationsFilter arm64  <529acb9e5bed3635a3d63112484bf115> /System/Library/PrivateFrameworks/CommunicationsFilter.framework/CommunicationsFilter
0x189920000 - 0x189944fff ChunkingLibrary arm64  <5ad8b7937ec334709934a8ad10ab8012> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/ChunkingLibrary
0x189948000 - 0x189952fff CaptiveNetwork arm64  <9c19a9fb40b930098b60496851683f6d> /System/Library/PrivateFrameworks/CaptiveNetwork.framework/CaptiveNetwork
0x189954000 - 0x18997afff EAP8021X arm64  <f3f3fc3867983647b6898adb483c29db> /System/Library/PrivateFrameworks/EAP8021X.framework/EAP8021X
0x18997c000 - 0x189981fff AssetCacheServices arm64  <048dcff988ef32a38008bf337d776629> /System/Library/PrivateFrameworks/AssetCacheServices.framework/AssetCacheServices
0x189984000 - 0x1899f9fff MMCS arm64  <5aefee3454823fc2800803ddd4db1b84> /System/Library/PrivateFrameworks/MMCS.framework/MMCS
0x1899fc000 - 0x189a0efff MobileWiFi arm64  <eac481c851b43d749cd73802219ca47d> /System/Library/PrivateFrameworks/MobileWiFi.framework/MobileWiFi
0x189af0000 - 0x189b24fff FTServices arm64  <8b0816b3745a3e6db444570ed04527b3> /System/Library/PrivateFrameworks/FTServices.framework/FTServices
0x189b84000 - 0x189b8dfff BaseBoardUI arm64  <3786d8e147593bd5b5a93165e25c29e6> /System/Library/PrivateFrameworks/BaseBoardUI.framework/BaseBoardUI
0x189b90000 - 0x189ba1fff UserManagement arm64  <1d49514ccc853a8f8ad3fdec01ad4766> /System/Library/PrivateFrameworks/UserManagement.framework/UserManagement
0x189ba4000 - 0x189c6ffff CorePDF arm64  <5a2aee277ba63cf4a29b20292a94e614> /System/Library/PrivateFrameworks/CorePDF.framework/CorePDF
0x189d04000 - 0x189d0afff IncomingCallFilter arm64  <dc7da914d35b33aa8267e5b5ca4acaba> /System/Library/PrivateFrameworks/IncomingCallFilter.framework/IncomingCallFilter
0x189f44000 - 0x18a22bfff WebKit arm64  <03eb42abd8ca36d6ac11f10af904232b> /System/Library/Frameworks/WebKit.framework/WebKit
0x18a264000 - 0x18a366fff ContactsUI arm64  <aee7ce51982f3b35b6630923fb6a2bc0> /System/Library/Frameworks/ContactsUI.framework/ContactsUI
0x18a368000 - 0x18a749fff ModelIO arm64  <9ce2a0abac573badb6bac9cf2c6bfdbb> /System/Library/Frameworks/ModelIO.framework/ModelIO
0x18a74c000 - 0x18a752fff DAAPKit arm64  <87e48b7832d23d5181cae92b86ba8db7> /System/Library/PrivateFrameworks/DAAPKit.framework/DAAPKit
0x18a7d4000 - 0x18a837fff TelephonyUtilities arm64  <62a183b4d4143f0290910a9f0d2a3009> /System/Library/PrivateFrameworks/TelephonyUtilities.framework/TelephonyUtilities
0x18a838000 - 0x18a866fff GLKit arm64  <7b348b1148193b90878c60bc46d6abe6> /System/Library/Frameworks/GLKit.framework/GLKit
0x18a868000 - 0x18aab8fff MusicLibrary arm64  <584c44d195fc3a4aa47977b7ed961b31> /System/Library/PrivateFrameworks/MusicLibrary.framework/MusicLibrary
0x18ab00000 - 0x18abd6fff AddressBookUI arm64  <0d022f7b6eac3e4fa32bd247ddedebb8> /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI
0x18abd8000 - 0x18ac91fff CloudKit arm64  <5a0898b0056f3aa8bb9a6f5e84185c9a> /System/Library/Frameworks/CloudKit.framework/CloudKit
0x18ac94000 - 0x18acd9fff iTunesStore arm64  <c60dd786f02f3cc99670571df7677603> /System/Library/PrivateFrameworks/iTunesStore.framework/iTunesStore
0x18ae40000 - 0x18aeddfff HomeSharing arm64  <3a275dea8c3d3ec8af36f220e62b3654> /System/Library/PrivateFrameworks/HomeSharing.framework/HomeSharing
0x18b06c000 - 0x18b2e5fff MediaPlayer arm64  <5e383511a03a311a88c102c34aaa16a9> /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer
0x18b3d4000 - 0x18b3dbfff CoreTime arm64  <d66bdecea4cc3a87aef72a29bc5eb342> /System/Library/PrivateFrameworks/CoreTime.framework/CoreTime
0x18b738000 - 0x18b76efff PrototypeTools arm64  <6cfae20cd6b33580b866c61118851fd9> /System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools
0x18b804000 - 0x18b883fff BulletinBoard arm64  <eaee3dc941b93fdabd7f569111acfb09> /System/Library/PrivateFrameworks/BulletinBoard.framework/BulletinBoard
0x18b884000 - 0x18b884fff MobileObliteration arm64  <1925bbd546ea33f2b67b3b9f07a174fe> /System/Library/PrivateFrameworks/MobileObliteration.framework/MobileObliteration
0x18b8a4000 - 0x18b901fff SpringBoardFoundation arm64  <4dfdb2efe9f43c7c9c10a2243eeb0b34> /System/Library/PrivateFrameworks/SpringBoardFoundation.framework/SpringBoardFoundation
0x18bad8000 - 0x18bb1dfff TelephonyUI arm64  <7575a0f23e913adeb005d26c372c6e57> /System/Library/PrivateFrameworks/TelephonyUI.framework/TelephonyUI
0x18bb20000 - 0x18bb40fff ToneLibrary arm64  <bb55c70582a73e92bce5c031a95c68bf> /System/Library/PrivateFrameworks/ToneLibrary.framework/ToneLibrary
0x18bbbc000 - 0x18bbc7fff NotificationsUI arm64  <ba607cd69ce3373a89f71bb27a0f4873> /System/Library/PrivateFrameworks/NotificationsUI.framework/NotificationsUI
0x18bbc8000 - 0x18bbcdfff ProgressUI arm64  <6eb91cfd91b8315f9287a9ac931b0689> /System/Library/PrivateFrameworks/ProgressUI.framework/ProgressUI
0x18be54000 - 0x18be88fff SpringBoardUIServices arm64  <e412762440ed3cd8b889c42cb6d30b70> /System/Library/PrivateFrameworks/SpringBoardUIServices.framework/SpringBoardUIServices
0x18c028000 - 0x18c040fff GenerationalStorage arm64  <4480109728263983957dcc8a897cef54> /System/Library/PrivateFrameworks/GenerationalStorage.framework/GenerationalStorage
0x18c114000 - 0x18c12ffff SpringBoardUI arm64  <9937ac5f485b3ceeaa30d37e75075373> /System/Library/PrivateFrameworks/SpringBoardUI.framework/SpringBoardUI
0x18c130000 - 0x18c78efff VectorKit arm64  <96526ae78f843c1f81e408a35625a541> /System/Library/PrivateFrameworks/VectorKit.framework/VectorKit
0x18c790000 - 0x18c921fff MapKit arm64  <80f226c48acb34768d6c6bb187818a81> /System/Library/Frameworks/MapKit.framework/MapKit
0x18c944000 - 0x18c952fff QuickLookThumbnailing arm64  <78f45a609e163e91bde4d4e762d2b58d> /System/Library/PrivateFrameworks/QuickLookThumbnailing.framework/QuickLookThumbnailing
0x18ca1c000 - 0x18ca70fff QuickLook arm64  <1ba1acc9f25132fb9bb303f3a4d5558e> /System/Library/Frameworks/QuickLook.framework/QuickLook
0x18cf04000 - 0x18cf04fff AdSupport arm64  <b013003eed893567bf542ff0f200b885> /System/Library/Frameworks/AdSupport.framework/AdSupport
0x18d570000 - 0x18d598fff Pegasus arm64  <7b0e31b4d0ad348db506838df0ad13d5> /System/Library/PrivateFrameworks/Pegasus.framework/Pegasus
0x18d654000 - 0x18d69dfff AVKit arm64  <7ef0e8c16cab36979a80028c7e3fe283> /System/Library/Frameworks/AVKit.framework/AVKit
0x18d6a0000 - 0x18d6a6fff AITTarget arm64  <5d91357362c43244979438b4de2ae52f> /System/Library/PrivateFrameworks/AITTarget.framework/AITTarget
0x18eafc000 - 0x18eb02fff iAdServices arm64  <714e2abbd560361db3c81e4123d753a6> /System/Library/PrivateFrameworks/iAdServices.framework/iAdServices
0x18ec74000 - 0x18ecadfff iAd arm64  <add49d6bfe703de886c03be777aba2ca> /System/Library/Frameworks/iAd.framework/iAd
0x190bb0000 - 0x190e4ffff SceneKit arm64  <821af052e514372ea9de22e18fa5d37d> /System/Library/Frameworks/SceneKit.framework/SceneKit
0x19102c000 - 0x191085fff CoreBrightness arm64  <9e48b70667dc349a8310b5171dc35092> /System/Library/PrivateFrameworks/CoreBrightness.framework/CoreBrightness
0x192410000 - 0x192460fff CloudDocs arm64  <9b8136b31f463ff1a4f49c1b8e62b5b1> /System/Library/PrivateFrameworks/CloudDocs.framework/CloudDocs
0x193e0c000 - 0x193e1efff libCGInterfaces.dylib arm64  <c4505720159f37a7ac9aa8fc453a5cdb> /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/Libraries/libCGInterfaces.dylib
0x195abc000 - 0x195ae1fff CoreServicesInternal arm64  <ffacf4a14f233cd68f6e6e8d7e61105f> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/CoreServicesInternal
0x195e04000 - 0x195e0ffff libGSFontCache.dylib arm64  <af7bcf4952573e29a1a9ab26dc13b2cf> /System/Library/PrivateFrameworks/FontServices.framework/libGSFontCache.dylib
0x1992b8000 - 0x1992c1fff libMobileGestaltExtensions.dylib arm64  <147f0315eaee3ad687500204871b7680> /usr/lib/libMobileGestaltExtensions.dylib

how to subscribe to a channel

i was able to register successfully
now i wan to subscribe to a specific channel to be able to send a message to those in the channel

Question about how to create this plugin

Hello, this plugin is not cocoapod plugin?

  1. How to create the PushPlugin.framework used in nativescript ? I mean the relation between the PushPlugin IOS xcode source and the PushPlugin.framework folder used in nativescript ?
  2. Is it better to create plugin in this fashion or use cocoapod? Maybe this is better since it directly talk to nativescript ?

Thanks

Cannot find module error

Hello,

I recently upgraded to NS 2.2 from 2.0 and now I am having trouble with loading the plugin in Android. Everything works fine in iOS, but in android I am getting the following error:

Error: Cannot find module "nativescript-push-notifications"

The error is in everlive.all.min.js line 339. I am using Everilve SDK version 1.8.1

Here is what my package.json look like:

{
"nativescript": {
"id": "com.macfarlanegp.awlmobilenative"
},
"dependencies": {
"moment": "2.14.1",
"moment-timezone": "0.5.5",
"nativescript-background-http": "2.4.0",
"nativescript-email": "1.3.3",
"nativescript-intl": "0.0.4",
"nativescript-iqkeyboardmanager": "1.0.0",
"nativescript-loading-indicator": "2.0.1",
"nativescript-maskedinput": "0.0.3",
"nativescript-pdf-view": "1.2.0",
"nativescript-phone": "1.2.3",
"nativescript-social-share": "1.3.1",
"nativescript-telerik-ui": "1.5.0",
"nativescript-touchid": "2.1.0",
"tns-core-modules": "2.4.0",
"nativescript-push-notifications": "0.0.15"
},
"devDependencies": {}
}

Any help is greatly appreciated.
Thank you.

is there click_action to open certain page from notification

If app is open, I don't get notification but JSON data is received in app.
If app is closed, I receive notification but JSON data is not received in app.

GCM has click_action. How can I call certain action when notification is tapped, right now it opens main home page only.

Manifest merger failed

Android side.

If the main manifest have a versionCode and/or versionName different that the push manifest the build fails.

> Manifest merger failed with multiple errors, see logs
Command /Users/antoniocueva/SmarpShare/platforms/android/gradlew failed with exit code 1

And you have to manually change the numbers to match...Is there something we can do about this? what is the reason for the push manifest have pre set this values?

custom push notification design using the remote views

I want to change the push notification style to display, when im checking that android has the concept of Remote views to show the xml file as the display in push notification. I think it is very nice and improvement in the plugin to take the html template file and show as remote views.

required documentation links

  1. https://developer.android.com/reference/android/widget/RemoteViews.html
  2. https://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomNotification

TypeError: Cannot read property 'pushplugin' of undefined

Hello,

I installed this plugin via this command:
tns plugin add nativescript-push-notifications

I added the require statement to the top of my login.js
var pushPlugin = require("nativescript-push-notifications");

When I start the app I get this error:

`java.lang.RuntimeException: Unable to start activity ComponentInfo{org.nativescript.myapp/com.tns.NativeScriptActivity}: com.tns.NativeScriptException:
Calling js method onCreate failed

Error calling module function

Error calling module function

TypeError: Cannot read property 'pushplugin' of undefined
File: "/data/data/org.nativescript.myapp/files/app/tns_modules/nativescript-push-notifications/push-plugin.js, line: 8, column: 19

StackTrace:
Frame: function:'', file:'/data/data/org.nativescript.myapp/files/app/tns_modules/nativescript-push-notifications/push-plugin.js', line: 8, column: 20
Frame: function:'', file:'/data/data/org.nativescript.myapp/files/app/tns_modules/nativescript-push-notifications/push-plugin.js', line: 9, column: 7
Frame: function:'', file:'/data/data/org.nativescript.myapp/files/app/tns_modules/nativescript-push-notifications/push-plugin.js', line: 51, column: 3
Frame: function:'require', file:'', line: 1, column: 266
Frame: fu`

Any ideas on what could be going on here?

Conflict w/ nativescript-google-maps-sdk plugin

There seems to be a conflict between the nativescript-google-maps-sdk plugin and the push-plugin. The push plugin is referencing the google play services 8.4.0 but the nativescript google maps sdk plugin is referencing the newest google play services version installed.

I talked w/ the nativescript-google-maps-sdk plugin developer @dapriett and he thought it might be best to add the following line to your plugin's gradle file so it always targets the latest installed version?
compile 'com.google.android.gms:play-services-maps:+'

Thoughts? Here's the open issue I have on his plugin:
dapriett/nativescript-google-maps-sdk#34 (comment)

Add support for data messages (and how to build this plugin locally?)

Hi there!

I need to make a modification to the Android source of this plugin, in order to make it useable for our project. The GCM messaging concept describes two types of push messages: notifications and data messages (see https://developers.google.com/cloud-messaging/concept-options for details). For whatever reason, this plugin handles every push message as notification, even if it has only a data property set (and no notification property!). This makes the plugin really useless for data messages, because the app will send a notification message to the notification tray, for every push message it receives while the app is not running. To make it even uglier, the push message contains no message, because there is no message property in the push message from the server (because it's only a data message, no notification).

For that reason I've forked and cloned the repository. I can easily add the necessary adjustments on the Java side, but I'm unable to build a new .jar file from my local version of the plugin. I worked with Java many years, but not with native Android development. So I tried with intelliJ IDE, as suggested by the README.MD in the android src folder, without luck. I could build the project, but I could not export a JAR file, because I don't know how to do. Also the IDE suggested to migrate to Gradle. I've also tried to import the project into Android Studio from "Eclipse ADT". The import process worked without any issues, but I was unable to build it, because of missing dependencies:

bildschirmfoto 2016-10-10 um 15 12 03

I would really love to add the necessary modifications by myself and provide a PR later on, but I need some kind of step-by-step guide on how to build this plugin locally (including the export of the .jar file). Could you please provide it?

Best,
Sven

Older API Level Compatibility

There's a reference to org.json.JSONArray which doesn't exist until API Level 19.

I was experiencing strange issues with an unrelated but identical GCM implementation where things wouldn't fire on older API levels (14, 15), this probably was the source of all these problems.

Broken if app id changed

leaving id at default, eg "org.nativescript.someApp" everything is fine.
Changing to "com.xxxxx" (for submitting an update to playstore, makes no difference if just changed in the package.json or anywhere found) and the build goes fine but app crashes with:

"TypeError: Cannot read property 'pushplugin' of undefined File: ", line: 1, column: 265"
when the pushplugin is invoked.

Maybe i'm just missing something here or its not even pushplugin related but invested several hours now and i'm lost.

TIA

image

Android build fails

Hi,

Android build fails on my side:

:compileF0F1F2F3DebugNdk UP-TO-DATE
:compileF0F1F2F3DebugSources
:buildMetadata
Exception in thread "main" java.lang.IllegalArgumentException: Class com.google.android.gms.iid.zzb$zza$zza conflict: /Users/ickata/Desktop/Tables/tns/sample-Groceries/platforms/android/build/intermediates/exploded-aar/com.google.android.gms/play-services-gcm/8.4.0/jars/classes.jar and /Users/ickata/Desktop/Tables/tns/sample-Groceries/platforms/android/build/intermediates/exploded-aar/com.google.android.gms/play-services-basement/9.2.0/jars/classes.jar
    at com.telerik.metadata.ClassRepo.cacheJarFile(ClassRepo.java:21)
    at com.telerik.metadata.Builder.build(Builder.java:39)
    at com.telerik.metadata.Generator.main(Generator.java:44)
:buildMetadata FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildMetadata'.
> Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

I have the following plugins:

┌─────────────────────────────────┬─────────┐
│ Plugin                          │ Version │
│ nativescript-geolocation        │ 0.0.12  │
│ nativescript-google-maps-sdk    │ ^1.3.2  │
│ nativescript-push-notifications │ 0.0.15  │
│ tns-core-modules                │ 2.1.0   │
└─────────────────────────────────┴─────────┘

Without the push plugin build is successful.

Please advise.

Compatible with FCM?

Hi, since GQM is now being moved over to FCM (firebase), is this plugin currently compatible with FCM?

Notifications aren't displayed

When the device sets the app under doze mode, any notification sent to that app is not displayed. Even sending the notification with high priority as GCM recommend.

Any idea around this issue?

use push plugin in IOS

How can i invoke notificationCallbackIOS and receive notifications?
Using IOS and whithout telerik backend.

Display badge number on android

Hello,

I have everything working well on iOS, but I was wondering if there is a way to display application icon badge on Android as well? Currently, when the push notification is sent, the application icon does not show a badge.

Thank you.

Plugin not initializing on Android

The following line inside push-plugin.android.js:

com.telerik.pushplugin.PushLifecycleCallbacks.registerCallbacks(app.android.nativeApp);

is causing the plugin to throw an error by the underlying telerik component:

The application is null, it's not passed correctly!

It appears that app.android.nativeApp is undefined/null at the time of the plugin being initialized.

Is anyone else experiencing this issue?

@yyosifov, would you be so kind to take a look? Thanks!

onMessageReceived function not called on iOS

Hi,

on iOS the callback in onMessageReceived isn't called when the app is in the background or close.
Is it the expected behavior ? In my case, the tap on the notification should open a new url inside a webview, and it's only launch the app.

Permission request dialog shown behind app in iOS

Hello,

Do you know what could be causing the permissions request dialog on iOS to show behind the app? It actually flashes quickly and then goes behind. I have to press the home button to bring it to the front. Until then the UI is blocked.

I am using Everlive and I am calling the register method in the app's launchEvent as such:

`var pushSettings = {
//iOS - specific settings
iOS: {
badge: true,
sound: true,
alert: true,
clearBadge: true
},
notificationCallbackIOS: function (userInfo) {
...
},
//Android - specific settings
android: {
projectNumber: '944301213976'
},
notificationCallbackAndroid: function callback(data) {
...
}
}

el.push.register(pushSettings, function (data) {
    ...
}, function (error) {

});`

Thank you.

The build fails when this plugin is added

The package.json lists the following plugins:

"dependencies": {
    "nativescript-background-http": "0.0.3",
    "nativescript-clipboard": "^1.1.2",
    "nativescript-dialog": "0.0.5",
    "nativescript-push-notifications": "0.0.11",
    "nativescript-toast": "^1.2.0",
    "tns-core-modules": "1.5.1"
  }

When I remove push notification plugin, the build is success else I get the following build errors:

:processNativescript-background-httpNativescript-push-notificationsDebugResources FAILED

App does not start after adding push plugin

I added push plugin to nativescript project , after I execute

tns run android

the nativescript cli says " successfully launched on device", but the app does not launch on device, there is no feedback, neither error on the device, nor on the nativescript cli.

when I remove the plugin, the app launches fine on device.
Testing it on android 4.4 device.

ERROR TypeError: this._removeObserver is not a function

Hi,
I am getting this error when using iOS when calling areNotificationsEnabled()

file:///app/tns_modules/nativescript-push-notifications/push-plugin.js:123:41: JS ERROR TypeError: this._removeObserver is not a function. (In 'this._removeObserver(self.areNotificationsEnabledObserver, "areNotificationsEnabled")', 'this._removeObserver' is undefined)

Push Not Ver: 0.0.18
{N}: 2.3

Any idea?

Get application state(Foreground/Background) when notification is received

Hello,

Is there any event or flag that we can get application state when the notification arrives. I have a case when notification arrives, user clicks on notification and application is in background/killed. So on Click of notification application should navigate to page specified. This way works fine when app is in Killed state. But when application is in foreground and user is viewing app, and notification arrives. Then due to navigation code application navigates to that view automatically. I mean that should not happen if user is using application. I am handling navigation on onMessageReceived method.

So i am seeking for either we can get event for notification tap OR at least return application state when notification arrives.

Thanks in advance

Sending notification icon URL (GCM)?

I see in Notification.Builder code that I can pass a drawable name from server. However, I don't see how I can pass an image URL.

Is there a way to do it? If not, is there any plan to do it?

Xcode 8 not supported

NSNotificationCenter.defaultCenter() is still a function instead of a property. It return as undefined

TypeError: NSNotificationCenter.defaultCenter is not a function

I get this after upgrading to xCode 8.1:

file:///app/tns_modules/nativescript-push-notifications/push-plugin.js:158:54: JS ERROR TypeError: NSNotificationCenter.defaultCenter is not a function. (In 'NSNotificationCenter.defaultCenter()', 'NSNotificationCenter.defaultCenter' is an instance of NSNotificationCenter)

The plugin versions is 0.0.17

onActivityCreated is not called, when notifications gets opened (coldstart)

I am working with NativeScript version 2.3.0 and the latest nativescript-push-notifications plugin (0.0.17) and i am facing the following issue:

When the user opens a push-message while the app is closed, the app starts, but the onActivityCreated event is not called in the Android app.
The rest of the plugin works fine.

Multiline notification body does not seem to be supported.

Is it possible to handle notifications which have larger amounts of text in the body? It seems that all I get is one line for the notifications title and one line for the body. Looking through the Android docs I see the following,

.setStyle(new NotificationCompat.BigTextStyle().bigText(message))

Is something that needs to be added to support this but I'm not sure if this plugin has that. If it does not, how could I go about updating this myself to support a multiline notification?

pushPlugin.register() not working in app.js on iOS

Hi,

pushPlugin.register() is working normally inside page javascripts, but for the notifications i need it to run in app.js where it is simply doing nothing if i put it there.

Is this an error or expected behavior?
How do you manage anytime background notifications if not in app.js?

When app is closed onMessageReceived function is not executing

Hi,

I'm using this push-plugin in my app(Android, NativeScript) for receiving push notifications.When ever one push notification came, I need to save the contents of that notification into database.
For that I have written code in onMessageReceived function.If app is running then onMessageReceived function is executing.But if app is not running then notification is coming, onMessageReceived function is not executing.Any suggestions??

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.