我的国家/地区的应用程序连接问题

时间:2016-08-18 08:37:38

标签: ios titanium appcelerator review

我在钛工作室开发了一个应用程序,一切正常。至少在我的国家(葡萄牙)。当我将我的应用程序发送给Apple审核时,他们无法连接到具有我的应用程序所需信息的服务器。

这就是我连接服务器的方式:

function getData() {

    if (Ti.Network.networkType == Ti.Network.NETWORK_NONE) {
        var dialog = Ti.UI.createAlertDialog({
            ok : 'OK'
        });
        dialog.message = 'Check your Internet connection.';
        dialog.title = 'Alert';
        dialog.show();

    } else {
        var client = Ti.Network.createHTTPClient({
            onload : function(e) {
            },
            onerror : function(e) {
            },
            timeout : 30000
        });
        client.open("POST", 'http://approteiros.virtualweb.pt/site/ajax.php');
        client.send({
            action : 'my_action'
        });
    }
}

如果它在葡萄牙工作但不在美国工作会有什么问题?

我的TiApp.xml文件:

<key>NSAppTransportSecurity</key>
            <dict>
                <key>NSExceptionDomains</key>
                <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <true/>
                <key>NSExceptionMinimumTLSVersion</key>
                <string>TLSv1.2</string>
                <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
                <false/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <true/>
                <key>NSThirdPartyExceptionMinimumTLSVersion</key>
                <string>TLSv1.2</string>
                <key>NSRequiresCertificateTransparency</key>
            <false/>
        </dict>
    </dict>

我已将此添加到我的XML文件中。

1 个答案:

答案 0 :(得分:1)

从美国东海岸,ping到您的服务器大约是328毫秒,为您提供一个参考点。

  1. Apple的建议已经从过去的建议改为检查连接然后拨打电话。现在他们建议解雇电话,如果失败,请从那里调整。
  2. 您的服务器也未设置为IPv6。 Apple开始要求APPS在6月份仅在ipv6网络上运行,并期望他们最终也开始测试服务器。
  3. 还预计到2016年底苹果需要与api服务器建立HTTPS连接。
  4. 所以,尽管如此,让我们从#2开始。您的代码段显示了非ssl网址,您是否在tiapp.xml的<ios>部分添加了应用传输安全例外?

    我们的大量客户使用AWS进行托管。即使在美国各地,从一个海岸到另一个海岸的连接也可能与连接自己的海岸有不同的体验。

    在我们的一些应用中,我们添加了2个功能。

    1. 设置一个基本超时,我们默认为10000毫秒(你的30000毫秒应该足够了)。在每次XHR超时时,我们将其增加5000。

    2. 我们要做的第二件事是根据设备报告的时区偏移调整默认值。因此,如果服务器是基于美国的,对于美国大陆的5个可能的时区(为夏令时添加一个),我们设置合理的超时10000,然后对于所有其他时间,我们从25000开始。

      < / LI>