flutter simple permissions android version compare and iOS path_provider error - dart

I am used Flutter Simple Permissions plugin in my app but I have a some issues with it.
1.) When i run app on android 6 and higher version there is no problem but when i run it on android 5 execution stopped on "SimplePermissions.checkPermission" and only
showing console message "Checking permission: android.permission.WRITE_EXTERNAL_STORAGE" so my question is that how to compare android version in flutter?
2.) how to determine if the user checked “Never ask again”? and ask for open app settings
3.) Error with iOS permissions "BUILD TARGET path_provider OF PROJECT Pods WITH CONFIGURATION Debug"
Console Message: === BUILD TARGET path_provider OF PROJECT Pods WITH CONFIGURATION Debug ===
/Users/home/Library/Android/flutter/.pub-cache/hosted/pub.dartlang.org/simple_permissions-0.1.9/ios/Classes/SimplePermissionsPlugin.m:2:9: fatal error: 'simple_permissions/simple_permissions-Swift.h' file not found
#import
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
I am new with flutter so please help me if any one know about it. Thanks advanced.

please try this edits in Podfile Code needs to be added or edited are marked with "** ...... **"
target 'Runner' do
** use_frameworks! **
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
** config.build_settings['SWIFT_VERSION'] = '4.0' **
end
end
end
delete your Podfile.lock and try

Related

IOS build errors - Xcode 13

Below are errors while building in latest xcode 13 & Mac Apple Pro M1 chip
<unknown>:0: error: module map file '/Users/xxxx/Library/Developer/Xcode/DerivedData/xx-cwbykxafbbbrfjbaeyuaxhdrivdp/Build/Products/Debug-iphonesimulator/Stripe/Stripe.modulemap' not found
<unknown>:0: error: module map file '/Users/xxxx/Library/Developer/Xcode/DerivedData/xx-cwbykxafbbbrfjbaeyuaxhdrivdp/Build/Products/Debug-iphonesimulator/YogaKit/YogaKit.modulemap' not found
Command PrecompileSwiftBridgingHeader emitted errors but did not return a nonzero exit code to indicate failure
Most of the answers mentioned to edit pod file & write exclude configuration hence the tried below fix -
installer.aggregate_targets.each do |aggregate_target|
aggregate_target.user_project.native_targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['LIBRARY_SEARCH_PATHS'] = ['$(SDKROOT)/usr/lib/swift', '$(inherited)'] # or it won't build on apple silicon
# without explicitly clearing this out, it flaps between excluding arm64 or not
# Fix some library / linker errors
config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' # only one at a time
config.build_settings['VALID_ARCHS'] = 'arm64 x86_64' # you need both to work on both CPU archs / release etc
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
aggregate_target.user_project.save
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# We support a smaller range of deployment than some libraries, eliminate related noise
# This also avoids a nasty Folly bug about an API not available until ios10+
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
Also couple of answers mentioned to open workspace file which also tried but these errors are not resolving. Requesting if someone can provide right pointers.
I faced a similar issue with Xcode 14 in M1 Mac running macOS Ventura. The following workaround fixed the issue for me.
Right click on Applications -> Xcode
Choose Get Info
Select Open with Rosetta option if it's not selected

Flutter IOS build error - "select a development team in the Signing & Capabilities editor."

