我正面临一个非常复杂的情况,其中Meteor
,mupx
和ROOT_URL
环境变量。
我正在使用带有 Facebook 登录的 React 开发流星 1.2.1 应用程序。在应用程序代码中设置 ROOT_URL 全局变量时,它在本地开发以及meteor run ios/android
.
然后我将应用程序部署到 Digital Ocean 服务器,mupx
并为 iOS 和 Android 构建一个meteor build ./build --server=http://xxxxxx.com
指向 Digital Ocean 服务器的版本。它在网络浏览器中运行良好,但是通过 iTunes 或 AppStore 将我的应用程序安装到 iOS 后,该应用程序在启动画面后立即卡在白屏,但仅在首次启动时。再一次,这仅在应用安装后发生一次。如果我关闭应用程序并重新打开它,它将正确加载并继续正常工作。同样的情况也发生在 Android 设备上。
这是我的文件:
**** settings.json ****
{
"rootUrl": "http://xxxxxx.com",
"facebook": {
"appId": "xxxxxxxxxxxxxxxxxxxxx",
"secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"loginStyle": "redirect"
},
}
**** mup.json ****
{
"servers": [
{
"host": "xxxxxx.com", // actual server
"username": "user",
"pem": "~/.ssh/pem.key",
"env": {}
}
],
"env": {
"PORT": 80,
"ROOT_URL": "http://xxxxxx.com"
},
"setupMongo": true,
"setupNode": true,
"nodeVersion": "0.10.40", // "0.10.43" for meteor-1.3
"setupPhantom": true,
"enableUploadProgressBar": true,
"appName": "xxxxxx",
"app": "../../app",
"deployCheckWaitTime": 60
}
**** lib/_global.js ****
ROOT_URL = Meteor.settings.rootUrl;
**** server/accounts.js ****
ServiceConfiguration.configurations.upsert(
{ service: "facebook" },
{
$set: {
appId: Meteor.settings.facebook.appId,
secret: Meteor.settings.facebook.secret,
loginStyle: Meteor.settings.facebook.loginStyle
}
}
);
我知道在这种情况下很难找到问题,但我猜它与Meteor
withROOT_URL
或mupx
. 我花了很长时间调试并发现问题实际上是由于ROOT_URL
变量而发生的。
PS:你会问我为什么要在应用程序代码中设置这个全局变量?那是因为accounts-facebook
成功登录后没有正确重定向,而是挂在空白的 Facebook 屏幕上。Meteor - Facebook 授权根本不起作用
如果我从应用内代码中删除 ROOT_URL,白屏问题就会消失,但是 facebook 登录不会正确重定向。假设 Facebook 已正确设置为Deauthorize Callback URL = http://xxxxxx.com/_oauth/facebook
.
PPS:也尝试将应用程序更新meteor v1.3-rc.13
为。一样。
任何帮助都感激不尽。