首页 > 解决方案 > Xamarin.Forms:在 iPhoneSimulator 上调试

问题描述

我正在尝试在 iPhoneSimulator 上调试一个简单的新 Xamarin.Forms 应用程序。我使用的是 Windows,并且已与网络中的 macbook 配对。

Xamarin.Forms 模板运行良好,但是当我调用Xamarin.Essentials.SecureStorageAPI时

var timer = new Timer(5000);
timer.Elapsed += async (sender, e) => {
    timer.Stop();
    await SecureStorage.SetAsync("message", "Hello world");
};

我收到以下错误:

System.Exception:添加记录时出错:MissingEntitlement

所以我编辑了我的 Entitlements.plist 并启用了KeyChain权利。尝试再次调试,仍然是同样的错误。所以我转到项目属性> iOS Bundle Signing 并将其设置Custom entitlements为我的 Entitlements.plist。这以某种方式将方案切换到Manual Provisioning

在 iOS 上找不到适用于 MyApplication.iOS 的任何可用配置文件

所以我做了这个答案所说的:https ://stackoverflow.com/a/51615262/8941307 。现在我仍然收到 MissingEntitlement 异常。

当我删除自定义权利并切换回自动配置时,我可以再次运行该应用程序,但在没有 SecureStorage 的情况下会偏离轨道。

我是否需要订阅 99 美元才能在 iPhoneSimulator 上测试 SecureStorage 等这些功能?这在使用物理 iPhone 时会起作用吗?

编辑

我可以从我的 iPad(物理)上的 macbook 上的 XCode 中调试示例项目,但显然我无法在我的 iPad 上使用 Visual Studio for Mac。我收到以下错误:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(3,3):错误:在 iOS 上找不到 Helloworld.iOS 的任何可用配置文件。

我在 VSMac 中还缺少什么?此外,我已经信任我 iPad 上的开发者帐户,因此我能够从 XCode 运行示例。

我使用了位于/Applications/Xcode.app的 XCode 12.1

标签: iosxamarin.formsxamarin.essentials

解决方案


您可以创建一个免费的 Apple 帐户进行测试。

1. 使用个人苹果账号登录Xcode

  1. 在 Mac 上启动 Xcode
  2. 选择Xcode → Preferences菜单并导航到 Account 窗格
  3. 单击左下角的 + 按钮并选择 Apple ID
  4. 使用您的 Apple ID 电子邮件地址和密码登录。

您现在可以在 Xcode 中访问您的开发者帐户。您添加的开发者帐户称为“个人团队”,应显示在右侧列表中。

2. 在真机上运行应用程序

确保您的 iPhone(或 iPad)通过 USB 连接到您的 Mac。当 iPhone 提示您确认连接到 Mac 时,轻点“信任”。

然后,在 Xcode 中,选择 Window → Devices and Simulators 菜单。从列表中选择您的 iPhone,然后单击 Enable Device for Development 按钮。(根据具体情况,这可能不是必要的步骤。)启用“通过网络连接”选项也很聪明,它可以让您在 iPhone 上调试应用程序,而无需通过 USB 连接。

现在您可以 在模拟器和真实设备上使用Auto Provisioning测试您的代码。


推荐阅读