The following error is displayed when attempting to build on an IOS device:
As shown in the picture below, the Signing setting in Xcode is well done.
Can you tell me the cause and solution of this?
Could not build the precompiled application for the device.
Error (Xcode): Signing for "GoogleSignIn-GoogleSignIn" requires a development team. Select a development team in the Signing & Capabilities editor.
/Users/home_1/StudioProjects/Example%20Project/app/ios/Pods/Pods.xcodeproj
Error (Xcode): Signing for "DKPhotoGallery-DKPhotoGallery" requires a development team. Select a development team in the Signing & Capabilities editor.
/Users/home_1/StudioProjects/Example%20Project/app/ios/Pods/Pods.xcodeproj
Error (Xcode): Signing for "DKImagePickerController-DKImagePickerController" requires a development team. Select a development team in the Signing & Capabilities editor.
/Users/home_1/StudioProjects/Example%20Project/app/ios/Pods/Pods.xcodeproj
Error (Xcode): Signing for "gRPC-C++-gRPCCertificates-Cpp" requires a development team. Select a development team in the Signing & Capabilities editor.
/Users/home_1/StudioProjects/Example%20Project/app/ios/Pods/Pods.xcodeproj
This happened to me today after switching to Xcode 14. Try adding this to your podfile
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['WRAPPER_EXTENSION'] == 'bundle'
config.build_settings['DEVELOPMENT_TEAM'] = 'YOUR_DEVELOPMENT_TEAM_ID'
end
end
end
end
Don't forget to replace the YOUR_DEVELOPMENT_TEAM_ID with your actual development Team ID which you can find in developer.apple.com
This will permanently fix the issue.
If you don't want to use the Team ID you can do this instead:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
target.build_configurations.each do |config|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
end
end
end
end
end
If you have other post_install steps, for example flutter_additional_ios_build_settings(target), make sure to keep them
I'm wondering when Apple is going to launch a new xCode version without breaking anything from previous ones!
Rants aside, this is how I fixed my Flutter project based on previous answers:
Open your awesome_flutter_project/ios/Podfile:
and replace these lines:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
for:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
target.build_configurations.each do |config|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
end
end
end
end
end
Just for everyone, who thinks the accepted solution is a hack, you are right. This is a known bug in the flutter framework which has been fixed in flutter 3.3.3 .
So I recommand everyone to upgrade to this version, if you are able/allowed to do so.
In case you can't upgrade to 3.3.3 then the accepted solution is your best bet ;)
It's a Flutter framework issue
Update Flutter version into 3.3.3
I also got this error after updating XCode to version 14.
Add the following to ios > podfile
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
if config.build_settings['WRAPPER_EXTENSION'] == 'bundle'
config.build_settings['DEVELOPMENT_TEAM'] = 'YOUR_DEVELOPMENT_TEAM_ID'
end
end
end
end
To get YOUR_DEVELOPMENT_TEAM_ID: https://developer.apple.com/account/#!/membership/
This will permanently fix the issue.
If you don't want to use the Team ID you can do this instead:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
target.build_configurations.each do |config|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
end
end
end
end
end
I was able to solve the problem by doing the following:
Open project on xCode
Open Pods and find out "GoogleSignIn-GoogleSignIn" and other three on Pods > Target
Select Team on Signing & Capabilities
Open your flutter project in Xcode
Pods -> Targets -> Signing & Capabilities -> Select Team
Select Team for every Targets
I am using CodeMagic.io (CI/CD) and had this same problem, I found the issue to be the Xcode version: 14
I solved this at CodeMagic.io by doing this :
Go to the Workflow Editor
Go to 'Build'
Change the Xcode version: 13.4.1
If you are using another CI/CD try using Xcode version: 13.4.1
It was mentioned to solve this you can also update your Flutter version to 3.3.3 however if like me this is not an option for you try using Xcode version 13.4.1
adding following code solved issue in Xcode 14 and flutter version 2.8
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
When I put the the suggested changes in the pod file and run the flutter build ipa command, I am getting a different error.
Error:
In file included from /Volumes/Data/FlutterSDK/.pub-cache/hosted/pub.dartlang.org/webview_flutter_wkwebview-2.9.3/ios/Classes/FWFUIViewHostApi.m:5:
/Volumes/Data/FlutterSDK/.pub-cache/hosted/pub.dartlang.org/webview_flutter_wkwebview-2.9.3/ios/Classes/FWFUIViewHostApi.h:5:9: fatal error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
For CI/CD, this is the only solution that worked for me.
Update podfile.
target_is_resource_bundle = target.respond_to?(:product_type) && target.product_type == 'com.apple.product-type.bundle'
target.build_configurations.each do |build_configuration|
if target_is_resource_bundle
build_configuration.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
build_configuration.build_settings['CODE_SIGNING_REQUIRED'] = 'NO'
build_configuration.build_settings['CODE_SIGNING_IDENTITY'] = '-'
build_configuration.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = '-'
end
end
then go to the team drop list and select your team

Double-quoted include [all Facebook SDK imports], expected angle-bracketed instead

I am getting the following warning in iOS Xcode builds:
Double-quoted include "FBSDKDeviceLoginCodeInfo.h" in framework header, expected angle-bracketed instead.
This is apparently a new default warning in Xcode 12 which will throw a warning anywhere you #import or #include with "quotes.h" instead of <brackets.h>.
I am getting this for all of the Facebook SDK imports. There are a few StackOverflow proposed solutions out there, but none of them works.
These solutions do not work:
go in the project's Build Settings a just set the option Quoted Include In Framework Header to No :
you can use Cocoapods version 1.10.0.rc.1 temporarily until 1.10.1 is officially available -> gem install cocoapods -v '1.10.0.rc.1'
Another option is to update your Podfile (add below code) to disable the warning flag CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER setting for all pods in your project
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = 'NO'
end
end
end
end
You can disable these warnings for your entire project by navigating to your project's "build settings", finding the field "other linker flags" and adding the following flag: -Wno-quoted-include-in-framework-header
Worked for me:
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Caches/CocoaPods/
pod deintegrate
pod update
These solutions were written 7 or 8 months ago and DO NOT WORK FOR ME.
Are there any new solutions beyond manually editing hundreds of occurrences of this?

