2
https://docs.unity3d.com/Manual/UnityWebRequest.html에 주어진 예제는 Windows 데스크톱, Windows Mobile, Android 및 iOS 편집기에서도 예상대로 작동합니다. 하지만 애플 앱 스토어에 앱을 게시하면 인터넷에 연결되지 않습니다. 다른 플랫폼과 달리 눈에 띄는 지연은 없으며 요청이 시도 될 때 즉시 실패하는 것으로 보입니다.UnityWebRequest가 iOS에서 작동하지 않습니다.
오류 :
알 수없는 오류
내가 iOS 앱이 인터넷에 연결할 수 있도록하는 Xcode 프로젝트를 구성 할 필요가 특별한 방법이 있나요?
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);
}
}
}
이것은 무엇이든 가능합니다. 나는 귀하의 서버에 문제가 있거나 요청을 보내는 url에 문제가있을 수 있습니다. 불행히도 유일한 방법은 문제를 재현하는 것입니다. 이렇게하려면 url과 전달할 매개 변수를 제공해야합니다. 여기에는'data','responseHandler','baseurl' 변수가 포함됩니다. – Programmer
내가 말했듯이, 그것은 모든 다른 플랫폼에서 작동하며 애플 맥북 100 %의 iOS에서도 문제없이 작동합니다. 애플 앱 스토어에 앱을 게시 할 때만 문제가된다. 그래서 1) 다른 플랫폼에서 작동하기 때문에 서버가 될 수 없다. 2) 코드를 수정하지 않고 동일한 코드가 다른 플랫폼에서 작동하기 때문에 코드가 될 수 없다. 3) 정확히 GET 요청이기 때문에 데이터가 될 수 없다. 동일한 데이터. 유일한 차이점은 앱 스토어와 Unity가 ObjectiveC 나 앱 "번들"에 코드를 패키징하기 위해 무엇을하고 있는지에 관한 것입니다. – Koning
** "내가 말했듯이 다른 모든 플랫폼에서나 iOS에서도 작동합니다. ** 다른 플랫폼에서 작동하는지 여부는 중요하지 않습니다. 나는 SO에 이것 같이 몇몇 문제를 해결하고 끝나거나 URL 인 것을 끝낸다. ** "코드를 수정하지 않고 동일한 코드를 다른 플랫폼에서 사용할 수 있으므로 코드가 될 수 없습니다."** 물론, App Store에서이를 비난 할 수는 있습니다. 우리는 App Store에서 아무 것도 수정할 수있는 권한이 없다는 것을 알고 있으므로 계속 진행해야합니다. 해피 코딩! – Programmer