Xamarin.Forms: 在 iPhoneSimulator 上调试

Xamarin.Forms: Debug on iPhoneSimulator

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

Xamarin.Forms 模板 运行 很好,但是当我调用 Xamarin.Essentials.SecureStorage API

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

我收到以下错误:

System.Exception: Error adding record: MissingEntitlement

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

Could not find any available provisioning profiles for MyApplication.iOS on iOS

所以我做了这个答案所说的:。现在我仍然收到 MissingEntitlement 异常。

当我删除自定义授权并切换回自动配置时,我可以再次 运行 该应用程序,但当然没有 SecureStorage。

我是否需要订阅 99 美元才能在 iPhoneSimulator 上测试这些功能,例如 SecureStorage?这在使用物理 iPhone 时有效吗?

编辑

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

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(3,3): Error: Could not find any available provisioning profiles for Helloworld.iOS on iOS.

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

我用过 XCode 12.1,位于 /Applications/Xcode.app

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

1。使用个人 Apple 帐户登录 Xcode

  1. 在您的 Mac
  2. 上开始 Xcode
  3. 选择 Xcode → 首选项 菜单并导航至“帐户”面板
  4. 单击 bottom-left 角的 + 按钮并选择 Apple ID
  5. 使用您的 Apple ID 电子邮件地址和密码登录。

您现在可以在 Xcode 中访问您的开发者帐户。您添加的开发者账号名为“个人团队”,应该会出现在右侧的列表中。

2。 运行 真实设备上的应用程序

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

然后,在 Xcode 中,选择 Window → 设备和模拟器菜单。 Select 您的 iPhone 从列表中,然后单击“为开发启用设备”按钮。 (根据上下文,这可能不是必要的步骤。)启用“通过网络连接”选项也很明智,它允许您在 iPhone 上调试应用程序而无需通过 USB 连接。

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

很奇怪,但我尝试了项目的设置。

我遵循了以下 link 中的说明:https://docs.microsoft.com/nl-be/xamarin/ios/get-started/installation/device-provisioning/free-provisioning?tabs=windows#limitations。这确保应用程序部署在您的 ipad 上,使用 XCode,与您最终将在 Visual Studio 中使用的相同 app-id。您需要具有与您最终将在 Xamarin.iOS.

中使用的相同的 Bundle Identifier

在此之后,我在我的 iOS 项目中使用了以下设置:

根据 this link,我还确保我已登录。之后,我不得不重新启动我的 Visual Studio 对于 Windows,并且我能够在我的 iPad 来自我的电脑。