Xamarin.iOS - 使用带有免费 iOS 开发证书的 iPhoneSimulator 钥匙串

Posted

技术标签:

【中文标题】Xamarin.iOS - 使用带有免费 iOS 开发证书的 iPhoneSimulator 钥匙串【英文标题】:Xamarin.iOS - Using IPhoneSimulator's Keychain with a free iOS Development certificate 【发布时间】:2018-08-24 05:52:56 【问题描述】:

我无法在 iPhoneSimulator 的钥匙串中保存帐户凭据。如果没有 Entitlements.plist,我无法使用 AccountSaver.Create().Save(credentials, "app")。但是,当我将它添加到我的项目时,会出现编译错误:

找不到任何适用于 ios 的配置文件。

我已将 iOS 开发证书添加到我在 Mac 上的帐户中,并尝试创建免费的配置文件,但由于缺少 iPhone 设备而失败。 令人惊讶的是,当我尝试在我的 Mac 上的 Xcode 中添加 Keychain 到 Entitlements 的虚拟项目并在模拟器上运行它时,没有发生编译错误。

我的问题是:我是否必须创建 Apple 开发者帐户才能在 IPhoneSimulator 中测试我的 Xamarin.iOS 应用程序,或者如果没有它,我是否做错了什么?如果是这样,我应该怎么做才能编译我的应用程序?

我在连接到 Mac 代理 (Mac Mini) 的 Windows 8 上使用 Visual Studio 2017。

P.S.:大多数帖子指出,该模拟器不需要配置文件,但根据this thread:

从 Xamarin.iOS 8.10 开始,如果为 iPhoneSimulator 构建配置设置了 Entitlements.plist 文件,则需要进行代码签名,因此需要安装 iOS 代码签名证书你的钥匙扣。 ~Xamarin Forum

【问题讨论】:

模拟器不需要配置文件。您可以使用空白项目进行测试。在这个项目中添加 Entitlements.plist。 在模拟器中运行应用程序不需要配置文件除非您需要为钥匙串访问等添加特定权利。 @LandLu-MSFT 我尝试在 Mac Mini 上的 Xcode 中执行此操作,并且编译成功。我会在恢复工作后尽快在 Visual Studio 中执行此操作。 @wottle,所以可能唯一的解决方案是注册 Apple Developer 计划并从 Internet 下载配置文件? 如果你需要用钥匙串做一些事情,是的,我相信你会的。 【参考方案1】:

我问这个问题已经过去了一段时间,但我认为它不仅值得在 cmets 中得到答案。 正如@wottle 所写,需要注册 Apple Developer Program 才能访问 Keychain。 我还建议使用 Xamarin.Essentials 的 SecureStore 而不是 AccountSaver。

【讨论】:

【参考方案2】:

我们有许多 Apple Store 应用程序的 Apple 分发配置文件已过期。在我们重新生成 Apple 分发证书并为受影响的应用程序创建新的分发配置文件后,该问题就消失了。

【讨论】:

也许是 eleberate?

以上是关于Xamarin.iOS - 使用带有免费 iOS 开发证书的 iPhoneSimulator 钥匙串的主要内容,如果未能解决你的问题,请参考以下文章

在带有 Xamarin.iOS 的 iOS 7 上的 ViewDidAppear 方法中显示阻止的 UIAlertView 不起作用

Xamarin.iOS 和 RFComm

使用Xamarin Effect删除Xamarin.iOS中TextEntry上的圆角

使用啥控件从相机捕获图像并在 ui 上显示为带有事件 xamarin ios 的缩略图

Xamarin iOS UICollectionView.CellRegistration 带有泛型,它在哪里?

如何使用 AutoLayout (iOS/Xamarin.iOS) 使 ScrollView 适合其内容?