From a2c48103d171556bd6294fb319127e5b5c189113 Mon Sep 17 00:00:00 2001 From: Michel Felipe Date: Fri, 5 Jul 2019 12:41:47 -0300 Subject: [PATCH] [Android] Rename gradle variable to GRADLE_TOOLS_VERSION Fix conflitc with GRADLE_VERSION environment variable of jitpack --- LICENSE | 2 - android/build.gradle | 2 + ...-plugin-fcm-with-dependecy-updated.podspec | 157 ++++++++++++++++++ package.json | 2 +- plugin.xml | 6 +- src/android/FCMPlugin.gradle | 40 ++++- src/ios/{ => Assets}/GoogleService-Info.plist | 0 7 files changed, 195 insertions(+), 14 deletions(-) create mode 100644 cordova-plugin-fcm-with-dependecy-updated.podspec rename src/ios/{ => Assets}/GoogleService-Info.plist (100%) diff --git a/LICENSE b/LICENSE index d255ba7fd..9cf106272 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,5 @@ MIT License -Copyright (c) 2019 André Augusto Tissot - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights diff --git a/android/build.gradle b/android/build.gradle index d2af2c23c..f04375564 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -25,6 +25,8 @@ allprojects { ext { FCM_CORE_VERSION = System.getenv("FCM_CORE_VERSION") ?: "16.0.9" FCM_VERSION = System.getenv("FCM_VERSION") ?: "18.0.0" + GRADLE_TOOLS_VERSION = '3.4.1' + GOOGLE_SERVICES_VERSION = '4.1.0' supportLibraryVersion = '28.0.0' } diff --git a/cordova-plugin-fcm-with-dependecy-updated.podspec b/cordova-plugin-fcm-with-dependecy-updated.podspec new file mode 100644 index 000000000..2ea485504 --- /dev/null +++ b/cordova-plugin-fcm-with-dependecy-updated.podspec @@ -0,0 +1,157 @@ +# +# Be sure to run `pod spec lint cordova-plugin-fcm-with-dependecy-updated.podspec' to ensure this is a +# valid spec and to remove all comments including this before submitting the spec. +# +# To learn more about Podspec attributes see https://docs.cocoapods.org/specification.html +# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ +# + +Pod::Spec.new do |spec| + + # ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # These will help people to find your library, and whilst it + # can feel like a chore to fill in it's definitely to your advantage. The + # summary should be tweet-length, and the description more in depth. + # + + spec.name = "cordova-plugin-fcm-with-dependecy-updated" + spec.version = "2.4.4" + spec.summary = "Google FCM Push Notifications Cordova Plugin" + + # This description is used to generate tags and improve search results. + # * Think: What does it do? Why did you write it? What is the focus? + # * Try to keep it short, snappy and to the point. + # * Write the description between the DESC delimiters below. + # * Finally, don't worry about the indent, CocoaPods strips it! + spec.description = <<-DESC + Extremely easy plug&play push notification plugin for Cordova applications with Google Firebase FCM. + DESC + + spec.homepage = "https://github.com/SerproLivre/cordova-plugin-fcm-with-dependecy-updated" + # spec.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif" + + + # ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Licensing your code is important. See https://choosealicense.com for more info. + # CocoaPods will detect a license file if there is a named LICENSE* + # Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'. + # + + spec.license = { :type => "MIT", :file => "LICENSE" } + + + # ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Specify the authors of the library, with email addresses. Email addresses + # of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also + # accepts just a name if you'd rather not provide an email address. + # + # Specify a social_media_url where others can refer to, for example a twitter + # profile URL. + # + + spec.author = { "Michel Felipe" => "mfelipeof@gmail.com" } + # Or just: spec.author = "" + # spec.authors = { "" => "mfelipeof@gmail.com" } + # spec.social_media_url = "https://twitter.com/" + + # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # If this Pod runs only on iOS or OS X, then specify the platform and + # the deployment target. You can optionally include the target after the platform. + # + + spec.platform = :ios + # spec.platform = :ios + # spec.platform = :ios, "5.0" + + # When using multiple platforms + # spec.ios.deployment_target = "5.0" + # spec.osx.deployment_target = "10.7" + # spec.watchos.deployment_target = "2.0" + # spec.tvos.deployment_target = "9.0" + + + # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Specify the location from where the source should be retrieved. + # Supports git, hg, bzr, svn and HTTP. + # + + spec.source = { :git => "https://github.com/SerproLivre/cordova-plugin-fcm-with-dependecy-updated.git", :tag => "v#{spec.version}" } + + + # ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # CocoaPods is smart about how it includes source code. For source files + # giving a folder will include any swift, h, m, mm, c & cpp files. + # For header files it will include any header in the folder. + # Not including the public_header_files will make all headers public. + # + + # spec.source_files = "Classes", "Classes/**/*.{h,m}" + spec.source_files = "src/ios/*.{h,m}", "src/ios/firebase/*.{h,m}" + spec.exclude_files = "Classes/Exclude" + + # spec.public_header_files = "Classes/**/*.h" + + + # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # A list of resources included with the Pod. These are copied into the + # target bundle with a build phase script. Anything else will be cleaned. + # You can preserve files from being cleaned, please don't preserve + # non-essential files like tests, examples and documentation. + # + + # Reference: https://stackoverflow.com/questions/36797639/including-a-plist-file-with-my-cocoapod + spec.resource_bundle = {"GoogleService" => "src/ios/Assets/*" } + # spec.resource = "icon.png" + # spec.resources = "Resources/*.png" + + # spec.preserve_paths = "FilesToSave", "MoreFilesToSave" + + + # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Link your library with frameworks, or libraries. Libraries do not include + # the lib prefix of their name. + # + + spec.frameworks = "AddressBook", "Security", "UIKit" + spec.vendored_frameworks = [ + "src/ios/firebase/FirebaseAnalytics.framework", + "src/ios/firebase/FirebaseCore.framework", + "src/ios/firebase/FirebaseInstanceID.framework", + "src/ios/firebase/FirebaseMessaging.framework", + "src/ios/firebase/GoogleInterchangeUtilities.framework", + "src/ios/firebase/GoogleIPhoneUtilities.framework", + "src/ios/firebase/GoogleSymbolUtilities.framework", + "src/ios/firebase/GoogleUtilities.framework" + ] + # spec.framework = "SomeFramework" + # spec.frameworks = "SomeFramework", "AnotherFramework" + + spec.libraries = "sqlite3", "z", "c++" + # spec.library = "iconv" + # spec.libraries = "iconv", "xml2" + + + # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # If your library depends on compiler flags you can set them in the xcconfig hash + # where they will only apply to your library. If you depend on other Podspecs + # you can include multiple dependencies to ensure it works. + + # spec.requires_arc = true + + # spec.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" } + spec.dependency "Cordova", ">= 3.0.0" + + # TODO: Migrate to use Core cocoapods Firebase dependencies + # spec.dependency "Firebase/Core" + # spec.dependency "Firebase/Messaging" + +end diff --git a/package.json b/package.json index 2182cdb4c..e2685aaec 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "2.4.3", + "version": "2.4.9", "name": "cordova-plugin-fcm-with-dependecy-updated", "cordova_name": "Cordova FCM Push Plugin", "description": "Google Firebase Cloud Messaging Cordova Push Plugin fork with dependecy updated", diff --git a/plugin.xml b/plugin.xml index 50916479c..566711d52 100644 --- a/plugin.xml +++ b/plugin.xml @@ -17,7 +17,7 @@ specific language governing permissions and limitations under the License. --> - + Cordova FCM Push Plugin Google Firebase Cloud Messaging Cordova Push Plugin fork with dependecy updated MIT @@ -36,6 +36,8 @@ + + @@ -87,7 +89,7 @@ production - + diff --git a/src/android/FCMPlugin.gradle b/src/android/FCMPlugin.gradle index 7206a9f5f..d72f3b4f6 100644 --- a/src/android/FCMPlugin.gradle +++ b/src/android/FCMPlugin.gradle @@ -1,15 +1,30 @@ -def FCM_CORE_VERSION = System.getenv("FCM_CORE_VERSION") ?: rootProject.ext.FCM_CORE_VERSION -def FCM_VERSION = System.getenv("FCM_VERSION") ?: rootProject.ext.FCM_VERSION +def FCM_CORE_VERSION = System.getenv("FCM_CORE_VERSION") ?: rootProject.hasProperty("FCM_CORE_VERSION") ? rootProject.ext.FCM_CORE_VERSION : '16.0.9' +def FCM_VERSION = System.getenv("FCM_VERSION") ?: rootProject.hasProperty("FCM_VERSION") ? rootProject.ext.FCM_VERSION : '18.0.0' buildscript { + ext { + GRADLE_TOOLS_VERSION = System.getenv("GRADLE_TOOLS_VERSION") ?: rootProject.hasProperty("GRADLE_TOOLS_VERSION") ? rootProject.ext.GRADLE_TOOLS_VERSION : '2.3.+' + GOOGLE_SERVICES_VERSION = System.getenv("GOOGLE_SERVICES_VERSION") ?: rootProject.hasProperty("GOOGLE_SERVICES_VERSION") ? rootProject.ext.GOOGLE_SERVICES_VERSION : '3.0.0' + + ext.gradleNumberVersion = GRADLE_TOOLS_VERSION.substring(0, GRADLE_TOOLS_VERSION.lastIndexOf(".")).toFloat() + } repositories { mavenCentral() jcenter() mavenLocal() - google() + if (gradleNumberVersion >= 3.4f) { + google() + } } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + /** + * PS: Avoid use "GRADLE_VERSION" because jitpack + * set this like a environment variable + */ + print("FCM PLUGIN GRADLE TOOLS VERSION: ${GRADLE_TOOLS_VERSION}") + + classpath "com.android.tools.build:gradle:${GRADLE_TOOLS_VERSION}" + /** * Reference: https://github.com/google/play-services-plugins/issues/22 * @@ -18,18 +33,25 @@ buildscript { * instead of id(string) */ - classpath 'com.google.gms:google-services:4.1.0' + classpath "com.google.gms:google-services:${GOOGLE_SERVICES_VERSION}" } } repositories { mavenCentral() jcenter() - google() + if (gradleNumberVersion >= 3.4f) { + google() + } } dependencies { - implementation "com.google.firebase:firebase-core:${FCM_CORE_VERSION}" - implementation "com.google.firebase:firebase-messaging:${FCM_VERSION}" + if (gradleNumberVersion >= 3.4f) { + implementation "com.google.firebase:firebase-core:${FCM_CORE_VERSION}" + implementation "com.google.firebase:firebase-messaging:${FCM_VERSION}" + } else { + compile "com.google.firebase:firebase-core:${FCM_CORE_VERSION}" + compile "com.google.firebase:firebase-messaging:${FCM_VERSION}" + } } // apply plugin: 'com.google.gms.google-services' // class must be used instead of id(string) to be able to apply plugin from non-root gradle file -apply plugin: com.google.gms.googleservices.GoogleServicesPlugin \ No newline at end of file +apply plugin: com.google.gms.googleservices.GoogleServicesPlugin diff --git a/src/ios/GoogleService-Info.plist b/src/ios/Assets/GoogleService-Info.plist similarity index 100% rename from src/ios/GoogleService-Info.plist rename to src/ios/Assets/GoogleService-Info.plist