flutter-permission-handler icon indicating copy to clipboard operation
flutter-permission-handler copied to clipboard

There was a problem building ios with the flutter.

Open rmswns0413 opened this issue 5 years ago • 2 comments

I have a problem building IOS using that library. My app does not require any authority except gps and camera. However, if you upload it to the app store while writing a library, it will not be uploaded by sending the following mail from Apple.

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.

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.

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.

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.

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 NSSpeechRecognitionUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.

Add the solutions created in the readme.

My podfile is as follows.

Uncomment this line to define a global platform for your project

platform :ios, '9.0'

CocoaPods analytics sends network stats synchronously affecting flutter build latency.

ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', { 'Debug' => :debug, 'Profile' => :release, 'Release' => :release, }

def flutter_root generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), FILE) unless File.exist?(generated_xcode_build_settings_path) raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" end

File.foreach(generated_xcode_build_settings_path) do |line| matches = line.match(/FLUTTER_ROOT=(.*)/) return matches[1].strip if matches end raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do use_frameworks! use_modular_headers!

flutter_install_all_ios_pods File.dirname(File.realpath(FILE)) end

post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| # You can remove unused permissions here # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/develop/permission_handler/ios/Classes/PermissionHandlerEnums.h # e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0' config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ '$(inherited)',

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

       ## dart: PermissionGroup.reminders
       'PERMISSION_REMINDERS=0',

       ## dart: PermissionGroup.contacts
       'PERMISSION_CONTACTS=0',

       ## dart: PermissionGroup.camera
       # 'PERMISSION_CAMERA=0',

       ## dart: PermissionGroup.microphone
       'PERMISSION_MICROPHONE=0',

       ## dart: PermissionGroup.speech
       'PERMISSION_SPEECH_RECOGNIZER=0',

       ## dart: PermissionGroup.photos
       'PERMISSION_PHOTOS=0',

       ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
       # 'PERMISSION_LOCATION=0',

       ## dart: PermissionGroup.notification
       'PERMISSION_NOTIFICATIONS=0',

       ## dart: PermissionGroup.mediaLibrary
       'PERMISSION_MEDIA_LIBRARY=0',

       ## dart: PermissionGroup.sensors
       'PERMISSION_SENSORS=0'
     ]
end

end end

rmswns0413 avatar Aug 25 '20 08:08 rmswns0413

Any update on this? Is there a way to just check the external_storage_permission instead of the whole set which makes apple code analyzer deny submission without permission strings added in plist file?

rdonasco avatar Sep 03 '20 13:09 rdonasco

In the newer version of the permission handler some things have changed for the podfile. Can you upgrade to the newest version of the permission handler (version 8.1.6) and see if it helped? Since version 8.0.0 we disabled all the permissions to start with. The setup section in the README will have a podfile for example, which can be found here. Can you let me know if it solved your problem? Thanks in advance!

JDDV avatar Sep 30 '21 11:09 JDDV

Closing this issue as there has been no activity in almost 2 years. If you are experiencing the mentioned issue on the latest version of the plugin, please file a new issue.

JeroenWeener avatar Aug 30 '23 14:08 JeroenWeener