Flutter ios 应用提交:Info.plist 中缺少目的字符串

Posted

技术标签:

【中文标题】Flutter ios 应用提交:Info.plist 中缺少目的字符串【英文标题】:Flutter ios app submission: Missing Purpose String in Info.plist 【发布时间】:2020-04-23 12:31:44 【问题描述】:

我正在尝试为 ios 提交我的 Flutter 应用程序。当我提交应用程序时,我会收到一封邮件,其中包含我需要将其添加到我的 info.plist 的信息

NSCalendarsUsageDescription
NSAppleMusicUsageDescription
NSSpeechRecognitionUsageDescription

我觉得我需要添加这个真的很奇怪,因为我不需要任何这些(而且我没有在我的应用程序中使用它)...

这怎么可能?

这是我的 pubspec yaml

  cupertino_icons: ^0.1.2
  firebase_core: ^0.4.3+1
  firebase_auth: ^0.15.3
  cloud_firestore: ^0.12.11
  firebase_database: ^3.1.1
  cloud_functions: ^0.4.1+6
  firebase_messaging: ^6.0.9
  firebase_storage: ^3.1.0
  google_sign_in: ^4.1.0
  flutter_facebook_login: ^2.0.1
  geolocator: ^5.1.5
  shared_preferences: ^0.5.6
  url_launcher: ^5.4.1
  rflutter_alert: ^1.0.3
  font_awesome_flutter: ^8.5.0
  flutter_picker: ^1.1.0
  uuid: ^2.0.4
  image_picker: ^0.6.2+3
  path_provider: ^1.5.1
  image: ^2.1.4
  flutter_datetime_picker: ^1.2.8
  intl: ^0.16.0
  native_contact_picker: ^0.0.6
  flutter_spinkit: ^4.1.1+1
  transparent_image: ^1.0.0
  connectivity: ^0.4.6+1
  flare_splash_screen: ^2.1.4
  algolia: ^0.1.7
  http: ^0.12.0+2
  avatar_glow: ^1.1.0
  rxdart: ^0.22.2
  auto_size_text: ^2.1.0
  camera: ^0.5.7+2
  video_player: ^0.10.5
  story_view: ^0.11.0
  image_crop: ^0.3.1
  file_picker: ^1.4.3+1
  pdf_viewer_plugin: ^1.0.0+2
  flutter_background_geolocation: ^1.4.5
  location_permissions: ^2.0.3
  image_downloader: ^0.19.1
  permission_handler: ^4.0.0
  google_maps_flutter: ^0.5.21+15
  cached_network_image: ^2.0.0-rc
  geoflutterfire: ^2.0.3+5
  apple_sign_in: ^0.1.0
  device_info: ^0.4.1+4
  image_cropper: ^1.1.2
  screenshot: ^0.1.1

提前致谢!

【问题讨论】:

【参考方案1】:

我遇到了同样的问题...

我正在使用 permission_handler 依赖项。

请仔细阅读 iOS 的设置(PodfileInfo.plist

https://pub.dev/packages/permission_handler

并特别注意这一点:

删除您不想使用的权限前面的# 字符。 例如,如果您不需要访问日历,请确保代码如下所示:

## dart: PermissionGroup.calendar
'PERMISSION_EVENTS=0',

**** 2021 年 9 月 29 日更新 --(警告版本 > 8.0.0)

permission_handler 版本 8 为 iOS 引入了一些重大更改(配置已翻转)

作者说:

我们更改了权限处理方式的默认行为 在 8.0.0 版本中

请注意,仅支持专门启用权限 版本 8.0.0。在 8.0.0 之前的版本中,逻辑是切换的 和默认启用的权限,您必须明确 禁用 podfile 中的权限。

Author reference

See Changelog version 8.0.0

请仔细阅读所有 iOS 设置说明。

【讨论】:

就我而言,我已将所有权限值设为 0(如 'PERMISSION_EVENTS=0'),所有其他错误均已删除。但是日历事件仍然显示为错误。所以我必须在我的 info.plist 文件中指定 NSCalendarsUsageDescription,即使我没有在我的应用程序中使用日历来删除这个错误。希望这可以帮助某人。很奇怪,permission_handler 插件有这样的问题。希望他们在任何即将发布的版本中修复它【参考方案2】:

这是一个相当大的依赖项列表,因此其中一些很可能需要它,即使请求这些权限的代码永远不会运行。苹果只是注意到应用程序中的代码,但无法确定它不会被执行。

如果您确定永远不会请求这些权限,您可以在 Info.plist 中为使用说明添加任何文本,例如“Flutter 依赖项所需的使用说明”。它不应该向用户显示,但至少开发人员会知道为什么要填写它。

【讨论】:

谢谢!我担心Apple会因为我不使用的权限而拒绝它,但我会这样输入!谢谢!

以上是关于Flutter ios 应用提交:Info.plist 中缺少目的字符串的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 中的自定义字体

iOS xcode 代码片段

iOS xcode 安装插件

如何在 Flutter iOS 中激活应用内购买

由于不可重现的错误,使用 Flutter 制作的 iOS 应用程序被拒绝

Flutter 应用程序在 iOS 平台上的 Firebase 手机身份验证上崩溃