使用 ionic 包构建发送 google-services.json

问题描述 投票:0回答:2

由于我没有 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

所以我试图告诉 ionic 将这个 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 [email protected]
Error: Source path does not exist: google-services.json

我认为这个错误只是 google-services.json 没有上传。

我现在真的非常依赖这个插件,并且目前无法选择使用 Ionic Push 通知...

那么有什么方法可以告诉 ionic 在上传到云时包含这个 google-services.json 文件(以及 .plist 文件)。我再说一遍,google-services.json 文件或我的 firebase 项目都没有问题,因为在我的计算机上执行构建时一切正常。

ios cordova ionic-framework ionic2 ionic-cloud
2个回答
0
投票

我尝试了几种解决方案,但唯一对我有用的解决方案是使用 google-services.json 的相对路径指定 srctarget 。 根据你的情况改变

    <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" />

这应该有效。


0
投票

检查根文件夹中是否也有 google-services.json 文件。 这段代码是在运行时自动将你的根文件移动到platform / android / app中

<resource-file src="google-services.json" target="app/google-services.json" />

© www.soinside.com 2019 - 2024. All rights reserved.