Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't build a flutter project with PathProvider dependency

Disclaimer: First of all, this is my early attempt to play with Flutter. So forgive me if is a noob question.

I had been playing with an MVP-Clean architecture for Flutter apps in iOS, and when trying to build a data source where I can persist data easily I found PathProvider plugin.

After trying the next:

  • Add dependencies to the project

    dependencies: path_provider: "^0.4.0"

  • Provide dependencies

    flutter packages get

    pod install

I try to compile the project and the compiler shouts: ** BUILD FAILED **

Xcode's output: ↳ === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug === /proect_directory/ios/Runner/GeneratedPluginRegistrant.m:6:9: fatal error: 'path_provider/PathProviderPlugin.h' file not found #import <path_provider/PathProviderPlugin.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated.

I did a quick search and I did not find anything useful.

Could anyone illuminate my path?

EDIT:

Already tried with:

flutter update-packages --force-upgrade

And the doctor output does not show any errors:

flutter doctor
  • Doctor summary (to see all details, run flutter doctor -v):
  • [✓] Flutter (Channel beta, v0.1.5, on Mac OS X 10.13.3 17D102, locale en-ES)
  • [✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
  • [✓] iOS toolchain - develop for iOS devices (Xcode 9.2)
  • [✓] Android Studio (version 3.0)
  • [✓] IntelliJ IDEA Community Edition (version 2017.3.4)
  • [✓] Connected devices (1 available)
like image 577
MiguelCatalan Avatar asked Mar 13 '18 09:03

MiguelCatalan


3 Answers

This issue should be fixed by https://github.com/flutter/flutter/pull/15437

To apply the fix to an existing project, add these lines to ios/Podfile.

like image 118
Mikkel Ravn Avatar answered Oct 20 '22 14:10

Mikkel Ravn


I finally find a workaround.

I went to the GitHub repo, found the PathProviderPlugin.h file, and put it inside the location:

build/ios/Debug-iphonesimulator/path_provider/path_provider.framework/Headers/

Sounds a little bit dirty, but was the only way to keep coding.

Hope helps someone. And thanks to @GünterZöchbauer to help me find a useful lead.

like image 34
MiguelCatalan Avatar answered Oct 20 '22 13:10

MiguelCatalan


  1. Open the project in xcode. i.e On Android Studio, right click -> Flutter -> open in xcode.
  2. Find the PathProviderPlugin.h file. (Find -> Find in workspace -> 3. PathProviderPlugin.h)
  3. Click on the result. In case you cannot find the result, right click on the PathProviderPlugin.m file and choose 'Reveal In Project Navigator'
  4. There you will see PathProviderPlugin.h file.
  5. On right hand side, target membership, change the settings from project to public.
  6. Do this for any files for which compiler is complaining, till you are able to build your project.

    Check the image for reference. Use the highlighted button to open right hand panel (Added For Android devs who don't know much of xcode. :) )

like image 1
Prachi Shrivastava Avatar answered Oct 20 '22 12:10

Prachi Shrivastava