美文网首页
Flutter提交iOS包,因为permission_handl

Flutter提交iOS包,因为permission_handl

作者: crazy一笑 | 来源:发表于2022-08-28 16:27 被阅读0次
    Dear Developer,
    
    We identified one or more issues with a recent delivery for your app, "App名字" 1.0.0 . Please correct the following issues, then upload again.
    
    **ITMS-90683: Missing Purpose String in Info.plist** - Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSContactsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
    
    **ITMS-90683: Missing Purpose String in Info.plist** - Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSCalendarsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
    
    **ITMS-90683: Missing Purpose String in Info.plist** - Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSAppleMusicUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
    
    **ITMS-90683: Missing Purpose String in Info.plist** - Your app‘s code references one or more APIs that access sensitive user data. The app‘s Info.plist file should contain a NSMotionUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
    
    Best regards,
    
    The App Store Team
    

    类似上述问题,概因permission_handler插件对权限的申请,作者已有说明,只是当时没仔细阅读文档,特此记录。

    第一步:

    修改Podfile文件
    将作者说明复制粘贴,替换3的代码,注意:作者说明,当时这里有三个...需要去掉,不然接下来的步骤会报错(如果没有请忽略)
    ... # Here are some configurations automatically generated by flutter
    
    post_install do |installer|
      installer.pods_project.targets.each do |target|
         # Here are some configurations automatically generated by flutter
    
        # Start of the permission_handler configuration
        target.build_configurations.each do |config|
    
          # You can enable the permissions needed here. For example to enable camera
          # permission, just remove the `#` character in front so it looks like this:
          #
          # ## dart: PermissionGroup.camera
          # 'PERMISSION_CAMERA=1'
          #
          #  Preprocessor definitions can be found in: https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h
          flutter_additional_ios_build_settings(target)
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
            '$(inherited)',
    
            ## dart: PermissionGroup.calendar
            # 'PERMISSION_EVENTS=1',
    
            ## dart: PermissionGroup.reminders
            # 'PERMISSION_REMINDERS=1',
    
            ## dart: PermissionGroup.contacts
            # 'PERMISSION_CONTACTS=1',
    
            ## dart: PermissionGroup.camera
            'PERMISSION_CAMERA=1',
    
            ## dart: PermissionGroup.microphone
            # 'PERMISSION_MICROPHONE=1',
    
            ## dart: PermissionGroup.speech
            # 'PERMISSION_SPEECH_RECOGNIZER=1',
    
            ## dart: PermissionGroup.photos
            # 'PERMISSION_PHOTOS=1',
    
            ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
            # 'PERMISSION_LOCATION=1',
    
            ## dart: PermissionGroup.notification
            # 'PERMISSION_NOTIFICATIONS=1',
    
            ## dart: PermissionGroup.mediaLibrary
            # 'PERMISSION_MEDIA_LIBRARY=1',
    
            ## dart: PermissionGroup.sensors
            # 'PERMISSION_SENSORS=1',   
    
            ## dart: PermissionGroup.bluetooth
            # 'PERMISSION_BLUETOOTH=1',
    
            ## dart: PermissionGroup.appTrackingTransparency
            # 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
    
            ## dart: PermissionGroup.criticalAlerts
            # 'PERMISSION_CRITICAL_ALERTS=1'
          ]
    
        end 
        # End of the permission_handler configuration
        flutter_additional_ios_build_settings(target)
      end
    end
    

    第二步

    根据自己所需要的权限进行设置。
    比如我需要相机权限,就将相机所对应权限前面的#注释去掉。

    没去掉的样子 去掉的样子

    第三步

    重新执行一下pod install,
    重新执行一下pod install,
    重新执行一下pod install
    重要的事情说三遍!!!

    如果运行项目,报错Flutter/Flutter.h' file not found,Flutter系统的头文件找不到,
    我的方法是:

    1.直接删除Podfile.lock文件
    2.flutter clean
    3.运行
    Podfile.lock

    相关文章

      网友评论

          本文标题:Flutter提交iOS包,因为permission_handl

          本文链接:https://www.haomeiwen.com/subject/pcccnrtx.html