UnityWebRequest无法在iOS中运行

时间:2016-10-16 11:40:33

标签: ios xcode http unity3d

https://docs.unity3d.com/Manual/UnityWebRequest.html上给出的示例适用于Windows桌面,Windows Mobile,Android,甚至可以按预期在iOS编辑器中使用。但是当我将应用程序发布到Apple App Store时,它无法连接到互联网。与其他平台不同,没有明显的延迟,并且在尝试请求时似乎立即失败。

错误是:

  

未知错误

我需要配置XCode项目以允许iOS应用程序连接到互联网吗?

对于它的价值,这里是进行调用的源代码:

    IEnumerator SyncRequest(string data, Action<string> responseHandler)
{
    Debug.Log("Requesting " + data);

    UnityWebRequest www = UnityWebRequest.Get(baseurl + "/api-voteoptions.php?" + data);

    yield return www.Send();

    if (www.isError) // <-- Always true on published iOS app
    {
        string error = www.error; // <-- "Unknown Error"
        Debug.LogWarning(error);

        if (responseHandler != null)
        {
            responseHandler(error);
        }
    }
    else
    {
        string response = www.downloadHandler.text;
        Debug.Log(response);

        if (responseHandler != null)
        {
            responseHandler(response);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

找到解决方案。事实证明,我必须在Info.plist文件中指定我想要允许&#34;不安全&#34; iOS应用的http连接。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>just-an-example.com</key>
        <string></string>
    </dict>
</dict>

答案 1 :(得分:0)

IEnumerator loadingImage()
{
    string url = "http://picturekeyboardapps.in/UnityApp/CarStunt/getCarTextures.php";
    UnityWebRequest webrequest = UnityWebRequest.Get(url);
    yield return webrequest.SendWebRequest();
    if (webrequest.isNetworkError || webrequest.isHttpError)
    {
        print("Network Error"); // return Unkown Error IOS Mobile
    }
    else
    {
    }
}