How can I downgrade the rxdart plugin in flutter?

I followed this as shown (only first 3 minutes are relevant for my question): https://m.youtube.com/watch?v=MYHVyl-juUk
When I try to run it this appears in the console:
Because geoflutterfire 2.0.3+2 depends on rxdart ^0.20.0 and no versions of geoflutterfire match >2.0.3+2 <3.0.0, geoflutterfire ^2.0.3+2 requires rxdart ^0.20.0.
So, because my_app depends on both rxdart ^0.21.0 and geoflutterfire ^2.0.3+2, version solving failed.
The current Version (and the Version I installed) is rxdart 0.21.0. I tried to downgrade it by changing it to 0.20.0 and flutter packages get, but it didn’t work.
Btw, it’s my first time experimenting with plugins, so I don’t have any clue about solving that kind of problems...
What can I do to make this work?
Kind regards
UPDATE:
After I tried this:
rxdart: any
the console threw this:
2019-04-08 12:06:04.178 defaults[36786:354646]
The domain/default pair of (/Users/privat/Documents/Dev/my_app/ios/Runner/Info, CFBundleIdentifier) does not exist
Xcode's output:
↳
/Library/flutter/.pub-cache/hosted/pub.dartlang.org/geoflutterfire-2.0.3+2/ios/Classes/GeoflutterfirePlugin.m:2:9: fatal error:
'geoflutterfire/geoflutterfire-Swift.h' file not found
#import <geoflutterfire/geoflutterfire-Swift.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Then I edited the Podfile Code:
Code that needed to be added or edited are marked with "** ...... **"
target 'Runner' do
** use_frameworks! **
........ ......
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
** config.build_settings['SWIFT_VERSION'] = '4.0' **
end
end
end
Then I deleted my Podfile.lock and tried again, and the app was compiled successfully. Thanks to C4C!
rxdart:any
Give it a try and let us know what happens
please try this edits in Podfile
Code needs to be added or edited are marked with "** ...... **"
target 'Runner' do
** use_frameworks! **
........ ......
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
** config.build_settings['SWIFT_VERSION'] = '4.0' **
end
end
end
delete your Podfile.lock and try
Older versions can be found here - https://pub.dartlang.org/packages/rxdart#-versions-tab-
If you are receiving AndroidX errors due to the older version then please check this page to resolve AndroidX issues - https://flutter.dev/docs/development/packages-and-plugins/androidx-compatibility

TesseractOCRiOS | Warning: Multiple build commands for output file

versions:
TesseractOCRiOS 4.0.0
CocoaPods 1.2.1
When i'm building on simulator - everything is fine, but when i'm trying to build on my iPhone xCode gives me next warning:
Warning: Multiple build commands for output file /Users/Username/Library/Developer/Xcode/DerivedData/ProjectName-hjheurpncvhpfbabezufoumrybad/Build/Products/Debug-iphoneos/TesseractOCRiOS/TesseractOCR.framework/PrivateHeaders/config_auto.h
Faced with the same problem recently, definitely not the best, but acceptable workaround - just delete one of the duplicate lines "config_auto.h" with path "./Pods/TesseractOCRiOS/TesseractOCR/include/leptonica/" in "Build Phases"-"Headers"-"Private" settings of TesseractOCRiOS target.
OCR recognition functionality does not affected by this change.
See screenshot for details.
If you're using cocoapods, you can add following script at the end of your pod file:
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'TesseractOCRiOS'
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
header_phase = target.build_phases().select do |phase|
phase.is_a? Xcodeproj::Project::PBXHeadersBuildPhase
end.first
duplicated_header_files = header_phase.files.select do |file|
file.display_name == 'config_auto.h'
end
duplicated_header_files.each do |file|
header_phase.remove_build_file file
end
end
end
end
Just noticed that it's also disabling bitcode. Remove it if that's not what you need. The script removes the duplicate header files since they are under private section only.
I think you have a problem in your project directory. You have a duplicate file of config_auto.h
Go to your Target , Delete config_auto.h under the build phases.
Hope!! This helps you

Resources