网络调用不适用于使用Unity3D构建的已发布版本OSX应用程序

时间:2016-04-06 08:51:49

标签: macos unity3d

我最近使用Unity3D构建了一个Mac应用程序 在那里我们向第三方服务器进行网络呼叫。

我在Unity C#中的代码:

    void someFunc(){
         Dictionary<string, object> jsonDict = new Dictionary<string, object>();
         jsonDict.Add("$Param1", Token);
         jsonDict.Add("$Param2", DistinctID);
         jsonDict.Add("$Param3", propsDict);
         string jsonStr = JsonMapper.ToJson(jsonDict);
         if(EnableLogging)
             Debug.Log("Sending data: " + jsonStr);
         string jsonStr64 = EncodeTo64(jsonStr);
         string url = string.Format(API_URL_ENGAGE, jsonStr64);

         StartCoroutine(SendDataCoroutine(url));
    }


    IEnumerator SendDataCoroutine(string url)
    {
         WWW www = new WWW(url);
         yield return www;
         if (www.error != null) {
            Debug.LogWarning ("Error sending Data: " + www.error);
         }else if (www.text.Trim () == "0") {
            Debug.LogWarning ("Error on processing Data: " + www.text);
         } else if (EnableLogging) {
            Debug.Log ("processed Data: " + www.text);
         }
    }

在开发和QA的同时它工作正常, 在Mac App Store中的生产版本(设置UseMacAppStoreValidation - &gt; True)中,它无法正常工作。

  

Mac app是
   - 沙盒,
   - 为访问NETWORK_CLIENT,CAMERA,USER_SELECTED_FILES而添加的权利。

Entitlement File: 
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict>

你们中的任何人能否帮助我们找出原因? 任何帮助将不胜感激。期待加快回应。

  • 解决上述问题

避免使用WWW,而是使用HTTPWebRequest
这解决了我的问题。

1 个答案:

答案 0 :(得分:-1)

也许您正在尝试访问非安全 URL,但现在在Android 9中已禁止使用该URL