Meteor / Cordova / Phonegap iOS应用程序在部署到生产时无法正常工作

时间:2014-10-08 20:26:03

标签: ios cordova deployment meteor

我一直在尝试启动并运行Meteor / Cordova / Phonegap iOS应用。我按照此处提供的文档:https://github.com/meteor/meteor/wiki/Meteor-Cordova-Phonegap-integration

为了简单起见,我只是测试示例排行榜流星项目。当我按照上面链接中提到的步骤操作时,我可以在iOS模拟器中运行应用程序,并使用以下任一命令通过xcode直接在设备上运行:

  流星跑ios

  

meteor run ios-device --mobile-port 10.0.1.2:3000 -p 10.0.1.2:3000

为了测试生产环境,我已将应用程序直接部署到meteor.com

  

meteor deploy [my-app-name]

按照构建说明,我在构建命令中指定远程服务器的主机和端口:

  

meteor build ../buildfolder -p [my-app-name] .meteor.com:80

当我尝试通过生成的xcode项目运行应用程序时(在模拟器中),当应用程序启动时,我只看到空白屏幕。 xcode的记录器中没有错误,但输出的内容如下:

16:01:41.583 [CDVTimer][file] 6.641030ms
16:01:41.607 [CDVTimer][statusbar] 23.925006ms
16:01:41.607 [CDVTimer][TotalPluginStartup] 30.839026ms
16:01:41.709 Resetting plugins due to page load.
16:01:41.739 Finished load of: (snip)
16:01:41.791 Starting the server on port 40539
16:01:41.792 Setting document root: <snip>
16:01:41.792 Started httpd on port 40539
16:01:41:792 staffutility[49019:607] HTTPServer: Started HTTP server on port 40539
16:01:41.792 addresses: {
    "en1/ipv4" = "10.0.1.12";
    "en1/ipv6" = "fe80::7ec3:a1ff:fea4:49c5";
    "lo0/ipv4" = "127.0.0.1";
    "lo0/ipv6" = "fe80::1";
    "vboxnet0/ipv4" = "192.168.56.1";
}
16:01:41.794 Resetting plugins due to page load.

注意:我还测试了在我自己的EC2实例上使用Meteor Up:https://github.com/arunoda/meteor-up部署流星项目,结果完全相同。 iOS应用程序只是坐在那里,有一个空白的白色屏幕。 (通过浏览器访问网址工作正常)

知道问题可能是什么?

3 个答案:

答案 0 :(得分:2)

评论的声誉不足,因此发布了答案。

有同样的问题,但我能让它工作的唯一方法是手动更改Xcode中的host:port。构建完成后,在xcode中打开项目,转到staging&gt; www&gt;的index.html。

在以下块中,删除端口号使应用再次运行。

__meteor_runtime_config__ = {"meteorRelease":"METEOR@0.9.3.1",
"ROOT_URL":"http://[my-app-name].meteor.com",
"ROOT_URL_PATH_PREFIX":"",
"DDP_DEFAULT_CONNECTION_URL":"http://[my-app-name].meteor.com",
"autoupdateVersionCordova":"426a072de258af04658e2585485c277b8aac18a3"};

我不完全理解为什么,但我尝试通过console.logging在部署到meteor.com后检查我的应用程序的端口号。部署后,端口号似乎是随机的。   我期待有人在部署时更加轻松,而不必包含端口号。

答案 1 :(得分:2)

转到您的主目录(不是您的应用目录)

$HOME/ rm -rf.meteor

重新运行该应用程序

答案 2 :(得分:0)

在更新到流星0.9.4(显然包括改进的Cordova / Phonegap支持)之后,我的问题已经解决了。