为啥我将 zip 文件上传到 phonegap 服务时出现错误?

Posted

技术标签:

【中文标题】为啥我将 zip 文件上传到 phonegap 服务时出现错误?【英文标题】:Why I get error when I upload zip file to phonegap service?为什么我将 zip 文件上传到 phonegap 服务时出现错误? 【发布时间】:2017-11-05 23:49:20 【问题描述】:

我尝试使用 phonegap 服务创建 apk 文件。

这是我项目中的 config.xml 文件:

<?xml version='1.1' encoding='utf-8'?>
<widget id="il.co.geomind.gilgalplay" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>sites</name>
    <description>
        app for sites mapping
    </description>
    <author email="jacklondon@ddd.com" href="">

    </author>
    <content src="index.html" />
    <access origin="*" />
    <preference name="Orientation" value="portrait" />
    <preference name="permissions" value="none"/>

    <feature name="http://api.phonegap.com/1.0/camera"/>
    <feature name="http://api.phonegap.com/1.0/geolocation"/>

    <icon src="images/icons/ldpi.png" gap:platform="android" gap:qualifier="ldpi" />
    <icon src="images/icons/mdpi.png" gap:platform="android" gap:qualifier="mdpi" />
    <icon src="images/icons/hdpi.png" gap:platform="android" gap:qualifier="hdpi" />
    <icon src="images/icons/xhdpi.png" gap:platform="android" gap:qualifier="xhdpi" />
    <icon src="images/icons/xxhdpi.png" gap:platform="android" gap:qualifier="xxhdpi" />
    <icon src="images/icons/xxxhdpi.png" gap:platform="android" gap:qualifier="xxxhdpi" />

    <!-- iPhone / iPod Touch  -->
    <icon src="images/icons/mdpi.png" gap:platform="ios"   />
    <icon src="images/icons/xhdpi.png" gap:platform="ios"   />

    <!-- Settings Icon -->
    <icon src="images/icons/ldpi.png" gap:platform="ios"   />
    <icon src="images/icons/mdpi.png" gap:platform="ios"   />

    <!-- Spotlight Icon -->
    <icon src="images/icons/ldpi.png" gap:platform="ios"   />
    <icon src="images/icons/mdpi.png" gap:platform="ios"   />

  <gap:platform name="android" />

  <gap:splash src="images/icons/screen-xhdpi.png"/>

  <gap:plugin name="cordova-plugin-whitelist" source="npm" />
  <gap:plugin name="org.apache.cordova.camera" version="0.3.6" source="npm" />
  <gap:plugin name="org.apache.cordova.device" version="0.3.0" source="npm"/>
  <gap:plugin name="com.phonegap.plugins.pushplugin" version="2.5.0" source="npm"/>
  <gap:plugin name="org.apache.cordova.geolocation" version="0.3.12" source="npm"/>

</widget>

我从项目制作 zip 文件并上传到 phonegap 服务我收到此错误:

Error - The following plugin, plugin version or a dependancy of this plugin is not on npm: com.phonegap.plugins.pushplugin@2.5.0 

知道我为什么会出现上述错误以及如何解决它吗?

【问题讨论】:

【参考方案1】:

通过将源设置为 Node Package Manager (source="npm"),您是在告诉 PhoneGap Build 从该位置检索插件,但“com.phonegap.plugins.pushplugin, version 2.5.0”不是t 实际上在那里。

如果我们查看npmjs.com for the push plugin,有两个插件搜索结果,但正如另一个答案中所述,它已经超过 2 年没有更新,甚至被标记为“-deprecated”。

假设您想要一个推送通知插件,我建议您尝试找到一个官方的。为此,请从“cordova-plugin”开始搜索它们,再加上您要查找的任何内容:“cordova-plugin-push”。这导致了我to this one,这可能会起作用。

在您的 config.xml 文件中,像这样添加对它的引用:

<plugin name="cordova-plugin-push-notification" version="2.5.2" source="npm" />

我使用的是 2.5.2 版本,因为那是最新版本:

如需进一步参考,请参阅我在using NPM with PhoneGap Build 上的指南。

【讨论】:

【参考方案2】:

您似乎正在尝试使用 https://github.com/phonegap-build/PushPlugin,它似乎已被弃用,并且在 2 年内没有发布过。

看来你应该试试https://github.com/phonegap/phonegap-plugin-push 来代替它

【讨论】:

知道我是如何使用它的吗?在我的项目中如何以及在哪里引用? 插件有一个示例应用程序,您可以从模板创建,因此您最好尝试一下:phonegap create my-app --template phonegap-template-push (github.com/phonegap/phonegap-plugin-push/blob/master/docs/… ) 我不能只将特定的 js 文件安装到我的项目中并在 config.xml 文件中引用。我已经有一个项目我只需要创建 apk 文件吗?

以上是关于为啥我将 zip 文件上传到 phonegap 服务时出现错误?的主要内容,如果未能解决你的问题,请参考以下文章

当我上传新的 zip 文件时,Phonegap 构建拒绝更新我的应用程序

Phonegap(应用程序错误...发生网络错误)

构建phonegap应用插件错误

使用 Phonegap 以编程方式将文件从 SD 卡上传到远程服务器

为啥上传到 S3 的文件的内容类型为 application/octet-stream,除非我将文件命名为 .html?

使用 REST API 上传到 Azure Blob 存储时,Zip 档案损坏