【问题标题】:No network connection in Xamarin.Forms project iOS when released发布时 Xamarin.Forms 项目 iOS 中没有网络连接
【发布时间】:2021-02-18 10:52:44
【问题描述】:

我为 iOS 和 Android 创建了一个 Xamarin.Forms 项目。模拟器中的一切都按预期工作,当我通过 Mac 上的 Visual Studio 部署到我自己的开发人员设备时,但是当我将项目存档以在 TestFlight 中发布/测试时,应用程序没有从 web 服务获取任何数据。我在webservice端做了一些登录,并确认来自HttpClient的请求永远不会到达rest服务。

您可以在 Xamarin.Forms PCL 中看到我拥有的 RestService 的一部分。

运行服务的网络服务器使用安全连接 SSL/TLS。

    HttpClient _client;

    public RestService()
    {
        _client = new HttpClient();
    }

    public async Task<ObservableCollection<Event>> GetEventsAsync(int seasonId)
    {
        ObservableCollection<Event> Events = new ObservableCollection<Event>();

        try
        {
            Uri uri = new Uri(string.Format(Constants.Constants.EVENT,
                                        string.Empty) + "/" + seasonId);

        HttpResponseMessage response = await _client.GetAsync(uri);

        if (response.IsSuccessStatusCode)
        {
            string content = await response.Content.ReadAsStringAsync();
            Events = JsonConvert.DeserializeObject<ObservableCollection<Event>>(content);
        }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }

        return Events;
    }

我在构建配置文件、链接选项等方面尝试了很多不同的方法,但似乎没有任何效果。

奇怪的是为什么它可以在我的设备上运行,即使我将发布配置文件部署到我的手机,但当我将它部署到 iTunes Connect 时却不行。

【问题讨论】:

  • 在移动应用中添加一些日志记录,这样我们就可以看到确切的异常是什么。
  • 您的应用是否启用了互联网权限?

标签: ios rest xamarin xamarin.forms


【解决方案1】:

谢谢 Jason,你是对的,互联网权限不正确。我在Info.plist中将其更改为以下

    <key>NSAppTransportSecurity</key>
    <dict>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
    </dict>

然后我将 Release iPhone 配置文件的构建设置调整为以下:

【讨论】:

  • 您可以稍后标记此答案,以便我们可以帮助更多有相同问题的人:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多