1.安裝cordova-plugin-fcm plugin及@ionic-native/fcm
$ ionic cordova plugin add cordova-plugin-fcm $ npm install --save @ionic-native/fcm
2.執行ionic cordova build android會出現如下錯誤訊息
google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used
3.爬文許久發現https://firebase.google.com/docs/android/setup應是解答
1) 於platforms\android\build.gradle
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
}
}
allprojects {
// ...
repositories {
// ...
maven {
url "https://maven.google.com" // Google's Maven repository
}
}
}
2) plugins\cordova-plugin-fcm\FCMPlugin.gradle
classpath ‘com.google.gms:google-services:+’調整成classpath ‘com.google.gms:google-services:3.1.1’
buildscript {
repositories {
jcenter()
mavenLocal()
}
dependencies {
classpath 'com.android.tools.build:gradle:+'
classpath 'com.google.gms:google-services:3.1.1'
}
}
4.執行ionic cordova build android會出現如下錯誤訊息
* What went wrong: Execution failed for task ':app:mergeDebugResources'. Process 'command 'C:\Android\SDK\build-tools\23.0.1\aapt.exe'' finished with exit value 1 (state: FAILED) ...
5.最終參考這兩篇https://forum.ionicframework.com/t/google-services-version-conflict-maps-fcm/93695/9、https://stackoverflow.com/questions/35674066/errorexecution-failed-for-task-appprocessdebugresources-java-io-ioexcept調整如下設定
1) plugins\cordova-plugin-fcm\FCMPlugin.gradle
將以下兩行註記為不使用
// classpath 'com.google.gms:google-services:3.0.0' // apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
2) plugins\cordova-plugin-fcm\plugin.xml
調整以下兩行版本
<framework src="com.google.firebase:firebase-core:11.4.2″ />
<framework src="com.google.firebase:firebase-messaging:11.4.2″ />
3) 移除ionic cordova平台android
ionic cordova platform rm android
4) 再build android
ionic cordova build android
5) 於platforms\android\build.gradle
增加classpath ‘com.google.gms:google-services:3.1.1’
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:3.1.1'
}
}
allprojects {
// ...
repositories {
// ...
maven {
url "https://maven.google.com" // Google's Maven repository
}
}
}
6) 於platforms\android\build.gradle
最後一行加上
apply plugin: ‘com.google.gms.google-services’
7) 於platforms\android\build.gradle
依android tool目前最大的版本執行
compileSdkVersion 27
buildToolsVersion "27.0.0"
註1:原為
compileSdkVersion cdvcompileSdkVersion
buildToolsVersion cdvbuildToolsVersion
註2:android tool版本確認方式如下圖Android SDK Manager

