由于我没有Mac和iPhone,我唯一的选择是使用Ionic Cloud来构建我的原生二进制文件。但是,首先我想玩它并看看它如何与android构建一起使用。
我的应用使用https://github.com/fechanique/cordova-plugin-fcm
所以我可以使用ionic cordova build android
构建应用程序并在我的模拟器上运行它没有任何问题。但是,如果我执行ionic package build android
然后ionic package info
,我会收到构建失败的消息。
使用ionic package BUILD_ID
检查此失败我收到此消息:
Error: cordova-plugin-fcm: You have installed platform android but file 'google-services.json' was not found in your Cordova project root folder.
所以,看起来我的google-services.json
没有上传到云端。所以搜索我发现很少有相同问题的人发帖,但没有一个人为我提供解决方案。我也发现了这个:
https://cordova.apache.org/docs/en/latest/config_ref/index.html#resource-file
所以我试图告诉离子将这个google-services.json文件包含在这样的包中:
<?xml version='1.0' encoding='utf-8'?>
<widget id="me.citybeep.partnerapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<!-- ... -->
<platform name="android">
<!-- ... -->
<resource-file src="google-services.json" target="platforms/android/google-services.json" />
</platform>
<!-- ... -->
<engine name="android" spec="^6.2.3" />
<plugin name="cordova-plugin-device" spec="^1.1.4" />
<plugin name="cordova-plugin-fcm" spec="^2.1.2" />
<plugin name="cordova-plugin-splashscreen" spec="^4.0.3" />
<plugin name="cordova-plugin-statusbar" spec="^2.2.2" />
<plugin name="cordova-plugin-whitelist" spec="^1.3.1" />
<plugin name="cordova-sqlite-storage" spec="^2.0.4" />
<plugin name="de.appplant.cordova.plugin.local-notification" spec="^0.8.5" />
<plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
</widget>
还试过这个:
<resource-file src="google-services.json" target="google-services.json" />
但我们没有成功,但是现在我得到了另一条消息:
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: me.citybeep.partnerapp
Name: City_Beep_Partner
Activity: MainActivity
Android target: android-25
Subproject Path: CordovaLib
Android project created with cordova-android@6.2.3
Error: Source path does not exist: google-services.json
我认为这个错误只是google-services.json没有上传。
我现在真的依赖这个插件,目前使用Ionic Push通知不是一个选项......
所以有没有办法告诉ionic在上传到云(以及.plist文件)时包含这个google-services.json文件。我再说一遍,google-services.json文件或我的firebase项目没有问题,因为在我的机器上执行构建时一切正常。
答案 0 :(得分:0)
我尝试了几种解决方案,但对我唯一可行的是指定 src 和 target google-services.json的路径。 根据您的情况更改
<resource-file src="google-services.json" target="platforms/android/google-services.json" />
到
<resource-file src="platforms/android/google-services.json" target="platforms/android/google-services.json" />
这应该有效。