Mac OSX app store network not working after code / package

I have an application built into Unity, and the setup will be released on the Mac App Store, which has network tasks that are great for building OS X, and not for application storage, but after a build that requires verification / coding the App Store fails network. The application and the build process have been working not so long ago, but now they fail.

I enable network permissions in permissions, and I do not see any traces of the sandbox error in the system console. It succeeds in network connections to application purchases, but if I check the traffic for anything else in the terminal, the data will not move or exit.

So I was wondering if anyone had any ideas on what might be causing this or further tests that I could use to find out what the problem is.

+5
source share
1 answer

I never found out what happened to the Unity WWW class, but I managed to work around the problem using the System.Net.WebClient class. I implemented a simple shell that has a similar interface to Unity WWW. Here is the code I used:

using System; using System.Net; using System.Net.Security; using System.Text; /// <summary> /// Web request using the WebClient class. /// </summary> /// <seealso cref="Assets.Scripts.WebRequest" /> internal class WebRequest { /// <summary> /// The web client. /// </summary> private WebClient _client; /// <summary> /// The error message. /// </summary> private string _error; /// <summary> /// The is done flag. /// </summary> private bool _isDone; /// <summary> /// The progress. /// </summary> private float _progress; /// <summary> /// The text. /// </summary> private string _text; /// <summary> /// Initializes a new instance of the <see cref="WebRequest"/> class. /// </summary> /// <param name="url">The URL.</param> public WebRequest(string url) { this._client = new System.Net.WebClient(); this._client.DownloadProgressChanged += this.WebClientProgressChanged; this._client.DownloadStringCompleted += this.WebClientDownloadCompleted; this._client.DownloadStringAsync(new Uri(url)); } /// <summary> /// Initializes a new instance of the <see cref="WebRequestDotNet"/> class. /// </summary> /// <param name="url">The URL.</param> /// <param name="form">The form.</param> public WebRequest(string url, UnityEngine.WWWForm form) { this._client = new System.Net.WebClient(); this._client.UploadProgressChanged += this.WebClientUploadProgressChanged; this._client.UploadDataCompleted += this.WebClientUploadCompleted; this._client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; // Try to get the header from the Unity form foreach (var header in form.headers) { const string ContentType = "Content-Type"; if (header.Key == ContentType) { string contentType = header.Value; this._client.Headers.Remove(ContentType); this._client.Headers[ContentType] = contentType; } } this._client.UploadDataAsync(new Uri(url), form.data); } /// <summary> /// Gets the error message. Returns null if there is no error. /// </summary> /// <value> /// The error message. /// </value> public string Error { get { return this._error; } } /// <summary> /// Gets a value indicating whether this request is done. /// </summary> /// <value> /// <c>true</c> if this instance is done; otherwise, <c>false</c>. /// </value> public bool IsDone { get { return this._isDone; } } /// <summary> /// Gets the progress, 0 to 1. /// </summary> /// <value> /// The progress. /// </value> public float Progress { get { return this._progress / 100.0f; } } /// <summary> /// Gets the resulting text. /// </summary> /// <value> /// The text. /// </value> public string Text { get { return this._text; } } /// <summary> /// Called when the download is complete. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DownloadStringCompletedEventArgs"/> instance containing the event data.</param> private void WebClientDownloadCompleted(object sender, DownloadStringCompletedEventArgs e) { if (e.Error != null) { this._error = e.Error.ToString(); } else { this._text = e.Result; } this._isDone = true; } /// <summary> /// Called when the progress changes. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="DownloadProgressChangedEventArgs"/> instance containing the event data.</param> private void WebClientProgressChanged(object sender, DownloadProgressChangedEventArgs e) { this._progress += e.ProgressPercentage; } /// <summary> /// Called when the upload is complete. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="UploadValuesCompletedEventArgs"/> instance containing the event data.</param> private void WebClientUploadCompleted(object sender, UploadDataCompletedEventArgs e) { if (e.Error != null) { this._error = e.Error.ToString(); } else { this._text = Encoding.UTF8.GetString(e.Result); } this._isDone = true; } /// <summary> /// Called when the upload progress changes. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="UploadProgressChangedEventArgs"/> instance containing the event data.</param> private void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e) { this._progress += e.ProgressPercentage; } } 
0
source

Source: https://habr.com/ru/post/1245236/


All Articles