OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your flutter app with OneSignal

Overview

OneSignal Flutter SDK Build Status


OneSignal is a free push notification service for mobile apps. This SDK makes it easy to integrate your Flutter iOS and/or Android apps with OneSignal.

Flutter Notification

Installation

See the Setup Guide for setup instructions.

Change Log

See this repository's release tags for a complete change log of every released version.

Support

Please visit this repository's Github issue tracker for feature requests and bug reports related specificly to the SDK. For account issues and support please contact OneSignal support from the OneSignal.com dashboard.

Demo Project

To make things easier, we have published a demo project in the /example folder of this repository.

Supports:

  • Tested from iOS 8 to iOS 13
  • Tested from Android 4.0.3 (API level 15) to Android 9.0 (28)
Comments
  • Missing Headers <OneSignal/OneSignal.h> (Cocoapods issue)

    Missing Headers (Cocoapods issue)

    When using 1.0.2 of our Flutter SDK, some users that uses use_frameworks! in their podfiles (Swift projects) may see the following error:

    Error output from Xcode build:
    ↳
        ** BUILD FAILED **
    
    Xcode's output:
    ↳
        In file included from /Users/bradhesse/flutter/.pub-cache/hosted/pub.dartlang.org/onesignal-1.0.2/ios/Classes/OneSignalPlugin.m:28:
        /Users/bradhesse/flutter/.pub-cache/hosted/pub.dartlang.org/onesignal-1.0.2/ios/Classes/OneSignalPlugin.h:29:9: fatal error: 'OneSignal/OneSignal.h' file not found
        #import <OneSignal/OneSignal.h>
                ^~~~~~~~~~~~~~~~~~~~~~~
        1 error generated.
    

    It appears to be an issue with how our Flutter SDK is unable to find headers for the native iOS SDK. I am working on this issue now.

    High Priority 
    opened by Nightsd01 78
  • clang: error: linker command failed with exit code 1 (Cocoapods issue)

    clang: error: linker command failed with exit code 1 (Cocoapods issue)

    Description:

    Every once in a while -- after adding a new package (sometimes) or clearing some cache, our application refuses to build on iOS simulators/debug .. and sometimes takes a few tries on production release builds .. with a build error about nothing finding trying to link

    OneSignalNotificationServiceExtension

    What appears to be happening is that this Ld is premature and all the other Pods needed and listed haven't been compiled yet .. so the ld fails because Flutter puts them all together.. here is the snippest from the fails:

                   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static -arch_only x86_64 -syslibroot /Applications/Xcode.app/Contents/Developer/Plat
    forms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/package_info -filelist /Users/sjm/Library/Developer/Xcode/De
    rivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/package_info.build/Objects-normal/x86_64/package_info.LinkFileList -o /Users/sjm/work/mm
    /mms4/mobile/build/ios/Debug-iphonesimulator/package_info/libpackage_info.a
    
               === BUILD TARGET OneSignalNotificationServiceExtension OF PROJECT Runner WITH CONFIGURATION Debug ===
    
               Check dependencies
    
               Create product structure
               /bin/mkdir -p /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex
    
               ProcessInfoPlistFile /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex/Info.plist OneSignalNotificationServiceExtension/Info.pl
    ist
                   cd /Users/sjm/work/mm/mms4/mobile/ios
                   export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/sjm/Developme
    nt/flutter/bin:/Users/sjm/.fastlane/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:."
                   builtin-infoPlistUtility /Users/sjm/work/mm/mms4/mobile/ios/OneSignalNotificationServiceExtension/Info.plist -expandbuildsettings -format binary -platform iphonesimulator -o /Users
    /sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex/Info.plist
    
               PhaseScriptExecution [CP]\ Check\ Pods\ Manifest.lock /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Runner.build/Debug-
    iphonesimulator/OneSignalNotificationServiceExtension.build/Script-7206A2BF19E0D481309F4ACF.sh
                   cd /Users/sjm/work/mm/mms4/mobile/ios
                   /bin/sh -c /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/OneSignalNotificationSe
    rviceExtension.build/Script-7206A2BF19E0D481309F4ACF.sh
    
               Ld /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex/OneSignalNotificationServiceExtension normal x86_64
                   cd /Users/sjm/work/mm/mms4/mobile/ios
                   export IPHONEOS_DEPLOYMENT_TARGET=10.0
                   export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/sjm/Developme
    nt/flutter/bin:/Users/sjm/.fastlane/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:."
                   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimul
    ator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/device_info
    -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/flutter_secure_storage -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/local_auth -L/Users/sjm/work/mm/mms4/mobil
    e/build/ios/Debug-iphonesimulator/location -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/onesignal -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/open_file -L
    /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/package_info -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/path_provider -L/Users/sjm/work/mm/mms4/mobile/build/i
    os/Debug-iphonesimulator/shared_preferences -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/uni_links -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/url_launche
    r -F/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator -F/Users/sjm/work/mm/mms4/mobile/ios/Pods/../.symlinks/flutter/ios -F/Users/sjm/work/mm/mms4/mobile/ios/Pods/OneSignal/iOS_SDK/O
    neSignalSDK/Framework -filelist /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/OneSignalNotifica
    tionServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Fram
    eworks -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/../../Frameworks -mios-simulator-version-min=10.0 -dead_strip -Xlinker -object_path_lto -Xlin
    ker /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -fapplication-extension -ObjC -ldevice_info -lflutter_secure_storage -llocal_auth -llocation -lonesignal -lopen_file -lpackage_info -lpath_provider -lshared_preferences -luni_links -lurl_launcher -framework Flutter -framework OneSignal -framework SystemConfiguration -framework UIKit -framework UserNotifications -ObjC -framework OneSignal -framework SystemConfiguration -framework UIKit -framework UserNotifications -e _NSExtensionMain -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension.appex-Simulated.xcent -lPods-OneSignalNotificationServiceExtension -Xlinker -dependency_info -Xlinker /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension_dependency_info.dat -o /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex/OneSignalNotificationServiceExtension
               ld: warning: directory not found for option '-L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/location'
               ld: library not found for -llocation
               clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
               === BUILD TARGET path_provider OF PROJECT Pods WITH CONFIGURATION Debug ===
    
               Check dependencies
    
               Libtool /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/path_provider/libpath_provider.a normal x86_64
                   cd /Users/sjm/work/mm/mms4/mobile/ios/Pods
                   export IPHONEOS_DEPLOYMENT_TARGET=8.0
                   export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/sjm/Development/flutter/bin:/Users/sjm/.fastlane/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:."
                   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static -arch_only x86_64 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -L/Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/path_provider -filelist /Users/sjm/Library/Developer/Xcode/DerivedData/Runner-fmfgxmbciwytkiaoztfoxtepvsaw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/path_provider.build/Objects-normal/x86_64/path_provider.LinkFileList -o /Users/sjm/work/mm/mms4/mobile/build/ios/Debug-iphonesimulator/path_provider/libpath_provider.a
    
    

    I can include the total flutter run -v output somewhere (it's lengthy) if you tell me where..

    I am not sure why it's do an clang thing THEN in the middle of the project builds?? I think that's the culprit ..

    Environment

    1. 1.0.3
    2. pub and then followed the instructions

    Steps to Reproduce Issue:

    1. Install the OneSignal Flutter SDK using pub into your project
    2. Add a TON of pubspec.yaml dependencies .. lots of which have Pod things..
    3. flutter clean ; flutter run -d XXXX (simulator)

    The odd thing is that the first time we run we may get 5/6 "ld" errors.. but each run after reduces that. Sometimes we get 0 and once it's zero we're good again until the next "flutter upgrade" or something that adds a pod .. then all hell breaks loose again . :(

    I have this reproducible right now -- can't fix actually ..

    Here is our pubspec.yaml file:

    name: MissionMode
    description: Flutter MissionMode Mobile
    
    # The following defines the version and build number for your application.
    # A version number is three numbers separated by dots, like 1.2.43
    # followed by an optional build number separated by a +.
    # Both the version and the builder number may be overridden in flutter
    # build by specifying --build-name and --build-number, respectively.
    # Read more about versioning at semver.org.
    version: 1.4.5
    
    environment:
      sdk: '>=2.0.0-dev.68.0 <3.0.0'
    
    dependencies:
      charts_flutter: ^0.5.0
      device_info: ^0.3.0
      dynamic_theme: ^1.0.0
      fluro: ^1.3.4
      flutter_secure_storage: ^3.1.1
      flutter_typeahead: ^0.4.0
      # get_version: ^0.0.6
      graphql_flutter: ^1.0.0-alpha.10
      flutter_html: ^0.8.2
      http: ^0.12.0
      icons_helper:
        git:
          url: git://github.com/sjmcdowall/icons_helper
      # image_picker: ^0.4.10
      local_auth: ^0.3.0
      location: ^1.4.0
      native_widgets: ^0.1.1+1
      open_file: ^1.1.1
      package_info: ^0.3.2
      page_view_indicator: ^0.3.0+1
      path_provider: ^0.4.1
      rxdart: ^0.18.1
      scoped_model: ^1.0.1
      shared_preferences: ^0.4.2
      uni_links: ^0.1.3
      url_launcher: ^4.0.1
      uuid: ^1.0.3
      intl: ^0.15.7
      onesignal: ^1.0.0
    
      flutter:
        sdk: flutter
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.2
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
    # For information on the generic Dart part of this file, see the
    # following page: https://www.dartlang.org/tools/pub/pubspec
    
    # The following section is specific to Flutter.
    flutter:
      # The following line ensures that the Material Icons font is
      # included with your application, so that you can use the icons in
      # the material Icons class.
      uses-material-design: true
    
      # To add assets to your application, add an assets section, like this:
      assets:
        - assets/images/background.png
        - assets/images/MissionMode_Logo.png
        - assets/images/MissionMode_Full_logo_white.png
        - assets/images/MissionMode_Full_logo.png
        - assets/images/MissionMode_Logo.png
        - assets/images/triangle-bg.png
        - assets/images/Envelope-PNG-File-354x279.png
        - assets/images/wand-1024_1280.png
      # To add assets to your application, add an assets section, like this:
      # assets:
      #  - images/a_dot_burr.jpeg
      #  - images/a_dot_ham.jpeg
      # An image asset can refer to one or more resolution-specific "variants", see
      # https://flutter.io/assets-and-images/#resolution-aware.
      # For details regarding adding assets from package dependencies, see
      # https://flutter.io/assets-and-images/#from-packages
      # To add custom fonts to your application, add a fonts section here,
      # in this "flutter" section. Each entry in this list should have a
      # "family" key with the font family name, and a "fonts" key with a
      # list giving the asset and other descriptors for the font. For
      # example:
      # fonts:
      #   - family: Schyler
      #     fonts:
      #       - asset: fonts/Schyler-Regular.ttf
      #       - asset: fonts/Schyler-Italic.ttf
      #         style: italic
      #   - family: Trajan Pro
      #     fonts:
      #       - asset: fonts/TrajanPro.ttf
      #       - asset: fonts/TrajanPro_Bold.ttf
      #         weight: 700
      #
      # For details regarding fonts from package dependencies,
      # see https://flutter.io/custom-fonts/#from-packages
    
    

    Here is the Podfile from /ios

    # Uncomment this line to define a global platform for your project
    platform :ios, '10.0'
    
    # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
    ENV['COCOAPODS_DISABLE_STATS'] = 'true'
    
    def parse_KV_file(file, separator='=')
      file_abs_path = File.expand_path(file)
      if !File.exists? file_abs_path
        return [];
      end
      pods_ary = []
      skip_line_start_symbols = ["#", "/"]
      File.foreach(file_abs_path) { |line|
          next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
          plugin = line.split(pattern=separator)
          if plugin.length == 2
            podname = plugin[0].strip()
            path = plugin[1].strip()
            podpath = File.expand_path("#{path}", file_abs_path)
            pods_ary.push({:name => podname, :path => podpath});
          else
            puts "Invalid plugin specification: #{line}"
          end
      }
      return pods_ary
    end
    
    target 'Runner' do
      # SJM -- For Swift plugins
      # use_frameworks!
    
      # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
      # referring to absolute paths on developers' machines.
      system('rm -rf .symlinks')
      system('mkdir -p .symlinks/plugins')
    
      # Flutter Pods
      generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
      if generated_xcode_build_settings.empty?
        puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
      end
      generated_xcode_build_settings.map { |p|
        if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
          symlink = File.join('.symlinks', 'flutter')
          File.symlink(File.dirname(p[:path]), symlink)
          pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
        end
      }
    
      # Plugin Pods
      plugin_pods = parse_KV_file('../.flutter-plugins')
      plugin_pods.map { |p|
        symlink = File.join('.symlinks', 'plugins', p[:name])
        File.symlink(p[:path], symlink)
        pod p[:name], :path => File.join(symlink, 'ios')
      }
    end
    
    target 'OneSignalNotificationServiceExtension' do
      pod 'OneSignal', '>= 2.9.3', '< 3.0'
    end
    
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['SWIFT_VERSION'] = '4.0'
          config.build_settings['ENABLE_BITCODE'] = 'NO'
        end
      end
    end
    

    This is rather a show stopper for us right now as we're stuck ..

    Cheers!

    High Priority 
    opened by sjmcdowall 68
  • Android app not launch sometimes when i touch the notification.

    Android app not launch sometimes when i touch the notification.

    Description:

    Title explains the problem.

    Environment

    SDK Version: 3.2.0 SDK Added from Pub

    Steps to Reproduce Issue:

    1. App open
    2. Press android home button or go home screen. (○ button )
    3. Send Notification to device.
    4. Close app manually from android app control screen ( ▢ button )
    5. Touch the notification

    Anything else:

    [√] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.19042.1151], locale en-US) • Flutter version 2.2.3 at D:\Flutter • Framework revision f4abaa0735 (6 weeks ago), 2021-07-01 12:46:11 -0700 • Engine revision 241c87ad80 • Dart version 2.13.4

    [√] Android toolchain - develop for Android devices (Android SDK version 30.0.3) • Android SDK at C:\Users\####\AppData\Local\Android\Sdk • Platform android-30, build-tools 30.0.3 • ANDROID_HOME = C:\Users\####\AppData\Local\Android\Sdk • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189) • All Android licenses accepted.

    [√] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

    [√] Android Studio (version 4.1.0) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

    [√] VS Code (version 1.59.0) • VS Code at C:\Users\####\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.25.0

    • No issues found!

    opened by GeceGibi 43
  • OneSignal Flutter SDK Version 3 - Beta!

    OneSignal Flutter SDK Version 3 - Beta!

    Hello everyone! The Flutter major release version 3 is now in Beta!

    This version includes many exciting changes including an overall simplification of the API as well as many of the underlying native improvements and bug fixes.

    Some key changes already in Beta:

    • Better notification control while app is in foreground
    • Part of OneSignal initialization is now done for you automatically. Simply set the app id to complete the process.

    Why you should start migrating now

    Most importantly, we want to give you the opportunity to voice your opinion and provide feedback so that we can make changes as needed to better suit your implementation.

    Furthermore, it is always beneficial to get a head start on migrating your implementation to ensure a smooth transition. As we continue improving OneSignal, being fully migrated to the latest version of the SDK will help minimize potential issues and ensure you can focus on providing value to your customers, improving your business, and creating a delightful messaging experience.

    To begin migrating your app to version 3, read our migration guide here. Regarding this guide, please let us know if anything could be clarified or communicated better.

    Releases Page

    We are looking forward to hearing from you.

    Enjoy!

    Beta 
    opened by Jeasmine 43
  • First notification comes from the wrong side (doesn't go to setNotificationWillShowInForegroundHandler)

    First notification comes from the wrong side (doesn't go to setNotificationWillShowInForegroundHandler)

    Description:

    In Android, first notification get (application in FOREGROUND) is as if the app is in 'Background' or 'Closed', the first notification comes via 'OneSignal.shared.setNotificationOpenedHandler(OSNotificationOpenedResult result) {' ... The next ones arrive in the right place: 'OneSignal.shared.setNotificationWillShowInForegroundHandler (OSNotificationReceivedEvent event) {'

    Luckily, when app is in background or app is closed, notification arrives at right place...

    Environment

    Flutter (Channel stable, 2.5.3, on macOS 12.0.1 21A559 darwin-x64, locale it-IT) Android toolchain - develop for Android devices (Android SDK version 31.0.0) Android Studio (version 2020.3) OneSignal Flutter ^3.2.6

    Steps to Reproduce Issue:

    1. Onesignal configuration ( INIT ) is in main.dart (
    OneSignal.shared.setLogLevel(OSLogLevel.verbose, OSLogLevel.none);
    OneSignal.shared.setAppId(Config.getOnesignalAppId);
    OSDeviceState? status = await OneSignal.shared.getDeviceState();
    AppVariableSingleton.shared.tokenOnesignal = status!.userId!;
    
    1. with 'await Future.doWhile(() async' .. .ask onesignal player id and start 'APP' because use inappwebview and have to send onesignal token (playerid) in web header on the first call,
    2. APP call home_page.dart with onesignal notification callback

    Anything else:

    (crash stacktraces, as well as any other information here) No crash, only firt notification comes from the wrong side

    Reproducible 
    opened by massimilianochiodi 35
  • [iOS] issue with local notifications

    [iOS] issue with local notifications

    Description:

    Using flutter_local_notifications https://github.com/MaikuB/flutter_local_notifications/tree/master/flutter_local_notifications and onesginal_flutter plugins together leads to an issue with scheduled local notifications. Local Notification will not be shown when the app is on the foreground, moreover, after clicking on it, the onSelectNotification is not called.

    Everything works fine without OneSignal plugin.

    Environment

    flutter_local_notifications: ^0.9.1+2 onesignal_flutter: ^2.3.1 Flutter 1.12.13+hotfix.5 • channel stable

    Steps to Reproduce Issue:

    1. Create a new Flutter project
    2. Install OneSignal using pub
    3. Install LocalNotification using pub
    4. Schedule a notification (30secs after is fine), keep the app on the foreground. Nothing happens, the notification is not triggered.
    5. Schedule again, restart the app and send it to the background. A notification will appear but clicking on it will not call the onSelectNotification callback.
    6. Remove OneSignal, everything works fine.

    Anything else:

    Any help would be appreciated. Thanks!

    Compatibility Issue iOS 
    opened by Mapk26 33
  • Tap on notification won't open on oneSignal Flutter Android ONLY

    Tap on notification won't open on oneSignal Flutter Android ONLY

    Once I tap on the notification It doesn't open the app but it calls the handler for opening the notification, this issue is only on android, as for the IOS it is working perfectly.

    and while using flutter 2.5 I'm getting this warning on building my app

    The plugin onesignal_flutter uses a deprecated version of the Android embedding. To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider removing it since a future release of Flutter will remove these deprecated APIs. If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.

    flutter doctor [✓] Flutter (Channel stable, 2.5.0, on macOS 11.4 20F71 darwin-x64, locale en-MA) [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3) [✓] Xcode - develop for iOS and macOS [✓] Chrome - develop for the web [✓] Android Studio (version 4.2) [✓] VS Code (version 1.58.0) [✓] Connected device (3 available)

    opened by nimr77 32
  • Error when building for iOS after following SDK setup tutorial

    Error when building for iOS after following SDK setup tutorial

    Head's up: It's not working for android either. See #56 __

    Description: After following every step, to the letter of the Official SDK Setup, when running

    flutter build ios --release
    

    The job fails with

    Building social.openbook.app for device (ios-release)...
    Automatically signing iOS for device deployment using specified development team in Xcode project: GAR7B57RXU
    Running pod install...                                       1.6s
    Starting Xcode build...
    Xcode build done.                                            1.3s
    Failed to build iOS app
    Error output from Xcode build:
    ↳
        ** BUILD FAILED **
    
    
    Xcode's output:
    ↳
        === BUILD TARGET Pods-Runner OF PROJECT Pods WITH CONFIGURATION Release-production ===
        ld:
        '/Users/lifenautjoe/Documents/code/openbook/openbook-app/build/ios/Release-production-iphoneos/TOCropViewController/libTOCropViewController.a(TOActivityCroppedIm
        ageProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or
        disable bitcode for this target. file
        '/Users/lifenautjoe/Documents/code/openbook/openbook-app/build/ios/Release-production-iphoneos/TOCropViewController/libTOCropViewController.a' for architecture
        armv7
        clang: error: unable to execute command: Segmentation fault: 11
        clang: error: linker command failed due to signal (use -v to see invocation)
        ld:
        '/Users/lifenautjoe/Documents/code/openbook/openbook-app/build/ios/Release-production-iphoneos/TOCropViewController/libTOCropViewController.a(TOActivityCroppedIm
        ageProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or
        disable bitcode for this target. file
        '/Users/lifenautjoe/Documents/code/openbook/openbook-app/build/ios/Release-production-iphoneos/TOCropViewController/libTOCropViewController.a' for architecture
        arm64
        clang: error: unable to execute command: Segmentation fault: 11
        clang: error: linker command failed due to signal (use -v to see invocation)
        === BUILD TARGET Pods-Runner OF PROJECT Pods WITH CONFIGURATION Release-production ===
        error: the following command failed with exit code 254 but produced no further output
        Ld
        /Users/lifenautjoe/Library/Developer/Xcode/DerivedData/Runner-fyejgxaqxiysevckyfsvnqjhzfai/Build/Intermediates.noindex/Runner.build/Release-production-iphoneos/O
        neSignalNotificationServiceExtension.build/Objects-normal/arm64/OneSignalNotificationServiceExtension normal arm64
    

    I really have no clue what this might be.

    Environment

    • OneSignal Flutter SDK ^1.0.0 (As in the example)
    • Flutter 1.0.0 • channel stable • https://github.com/flutter/flutter.git
    opened by lifenautjoe 31
  • Documentation needs updating on how to integrate OneSignal for iOS

    Documentation needs updating on how to integrate OneSignal for iOS

    Description:

    I spent 5 hours today tracking down why -- after following the instructions for installing OneSignal my flutter app wouldn't run anymore. Not a lot of fun.

    The issue is that depending on whim or who knows -- Xcode saves the Runner -> project.pbxproj with all the bundle id's listed (one per scheme) in "random" (doubtful but still) order. This means that the new scheme/target for OneSignal -- PRODUCT_BUNDLE_IDENTIFIER = com.xxx.app.OneSignalNotificationServiceExtension;

    Could be first -- and then flutter uses the FIRST BUNDLE_ID it finds if the Info.plist is set to $(PRODUCT_BUNDLE_ID). Which it is by default. Hence, when you run it "simctl launch" tries to launch the wrong bundle id.

    The easiest solution - if not the cleanest -- is to set in the Info.plist

    <key>CFBundleIdentifier</key>
    <string>com.xxx.app</string>
    

    Which takes precedence .. the other option is to handle arrange the project.pbxproj to make sure the real app is first - but I think opening Xcode again and saving could re-arrange it? Hard to tell ..

    Environment

    iOS

    Steps to Reproduce Issue:

    1. See above

    Anything else:

    (crash stacktraces, as well as any other information here)

    opened by sjmcdowall 31
  • Upgrade to use Flutter embedding V2

    Upgrade to use Flutter embedding V2

    Description:

    A red warning when building:

    The plugin `onesignal_flutter` uses a deprecated version of the Android embedding.
    To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider removing it since a future release of Flutter will
    remove these deprecated APIs.
    If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.
    

    Environment

    Steps to Reproduce Issue:

    1. Install the OneSignal Flutter SDK using pub into your project
    2. Build with latest Flutter (2.5.0)

    Anything else:

    opened by westy92 30
  • Building IOS app results in error (when using Firebase)

    Building IOS app results in error (when using Firebase)

    TL;DR for the ones who just got here In order to fix this add the firebase pods from your xcode error to the onesignal target, as a workaround

    Description:

    Running flutter build ios throws an error (see bottom of issue)

    EDIT: Changing to ^2.3.1 prints the second error EDIT 2: It turned out that the OneSignal target also tries to compile with the Firebase pods, adding them to the target worked as a workaround

    Environment OneSignal flutter: ^2.0.0 (pub.dev)

    Steps to Reproduce Issue:

    1. Follow the setup tutorial https://documentation.onesignal.com/docs/flutter-sdk-setup
    2. Run flutter build ios or flutter run with an iOS device connected

    Anything else:

        2019-12-09 16:13:56.784 xcodebuild[2261:23606]  DTDeviceKit: deviceType from f5a636663df701faeeb802603d17d40e58668839 was NULL
        2019-12-09 16:13:56.934 xcodebuild[2261:23801]  DTDeviceKit: deviceType from f5a636663df701faeeb802603d17d40e58668839 was NULL
        ** BUILD FAILED **
    
    Xcode's output:
    ↳
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: error: duplicate protocol definition of 'GDTLifecycleProtocol' is ignored [-Werror,-Wduplicate-protocol]
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: previous definition is here
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:59:1: error: duplicate interface definition for class 'GDTLifecycle'
        @interface GDTLifecycle : NSObject <GDTApplicationDelegate>
        ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:59:12: note: previous definition is here
        @interface GDTLifecycle : NSObject <GDTApplicationDelegate>
                   ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:51:37: error: reference to 'GDTLifecycleProtocol' is ambiguous
        @protocol GDTPrioritizer <NSObject, GDTLifecycleProtocol, GDTUploadPackageProtocol>
                                            ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:51:37: error: cannot find protocol declaration for 'GDTLifecycleProtocol'
        @protocol GDTPrioritizer <NSObject, GDTLifecycleProtocol, GDTUploadPackageProtocol>
                                            ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:21:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTUploader.h:28:34: error: reference to 'GDTLifecycleProtocol' is ambiguous
        @protocol GDTUploader <NSObject, GDTLifecycleProtocol, GDTUploadPackageProtocol>
                                         ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:21:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTUploader.h:28:34: error: cannot find protocol declaration for 'GDTLifecycleProtocol'
        @protocol GDTUploader <NSObject, GDTLifecycleProtocol, GDTUploadPackageProtocol>
                                         ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:26:37: error: reference to 'GDTLifecycleProtocol' is ambiguous
        @interface GDTRegistrar : NSObject <GDTLifecycleProtocol>
                                            ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:26:37: error: no type or protocol named 'GDTLifecycleProtocol'
        @interface GDTRegistrar : NSObject <GDTLifecycleProtocol>
                                            ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:22:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTStorage_Private.h:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTStorage.h:27:51: error: reference to 'GDTLifecycleProtocol' is ambiguous
        @interface GDTStorage : NSObject <NSSecureCoding, GDTLifecycleProtocol>
                                                          ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:22:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTStorage_Private.h:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTStorage.h:27:51: error: cannot find protocol declaration for 'GDTLifecycleProtocol'
        @interface GDTStorage : NSObject <NSSecureCoding, GDTLifecycleProtocol>
                                                          ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:23:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTTransformer_Private.h:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTTransformer.h:33:39: error: reference to 'GDTLifecycleProtocol' is ambiguous
        @interface GDTTransformer : NSObject <GDTLifecycleProtocol>
                                              ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:23:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTTransformer_Private.h:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTTransformer.h:33:39: error: no type or protocol named 'GDTLifecycleProtocol'
        @interface GDTTransformer : NSObject <GDTLifecycleProtocol>
                                              ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:24:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTUploadCoordinator.h:33:33: error: reference to 'GDTLifecycleProtocol' is ambiguous
            : NSObject <NSSecureCoding, GDTLifecycleProtocol, GDTUploadPackageProtocol>
                                        ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:21:
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTRegistrar_Private.h:17:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTRegistrar.h:19:
        In file included from /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTPrioritizer.h:19:
        /Users/User/appname/build/ios/Debug-iphoneos/GoogleDataTransport/GoogleDataTransport.framework/Headers/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:17:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Public/GDTLifecycle.h:26:11: note: candidate found by name lookup is 'GDTLifecycleProtocol'
        @protocol GDTLifecycleProtocol <NSObject>
                  ^
        In file included from /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:24:
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/Private/GDTUploadCoordinator.h:33:33: error: cannot find protocol declaration for 'GDTLifecycleProtocol'
            : NSObject <NSSecureCoding, GDTLifecycleProtocol, GDTUploadPackageProtocol>
                                        ^
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:74:38: error: no visible @interface for 'GDTTransformer' declares the selector 'appWillBackground:'
            [[GDTTransformer sharedInstance] appWillBackground:application];
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:77:34: error: no visible @interface for 'GDTStorage' declares the selector 'appWillBackground:'
            [[GDTStorage sharedInstance] appWillBackground:application];
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:80:44: error: no visible @interface for 'GDTUploadCoordinator' declares the selector 'appWillBackground:'
            [[GDTUploadCoordinator sharedInstance] appWillBackground:application];
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:83:36: error: no visible @interface for 'GDTRegistrar' declares the selector 'appWillBackground:'
            [[GDTRegistrar sharedInstance] appWillBackground:application];
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~
        /Users/User/appname/ios/Pods/GoogleDataTransport/GoogleDataTransport/GDTLibrary/GDTLifecycle.m:90:38: error: no visible @interface for 'GDTTransformer' declares the selector 'appWillForeground:'
            [[GDTTransformer sharedInstance] appWillForeground:application];
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~
        fatal error: too many errors emitted, stopping now [-ferror-limit=]
        20 errors generated.
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Debug-iphoneos/onesignal_flutter'
        ld: framework not found onesignal_flutter
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    Could not build the precompiled application for the device.
    
    Error launching application on iPhone von Link.```
    
    ```Text
    Xcode build done.                                           18,5s
    Failed to build iOS app
    Error output from Xcode build:
    ↳
        ** BUILD FAILED **
    
    Xcode's output:
    ↳
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/FirebaseAuth'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/FirebaseCore'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/FirebaseCoreDiagnostics'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/FirebaseFirestore'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/FirebaseInstanceID'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/GTMSessionFetcher'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/GoogleDataTransportCCTSupport'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/GoogleUtilities'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/abseil'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/android_intent'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/cloud_firestore'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/devicelocale'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/firebase_analytics'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/firebase_auth'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/firebase_core'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/flutter_inappbrowser'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/flutter_nfc_reader'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/fluttertoast'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/gRPC-C++'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/gRPC-Core'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/leveldb-library'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/onesignal_flutter'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/shared_preferences'
        ld: warning: directory not found for option '-F/Users/User/appname/build/ios/Release-iphoneos/url_launcher'
        ld: framework not found FirebaseAuth
        clang: error: linker command failed with exit code 1 (use -v to see invocation)```
    
    
    Not OneSignal Compatibility Issue 
    opened by DRSchlaubi 28
  • [Bug]: Shared instance used in 'complete' method

    [Bug]: Shared instance used in 'complete' method

    What happened?

    When use ur own instance of OneSignal through constructor instead of .shared instance there is method, that use forced .shared instance

    Steps to reproduce?

    1. notification.dart file, 392 line
    

    What did you expect to happen?

    use not shared instance instead

    OneSignal Flutter SDK version

    3.4.1

    Which platform(s) are affected?

    • [X] iOS
    • [x] Android

    Relevant log output

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    opened by ilia-grishakov-m10 0
  • [question]: How to show / hide scheduled notification based on condition ?

    [question]: How to show / hide scheduled notification based on condition ?

    How can we help?

    How can I show / hide scheduled notification based on condition?

    Example Use case -

    Let's say To-Do tasks notifications are scheduled for 10 users at a specific time of 1:30 PM and some users have already completed the task before 1:30 PM.

    Now scheduled notification are sent at 1:30 PM And I don't want to show notification to those users who have completed their task already ( before 1:30 PM ) and want to show only to those users who haven't completed the task yet.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    opened by Jos-Sea 0
  • [question]: Why remoteNotificationReceived in NotificationServiceExtension is not working in Android?

    [question]: Why remoteNotificationReceived in NotificationServiceExtension is not working in Android?

    How can we help?

    So currently I am implementing incoming call notifications for both Android and iOS. And I have already completed the Voip notification on iOS side, but now I am stuck on Android side.

    Based on this documentation, I need to implement the Notification Service Extension on Android side to override the incoming notification setting so that the notification will look like an incoming call (e.g. WhatsApp call notification). Please correct me if I am wrong at this point.

    So I followed the documentation by adding a NotificationServiceExtension.java beside MainActivity.kt as such:

    package com.xxx.yyy;
    
    import android.content.Context;
    import android.graphics.Color;
    import android.text.Spannable;
    import android.text.SpannableString;
    import android.text.style.ForegroundColorSpan;
    import android.util.Log;
    import org.json.JSONObject;
    
    import com.onesignal.OSNotification;
    import com.onesignal.OSMutableNotification;
    import com.onesignal.OSNotificationReceivedEvent;
    import com.onesignal.OneSignal.OSRemoteNotificationReceivedHandler;
    
    import java.math.BigInteger;
    
    @SuppressWarnings("unused")
    public class NotificationServiceExtension implements OSRemoteNotificationReceivedHandler {
    
        @Override
        public void remoteNotificationReceived(Context context, OSNotificationReceivedEvent notificationReceivedEvent) {
            OSNotification notification = notificationReceivedEvent.getNotification();
            OSMutableNotification mutableNotification = notification.mutableCopy();
    
            mutableNotification.setExtender(builder -> {
                builder.setColor(new BigInteger("FF00FF00", 16).intValue());
    
                //  I changed to this title for testing
                Spannable spannableTitle = new SpannableString("Title has been overriden"); 
                spannableTitle.setSpan(new ForegroundColorSpan(Color.RED),0,notification.getTitle().length(),0);
                builder.setContentTitle(spannableTitle);
    
                //  I changed to this body for testing
                Spannable spannableBody = new SpannableString("Body has been overriden"); 
                spannableBody.setSpan(new ForegroundColorSpan(Color.BLUE),0,notification.getBody().length(),0);
                builder.setContentText(spannableBody);
    
                builder.setTimeoutAfter(30000);
    
                return builder;
            });
    
            notificationReceivedEvent.complete(mutableNotification);
        }
    }
    

    And also added the metadata in AndroidManifest.xml file as such:

    <application ...> 
      <!-- name doesn't change, value = your class fully name spaced-->
      <meta-data 
              android:name="com.onesignal.NotificationServiceExtension"
              android:value="com.xxx.yyy.NotificationServiceExtension" />
    </application>
    

    So when I push a normal notification as such:

    {
        "app_id": "MY_APP_ID",
        "include_player_ids": ["MY_PLAYER_ID"]
        "headings": {
            "en": "Original title"
        },
        "contents": {
            "en": "Original body"
        },
        "apns_push_type_override": "voip",
        "data": {
            ...
        },
    }
    

    I was expecting the title and body of the notification would be overridden to the one that I have defined in NotificationServiceExtension, but it didn't, it still shows the original notification.

    What am I missing? There's not much documentation/video/article about this, I have tried many ways, and seems like the remoteNotificationReceived is not triggered and I can't get it working. I'm not familiar with native Android and would be happy if someone could help me a little on this one.

    Flutter doctor: All good Flutter version: 3.3.9 Package version: onesignal_flutter: ^3.5.0

    Code of Conduct

    • [x] I agree to follow this project's Code of Conduct
    opened by MingSern 2
  • [Bug]: can't logout email with external user Id

    [Bug]: can't logout email with external user Id

    What happened?

    I set an externalUserId and email when I log in a user. During logout email, sometimes i get error: "status code: 400; errors: ["identifier must exist for email"]". before logging out, it is checked whether emailAddress and emailUserId are not null. In addition request is sinding a few times but method is invoking once. If it metters - order of execution methods:

    1. Login: a. set External User Id b. set Email
    2. Logout: a. logoutEmail() b. remove External User Id

    image

    Steps to reproduce?

    Login and logout a few times to reproduce. Usually 3-7 times is enough.
    

    What did you expect to happen?

    I expected the logout email should logging out when email and email id is not empty.

    OneSignal Flutter SDK version

    3.5.0

    Which platform(s) are affected?

    • [ ] iOS
    • [X] Android

    Relevant log output

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    opened by LukasMys 0
  • [question]: setNotificationOpenedHandler Problem

    [question]: setNotificationOpenedHandler Problem

    How can we help?

    We have a project built with GetX and use OneSignal for notifications. There is a chat feature in the app and when user clicks on a “new message” notification, we’d like to navigate him/her to the related chat screen. However, the setNotificationOpenedHandler method, which is used to capture the additionalData property inside the notifications, is not fired in any way.

    There is no any problem with notifications but we couldn’t catch any data while receiving. We tried with iOS real device both debug and release mode and our Flutter version is 3.3.4.

    OneSignal package: onesignal_flutter: ^3.4.1

    Do you have any idea?

    [✓] Flutter (Channel stable, 3.3.4, on macOS 12.5 21G72 darwin-arm, locale tr-TR)
        • Flutter version 3.3.4 on channel stable at /Users/XXXXXX/Development/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision eb6d86ee27 (9 weeks ago), 2022-10-04 22:31:45 -0700
        • Engine revision c08d7d5efc
        • Dart version 2.18.2
        • DevTools version 2.15.0
    
    [✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Build 14A400
        • CocoaPods version 1.11.3
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 2021.3)
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin can be installed from:
          🔨 https://plugins.jetbrains.com/plugin/9212-flutter
        • Dart plugin can be installed from:
          🔨 https://plugins.jetbrains.com/plugin/6351-dart
        • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    
    [✓] VS Code (version 1.73.1)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.54.0
    
    [✓] HTTP Host Availability
        • All required HTTP hosts are available
    

    Thanks in advance.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    opened by furkeen 1
  • [Bug]: disablePush method is not working properly

    [Bug]: disablePush method is not working properly

    What happened?

    I'm calling OneSignal.shared.disablePush(true); method in logout function to disable the notifications. but when i "turn off" the Internet" while method is executing it returns the below logs

    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null 
    

    and after completing the above method execution calling OSDeviceState? state = await OneSignal.shared.getDeviceState(); method to check if user is subscribed. state.subscribed which returns false

    but in OneSignal console user still shows as "Subscribed / Active"

    as we can see in the above logs the method is OneSignal.shared.disablePush(true); is failed and user is not "OPTED-OUT" from the console.

    is there any we can catch any error if OneSignal.shared.disablePush(true); fails or any way to check if it's completed successfully in console also.

    Steps to reproduce?

    1.OneSignal.shared.disablePush(false); first enable notifications.
    2. Turn off the internet.
    3.await OneSignal.shared.disablePush(true); call this method. 
    4.wait to finish execution.
    

    What did you expect to happen?

    I'm expecting OneSignal.shared.disablePush(false) method to return any error / exception if the method is not executed successfully. and to make sure user is "OPTED-OUT" successfully in console.

    OneSignal Flutter SDK version

    3.3.2

    Which platform(s) are affected?

    • [X] iOS
    • [X] Android

    Relevant log output

    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    E/OneSignal(20428): Failed PUT sync request with status code: -1 and response: null
    E/OneSignal(20428): Error setting external user id for push with status code: -1 and message: null
    

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    opened by Jos-Sea 0
Releases(3.5.0)
  • 3.5.0(Nov 30, 2022)

    What's Changed

    • [Feature] Add iOS Live Activities support in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/621 that include 2 methods for associating and deleting a temporary push token with an Activity ID on the OneSignal server.
      • Documentation to come
      • Example usage:
        OneSignal.shared.enterLiveActivity("your_activity_id", "your_token").then((v) {
          print("Successfully enter live activity");
        }).catchError((error) {
          print("Failed to enter live activity with error: $error");
        });
    
        OneSignal.shared.exitLiveActivity("your_activity_id").then((v) {
          print("Successfully exit live activity");
        }).catchError((error) {
          print("Failed to exit live activity: $error");
        });
    

    Native SDK Updates

    • Update to OneSignal-iOS-SDK 3.12.3
      • Includes the iOS Live Activities support
    • No Android bump to 4.8.3, the SDK stays on 4.8.2

    Full Changelog: https://github.com/OneSignal/OneSignal-Flutter-SDK/compare/3.4.2...3.5.0

    Source code(tar.gz)
    Source code(zip)
  • 3.4.2(Oct 28, 2022)

  • 3.4.1(Aug 10, 2022)

  • 3.4.0(Jul 28, 2022)

    What's Changed

    • [Feature] Add support for Android 13 Push Permission Prompting in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/578 The existing promptUserForPushNotificationPermission() method now works for both iOS and Android. In order to utilize this method in Android make sure that your compile and target SDK versions are set to API 33
    Source code(tar.gz)
    Source code(zip)
  • 3.3.2(Jun 17, 2022)

    What's Changed

    • [Feature] Add callbacks to the setLanguage method in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/568
        OneSignal.shared.setLanguage("fr").then((response) { // Example of setting the language to French.
            print("Successfully set language with response: $response");
        }).catchError((error) {
            print("Failed to set language with error: $error");
        });
    

    Native SDK Updates

    Full Changelog: https://github.com/OneSignal/OneSignal-Flutter-SDK/compare/3.3.1...3.3.2

    Source code(tar.gz)
    Source code(zip)
  • 3.3.1(May 25, 2022)

  • 3.3.0(Mar 10, 2022)

    Release Notes

    • Use ActivityAware to get the Activity context which fixes an issue where the app is sensed incorrectly as in the background by @nan-li in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/534
    • Add in-app message lifecycle handler by @tanaynigam in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/531
    • Add missing fallbackToSettings argument on native iOS side by @slawekkrol in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/523
    • Add iOS only setLaunchURLsInApp function by @nan-li in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/542

    Native SDK Updates

    Full Changelog: https://github.com/OneSignal/OneSignal-Flutter-SDK/compare/3.2.8...3.3.0

    Source code(tar.gz)
    Source code(zip)
  • 3.2.8(Jan 28, 2022)

    Release Notes

    • Remove dependency on jcenter by @jkasten2 in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/518
      • Resolves #528, #516, & #248
    • Fix CI issue by @iAmWillShepherd in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/524
    • Make license file compatible with tools like LicenseBat by @iAmWillShepherd in https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/527
    • Updated to OneSignal-iOS-SDK 3.10.0
    • Updated to OneSignal-Android-SDK 4.6.6
      • Resolves #494

    Full Changelog: https://github.com/OneSignal/OneSignal-Flutter-SDK/compare/3.2.7...3.2.8

    Source code(tar.gz)
    Source code(zip)
  • 3.2.7(Nov 16, 2021)

  • 3.2.6(Nov 16, 2021)

  • 3.2.5(Nov 11, 2021)

    Release notes

    Updated Android-OneSignal-SDK to 4.6.2

    • Fix outside package target activities (Launch URL) not opening when notification is tapped on.
      • Regression bug introduced in the OneSignal-Flutter-SDK 3.2.1
    • Update work-runtime version to [2.1.0, 2.7.99], 2.7.0 is required for apps with targetSdkVersion 31 (Android 12)
    • Match and fix any external id that has escaped forward slashes
    • Notification background image template fixes for RTL
    • Prevent crash when device has no WebView installed. (MissingWebViewPackageException)

    See OneSignal-Android-SDK 4.6.2 for more details

    Source code(tar.gz)
    Source code(zip)
  • 3.2.4(Oct 27, 2021)

  • 3.2.3(Aug 30, 2021)

  • 3.2.2(Aug 28, 2021)

  • 3.2.1(Aug 24, 2021)

  • 3.2.0(Aug 5, 2021)

    Release Notes

    • Re-expose notificationPermissionStatus #450
    • Expose setLanguage method #452
    • Remove path from pubspec.yaml, it isn't valid #456
    • Example Switch to iOS pod version range #457
    • Return SMS user id instead of number #446
    • Handle handlers more than one response #445
    • Clean handler before set #443

    Native SDK Versions Update

    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Jul 13, 2021)

  • 3.0.0(Jun 4, 2021)

  • 2.6.4(Jun 4, 2021)

  • 3.0.0-beta4(May 28, 2021)

    Major Release 3.0.0 Beta4🛠️

    ⚠️ This is a major beta release that contains breaking API changes. See the full list of changes along with step-by-step guides to upgrade. https://documentation.onesignal.com/docs/mobile-2020-api-migration-guide

    ❓ Please provide feedback and bug reports with the beta version included in the title to this repo's issue tracker. https://github.com/OneSignal/OneSignal-Flutter-SDK/issues

    Some highlights for this release

    • Fix launch URL always returning null on Android https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/398
    • Upgrade from Android version 4.3.3 to 4.4.0
      • See full release notes https://github.com/OneSignal/OneSignal-Android-SDK/releases
    • Upgrade from iOS version 3.4.3 to 3.4.4
      • See full release notes https://github.com/OneSignal/OneSignal-iOS-SDK/releases
    • Update pod file to use XCFramework
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-beta3(Apr 30, 2021)

    Major Release 3.0.0 Beta3🛠️

    ⚠️ This is a major beta release that contains breaking API changes. See the full list of changes along with step-by-step guides to upgrade. https://documentation.onesignal.com/docs/mobile-2020-api-migration-guide

    ❓ Please provide feedback and bug reports with the beta version included in the title to this repo's issue tracker. https://github.com/OneSignal/OneSignal-Flutter-SDK/issues

    Some highlights for this release

    • Fix notification parsing #384
    • Improve Flutter static analysis #385
    • Upgrade from Android version 4.3.0 to 4.3.3
      • See full release notes https://github.com/OneSignal/OneSignal-Android-SDK/releases
    • Upgrade from iOS version 3.4.0 to 3.4.3
      • See full release notes https://github.com/OneSignal/OneSignal-iOS-SDK/releases
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-beta2(Apr 14, 2021)

    Major Release 3.0.0 Beta2🛠️

    ⚠️ This is a major beta release that contains breaking API changes. See the full list of changes along with step-by-step guides to upgrade. https://documentation.onesignal.com/docs/mobile-2020-api-migration-guide

    ❓ Please provide feedback and bug reports with the beta version included in the title to this repo's issue tracker. https://github.com/OneSignal/OneSignal-Flutter-SDK/issues

    Some highlights for this release

    • Migration to Flutter 2, Null safety support
      • PR https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/370
    • Fix Notification Open Handler not being call on Android and iOS
      • PR https://github.com/OneSignal/OneSignal-Flutter-SDK/pull/375
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-beta1(Mar 3, 2021)

    Major Release 3.0.0 Beta1🛠️

    ⚠️ This is a major beta release which contains breaking API changes. See the full list of changes along with step-by-step guides to upgrade. https://documentation.onesignal.com/docs/mobile-2020-api-migration-guide

    ❓ Please provide feedback and bug reports with the beta version included in the title to this repo's issue tracker. https://github.com/OneSignal/OneSignal-Flutter-SDK/issues

    Source code(tar.gz)
    Source code(zip)
  • 2.6.3(Mar 3, 2021)

  • 2.6.2(Dec 5, 2020)

    Identity Verification

    Highly Recommended

    OneSignal supports a higher security method known as Identity Verification. This helps prevent users from impersonating one another by generating a user-specific token on your server, if you have one.

    Enabling Identity Verification applies to:

    • Adding Email and SMS records into OneSignal AND associated tags.
    • Setting external_user_id for any record across all channels (Push, Email, SMS)

    Reference

    Updated Native Android (3.15.6) and iOS (2.16.1) SDKs

    Source code(tar.gz)
    Source code(zip)
  • 2.6.1(Aug 25, 2020)

  • 2.6.0(Jul 8, 2020)

  • 2.5.0(Jun 12, 2020)

  • 2.4.1(Apr 29, 2020)

  • 2.4.0(Apr 9, 2020)

Owner
OneSignal
Multi-platform Push Notification Delivery & Analytics
OneSignal
Google places picker plugin for flutter. Opens up the google places picker on ios and android returning the chosen place back to the flutter app.

flutter_places_dialog Shows a places picker dialog in ios and android, returning the data in the places picker to the app. Getting Started Generate yo

null 44 Dec 6, 2022
A Flutter Plugin for Requesting and Writing Reviews for the App Store and Google Play.

app_review Description Flutter Plugin for Requesting and Writing Reviews in Google Play and the App Store. Apps have to be published for the app to be

Rody Davis 37 Oct 10, 2022
Flutter push notification app - Flutter-Firebase Push Notification App with FCM

A simple Flutter-Firebase "Push_Notification" application.

Ahmer Iqbal 9 Nov 4, 2022
Push Notification service for anime episodes and news. The episode updates will be based on actual upload on the internet and NOT Japan tv schedule as other apps do.

Quantz Push Notification service for anime episodes and news. Features Sub and dub - get notified with latest anime episodes on the internet. Ongoing

null 18 Nov 21, 2022
'Minimalistic Push' is a minimalistic push-up application now built with Flutter.

Minimalistic Push Minimalistic Push is one of the simplest push-up trackers out there. You can track your push-ups in the training mode and see an ove

Jonas Poxleitner 10 Dec 29, 2022
Flutter package for makes it easy to integrate dialogflow and support dialogflow v2

Dialogflow v1 & v2 for Flutter apps. ❤️ Star ❤️ the repo to support the project. Thanks! A new Flutter package. Example Awesome Tutorials Flutter and

Victor Alfonso Rodas Oña 207 Dec 7, 2022
The flutter_ibm_watson makes it easy to integrate IBM Watson

Flutter Ibm Watson Installation Add this to your package's pubspec.yaml file: dependencies: flutter_ibm_watson: ^0.0.1 You can install packages fro

Victor Alfonso Rodas Oña 27 Nov 4, 2022
Toor makes service locators compile-time safe and easy to manage

?? What is Toor Toor makes service locators compile-time safe and easy to manage. ?? Getting Started Define your dependencies somewhere in the project

Arshak Aghakaryan 5 Jul 25, 2022
Push notification in Flutter using Firebase.

push_notification [1]Firebase Integration in Flutter project. [2]Parsing message in the app using on Message Stream while the app is foreground. [3]Ha

hebaabdelwhab 2 Dec 29, 2021
Flutter Dropdown Alert help to notify to user when success, warning or error like push notification

flutter_dropdown_alert A dropdown alert package for flutter Dropdown alert will help to notify to user when you call api success, error or something l

Tuan Van Le 12 Dec 17, 2022
A push notification application for multiple platforms

notifi.it App | Website | Backend Run locally create an .env with the example content SERVER_KEY=Hu2J7b7xA8MndeNS KEY_STORE=notifi-local DEV=true TLS=

Maximilian Mitchell 34 Nov 3, 2022
Ready Made Code for Firebase Push Notification

Ready Made Code for Firebase Push Notification

HM Athir 2 Mar 3, 2022
Flutter: Integrate Google Maps Tutorial Flutter: Integrate Google Maps Tutorial

Flutter Google Maps APP Show some ❤️ and star the repo to support the project A new Flutter project. Getting Started Flutter Project Add this to your

Pawan Kumar 69 Oct 27, 2022
Home-Service-App - Home Service App Built With Flutter

Home-Service-App Home Service App Sample Images

Justin Roy 2 Sep 4, 2022
Flutter makes it easy and fast to build beautiful apps for mobile and beyond

Flutter is Google's SDK for crafting beautiful, fast user experiences for mobile, web, and desktop from a single codebase. Flutter works with existing

Flutter 148.2k Jan 8, 2023
Our application, MyArmyPal serves to be an all in one service for our service men.

Our application, MyArmyPal serves to be an all in one service for our service men. It seeks to provide convenience and useful features just one tap away. Its main features include an IPPT Calculator, reservist checklist, customized IPPT training plan according to the user's current fitness level and a canteen order pick up service in all army camps. We are also implementing an anytime Eliss system using computer vision for users to check on their push up form easily.

Poh Wei Pin 3 Jun 17, 2022
[WIP] A free and decentralized Uber-like service powered by NKN

nRide A free and decentralized Uber-like service powered by NKN For more information please visit our project website This project is intended as a su

Martin Arrivets 3 Sep 29, 2021
Flutter plugin to simply integrate Agora Video Calling or Live Video Streaming to your app with just a few lines of code.

Agora UI Kit for Flutter Instantly integrate Agora video calling or video streaming into your Flutter application. Getting started Requirements An Ago

Agora.io Community 106 Dec 16, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app window.

bitsdojo_window A Flutter package that makes it easy to customize and work with your Flutter desktop app window on Windows, macOS and Linux. Watch the

Bits Dojo 606 Dec 27, 2022