Meteor / Cordova应用程序无法下载manifest.json以与autoupdate一起使用。出了什么问题?

时间:2015-05-09 13:37:10

标签: ios cordova meteor

我正在开发Meteor和Cordova应用程序。我正在努力让热代码推动工作,并刚刚添加了appcache和autoupdate包。当在浏览器中查看时,Appcache和autoupdates正在工作,但是当检测到更改时,cordova应用程序似乎无法加载manifest.json(/__cordova/manifest.json)文件,因此不会发生自动更新。

以下是我在设备上运行时收到的日志消息:

    2015-05-09 09:21:41.326 Feminology[24781:5945164] METEOR CORDOVA DEBUG (autoupdate_cordova.js) Failed to download the manifest null <!DOCTYPE html>
<html manifest="/app.manifest">
<head>
  <link rel="stylesheet" type="text/css" class="__meteor-css__" href="/2c924c2df11aded4c2ddedd0919c5c00ab919f5f.css?meteor_css_resource=true">


<script type="text/javascript">__meteor_runtime_config__ = JSON.parse(decodeURIComponent("%7B%22meteorRelease%22%3A%22METEOR%401.1.0.2%22%2C%22ROOT_URL%22%3A%22https%3A%2F%2Ffeminology-app-staging.herokuapp.com%2F%22%2C%22ROOT_URL_PATH_PREFIX%22%3A%22%22%2C%22autoupdateVersion%22%3A%228%22%2C%22autoupdateVersionRefreshable%22%3A%228%22%2C%22autoupdateVersionCordova%22%3A%228%22%7D"));</script>

  <script type="text/javascript" src="/c9516dba541a4ba6acac011b9fee2e628f5603f6.js"></script>



<meta charset="UTF-8"/>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1">

    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">

    <link rel="stylesheet" href="/css/ratchet.css"/>
    <link rel="stylesheet" href="/css/ratchet-theme-ios.css" />

    <title>Feminology</title>
</head>
<body>

</body>
</html>

我认为Meteor服务器正在使用空的应用程序模板响应/__cordova/manifest.json。我正在使用铁:路由器,所以请求可能没有正确定向?

我应该在哪里调试此问题?或者更好的是,如何解决?

感谢。

2 个答案:

答案 0 :(得分:4)

我有完全相同的问题。 看来我正在部署应用程序(使用Mup)而没有针对android / ios平台,我正在另一台机器上构建移动应用程序,我添加了两个平台。结果是服务器没有为__cordova/manifest.json等移动应用创建所需的文件。

因此,您可能需要在部署服务器上运行以下命令并重新部署(如果您正在使用它,请重新运行mup deploy):

meteor add-platform android
meteor add-platform ios

不需要实际安装SDK,只需要定位平台即可。您将看到Mup将尝试构建移动应用程序,但由于未安装SDK,因此将跳过此步骤。

答案 1 :(得分:1)

快乐的日子。我修复了Heroku平台的问题。

问题出在我的buildpack中。流行的(jordansissel / heroku-buildpack-meteor,AdmitHub / meteor-buildpack-horse)在构建之前删除android和ios平台,以避免在服务器上编译移动应用程序。您可以在Heroku Dashboard > Activity > View build log中看到这种情况。

通过发出此命令,使用我的buildpack(从 horse 分叉)来解决这个问题,但不会删除平台:

heroku buildpacks:set https://github.com/Alveoli/meteor-buildpack-horse.git

感谢@Guillaume的指示。