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 的设置(Podfile 和 Info.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 中缺少目的字符串的主要内容,如果未能解决你的问题,请参考以下文章