Xamarin 如何在visual studio中编辑info.plist?

Xamarin 如何在visual studio中编辑info.plist?,xamarin,xamarin.ios,Xamarin,Xamarin.ios,我需要向信息列表添加密钥,但无法打开文件进行编辑。xamarin文档声明应该有3个选项卡,其中一个是source,这让我可以手动添加键。选项卡在哪里?在Xamarin Studio中编辑info.Plist时,您将获得3个选项卡。下面是mac的屏幕截图 这里是源选项卡,您可以在其中手动添加键,并将其转换为相应的标记 使用您选择的文本编辑器手动编辑info.Plist没有问题 此时,在Visual Studio中,您可以使用任何编辑器打开info.plist,并在标记之间添加密钥。 相机和画廊

我需要向信息列表添加密钥,但无法打开文件进行编辑。xamarin文档声明应该有3个选项卡,其中一个是source,这让我可以手动添加键。选项卡在哪里?

在Xamarin Studio中编辑info.Plist时,您将获得3个选项卡。下面是mac的屏幕截图

这里是源选项卡,您可以在其中手动添加键,并将其转换为相应的标记


使用您选择的文本编辑器手动编辑info.Plist没有问题

此时,在Visual Studio中,您可以使用任何编辑器打开info.plist,并在
标记之间添加密钥。 相机和画廊许可的示例:

...
<dict>
...
    <key>NSCameraUsageDescription</key>
    <string>Message for permission to access camera</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Message for permission to access gallery</string>
...
</dict>
...
。。。
...
NSCameraUsageDescription
允许访问摄像头的消息
NSPhotoLibraryUsageDescription
获取访问库权限的消息
...
...

这里有更多权限和详细信息

我在Visual Studio中向plist.info文件添加密钥时也遇到了问题,但我最终还是成功了

这可能会有问题,因为应用程序属性似乎不包含任何用于添加密钥的区域,并且在关闭或保存文件时,对文件的手动更改可能会被应用程序属性覆盖

我发现向plist.info(在Visual Studio中)添加键的唯一可靠方法如下

1) 确保保存并关闭应用程序属性(设计器窗口不得打开)。

2) 在解决方案资源管理器中右键单击该文件,然后选择“查看代码”

3) 手动编辑XML,将新密钥和相关数据项添加到文件末尾,如本例所示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        ...
        <key>NSCalendarsUsageDescription</key>
        <string>This app needs access to your calendar.</string>
        <key>NSPhotoLibraryUsageDescription</key>
        <string>This app needs access to your photos.</string>
    </dict>
</plist>

...
NSCalendarsUsageDescription
此应用需要访问您的日历。
NSPhotoLibraryUsageDescription
此应用需要访问您的照片。
4) 在重新打开应用程序属性之前保存并关闭窗口


如果您按照上述步骤操作,则随后打开应用程序属性并进行更改不应覆盖plist.info中的新密钥但是。。。在另一个文件中保存新密钥的副本(我使用plist.info.keys)可能是个好主意,以防万一。

在visual studio 2017 for Windows中

  • 右键单击Info.plist并选择“打开方式”

  • 从程序列表中选择“通用Plist编辑器”

  • 可以添加/编辑关键点


  • 如果需要进行手动编辑,则始终可以在简单的文本编辑器中打开该文件。否则,您可以看到我们关于这个主题的文档:我知道这些文档,但我的观点是它们不适用于VisualStudio。要求VS用户用一个简单的文本编辑器编辑文件,会带来糟糕的用户体验。我怎么知道我手动所做的更改不会被VS覆盖。我知道这一点。这不是我的论点。问题是Xamarin为选择在VisualStudio中开发的用户提供了不同的用户体验和工具。这就是不一致性,我不喜欢不一致性,尤其是在软件开发中。