gpt4 book ai didi

c# - Xamarin 中的可移植类库在 iOS 模拟器上工作但不在设备上工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:42 27 4
gpt4 key购买 nike

我们有一个 Xamarin 跨平台应用程序,它使用自定义的可移植类库来与我们公司的 API 进行交互。我们遇到的问题是,当我们使用 iOS 模拟器上的应用程序通过 PCL 发出请求时,一切都按预期进行,但是当我们尝试在实际设备上执行相同的操作时,我们会收到“错误请求”错误从我们的 API 返回代码。

我们已经可以确定当应用程序在设备上运行时,我们正在制作的帖子中的body参数为null,但是当我们在模拟器上做同样的事情时,参数具有我们传递的值中。

我们的 PCL 使用的是 System.Net.HttpClient,所以我们认为这个答案可能有帮助:HttpClient failing遗憾的是,这没有用,因为看起来 Xamarin 应用程序无论如何都不使用 app.config 文件。

我们已尝试检查以确保我们的 PCL 和我们的 iOS 项目都引用相同版本的 System.Net.HttpClient,但这似乎也无法解决问题。

我们还尝试了以下错误报告中的解决方法但无济于事:https://bugzilla.xamarin.com/show_bug.cgi?id=20589

这篇文章过去曾帮助过我们,但似乎对这种情况没有帮助: HttpClient missing from .Net portable subset while creating PCL in Xamarin

最佳答案

当应用程序在模拟器和设备上运行时,存在几个差异。

其中之一是托管链接器在模拟器构建时被禁用(使用 JIT 时速度更快),而它在设备构建时启用(相同的逻辑:它对于 AOT 构建更快)。

您的应用程序可能会(直接或间接)使用反射并需要保留一些成员(例如序列化)。

您可以通过在模拟器构建中启用托管链接器(或在设备构建中禁用它)来尝试此操作。这将告诉您您的问题是否与托管链接器相关(或不相关)。

关于c# - Xamarin 中的可移植类库在 iOS 模拟器上工作但不在设备上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735237/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com