Sdwebimage: Umbrella header warning for the FLAnimatedImage

Created on 31 Jan 2017  路  7Comments  路  Source: SDWebImage/SDWebImage

New Issue Checklist

Issue Info

Info | Value |
-------------------------|-------------------------------------|
Platform Name | iOS
Platform Version | 10.0
SDWebImage Version | 4.0.0
Integration Method | Carthage
Xcode Version | Xcode 8.2.1
Repro rate | all the time (100%)

Issue Description and Steps

Hello,
I am using version 4.0 of the framework. I have this Swift compiler warning:
/project_path/<module-includes>:1:1: Umbrella header for module 'SDWebImage' does not include header 'FLAnimatedImage.h'
Is FLAnimatedImage supposed to be added separately and how do I get rid of this warning?
thanks!

Most helpful comment

There you go.

All 7 comments

@ivan-konov please fill in the info required in the ISSUE TEMPLATE

There you go.

This is a useful read on the issue:
http://stackoverflow.com/questions/32923483/umbrella-header-for-module-myframework-does-not-include-header-otherframework

People who use the "raw" source code should be able to fix it themselves. I prefer to use Carthage to add frameworks to my projects so I would wait for it to be fixed in the repo :)

Hi guys,

It has been a while with this. What is the status of this issue?
Do you need help?

I can not use your library because of "Umbrella header for module 'SDWebImage' does not include header 'FLAnimatedImage.h''.
Thank you very much,
CALINOIU Laura

@ivan-konov @tualatrix (who created #1781) @lauracalinoiu this problem is tricky.
When installing via Carthage, indeed you get FLAnimatedImage as well. But with CocoaPods, you can just use the Core subspec which means no FLAnimatedImage.
Also, if you do install FLAnimatedImage as a dependency of SDWebImage via CocoaPods, this path <SDWebImage/FLAnimatedImage.h> will not work.
Not sure what to do here.

CC @mythodeia @skyline75489

Actually I think I found a way.

#if __has_include(<SDWebImage/FLAnimatedImage.h>)
#import <SDWebImage/FLAnimatedImage.h>
#endif

#if __has_include(<SDWebImage/FLAnimatedImageView.h>)
#import <SDWebImage/FLAnimatedImageView.h>
#endif

It will check if the inclusion is available.

Because the issue of direct inclusion was not so easy. It might have worked for Carthage alone, but for people installing via CocoaPods, it would not have worked.

And we cannot use the Project visibility for FLAnimatedImage.h and FLAnimatedImageView.h since people using Carthage might need to reference FLAnimatedImage entities directly. For WebP, since we hide all the implementation details, we don't need to make any of those headers Public so the umbrella warning does not apply there.

Nice, thanks a lot! :)

Was this page helpful?
0 / 5 - 0 ratings