onevcat / Kingfisher

A lightweight, pure-Swift library for downloading and caching images from the web.
MIT License
23.11k stars 2.64k forks source link

No such module 'Kingfisher' #647

Closed KairaKrishna closed 7 years ago

KairaKrishna commented 7 years ago

Issue Description

I am following steps https://github.com/onevcat/Kingfisher/wiki/Installation-Guide#manually. And getting 'No such module found 'Kingfisher' error.

What

I wish to add 'Kingfisher' as submodule under my project, and following the steps for manual installation, but getting this error. I have almost tried everything I could try, such as http://stackoverflow.com/questions/29500227/getting-error-no-such-module-using-xcode-but-the-framework-is-there; even I had re-installed latest Xcode (i.e. 8.3), but the issue still persists. I am trying to make it work since 3 days now, but no luck. I am attaching screenshots, just in case, those could help to figure out the error. This sample test app contains only the code visible on screen shot.

Kindly help me out with this.

Thanks.

screen shot 2017-04-07 at 9 56 13 am screen shot 2017-04-07 at 9 56 25 am screen shot 2017-04-07 at 9 57 14 am screen shot 2017-04-07 at 10 20 36 am
onevcat commented 7 years ago

Just tried to follow the instruction and everything goes fine to me:

snip20170407_2

So I believe it is something wrong with you dev environment. Could you try to switch the scheme to Kingfisher and build it to see whether there is any error?

KairaKrishna commented 7 years ago

The framework is building successfully, but my sample app is not compiling. Keeps on popping the same error. The actual problem is, in the main project which gets successfully compiled on other mac machines, but the same source code doesn't get compiled on my mac system. Always stuck at the same problem: "No such module 'Kingfisher'"

There could be any other possible system level settings/configuration/environment changes possible that could be affecting the compilation of the same source code? By same source code, I meant: I have compressed the main project and shared to other members, and exactly same code without any changes get compiled successfully.

onevcat commented 7 years ago

Not sure what happened. :[

onevcat commented 7 years ago

It is hard to say where exactly the issue is unless I could reach your environment. But it should be related to framework search path setting somewhere.

Instead of manually installing, could you give a third party dependency manager like CocoaPods or Carthage a try?

KairaKrishna commented 7 years ago

There are multiple dependent submodules under the main project, so I really don't wanna make a mess by changing it to pods. Framework search path variable is set to: $(inherited) $(SRCROOT)

and I have checked with all possible combinations of recursive and non-recursive for both variables.

onevcat commented 7 years ago

:(

Sorry but have no idea now.

shevakuilin commented 7 years ago

I also the same situation

mnearents commented 7 years ago

Same here, installed with cocoapods, won't compile

achal1012 commented 7 years ago

I also have the same issue using pods :(

onevcat commented 7 years ago

@shevakuilin @lususvir @achal1012

Thanks for reporting this. However, I have no issue in installing and using it through CocoaPods. Since Kingfisher has passed the pod lint when submitting to CocoaPods, so I believe it might be an issue related to specified development environment. Could you tell me something more about it? Like your CocoaPod and Xcode version.

It would be great help to dig it if you can paste the result of pod env in the project directory here.

Thanks.

mnearents commented 7 years ago

I was one version behind in Xcode and Swift. So I went from 3.1 to 3.1.1 and now it compiles.

achal1012 commented 7 years ago

Thank you for replying instantly :) I installed it using pod 'Kingfisher', '~> 3.2.3' and it worked. Here is my pod env:

Stack

   CocoaPods : 1.2.0
        Ruby : ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
    RubyGems : 2.0.14.1
        Host : Mac OS X 10.12.4 (16E195)
       Xcode : 8.3.1 (8E1000a)
         Git : git version 2.11.0 (Apple Git-81)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ 2be89b680bd9dddca8acdd0bfdd6cd1e444f295b

Installation Source

Executable Path: /usr/local/bin/pod

Plugins

cocoapods-deintegrate : 1.0.1
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.0.0
cocoapods-trunk       : 1.1.2
cocoapods-try         : 1.1.0

Podfile

# Uncomment the next line to define a global platform for your project
#platform :ios, '10.0'
target 'ProductCatalogue' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for ProductCatalogue
  pod 'Firebase/Core'
  pod 'Firebase/Database'
  pod 'FSPagerView'
  pod 'Firebase/Auth'
  pod 'GoogleSignIn'
  pod 'Kingfisher', '~> 3.2.3'
  source 'https://github.com/CocoaPods/Specs.git'
  pod 'SideMenu'
end
onevcat commented 7 years ago

@lususvir @achal1012

Thanks for confirming that. Although I am note 100% sure about it, but it seems to be an issue with unmatched Swift version and CocoaPods submitting supported version. For everyone later encountered it, I suggest to try to use the latest combination (Swift/Xcode, CocoaPods and Kingfisher) to see whether it could work or not.

Thank you again all.

pcambre commented 7 years ago

I had same issue, but I cleaned up my project and after re compile it every thing works well.

jiafei1986 commented 6 years ago

I also solved this issue by clean and build the project

c0dehunter commented 6 years ago

I tried clean&rebuild and it didn't help the first 3 times. After shutting down XCode and restarting the computer, opening .xcworkspace fresh up and clean&build, it now works.

Good that I am already used to XCode (iOS?) bugs, reminds me of old days when I was developing microcontroler code in KDevelop.. the worst shit I've ever been working with. And iOS development is getting close to that.

pallavi10aggarwal commented 6 years ago

@onevcat I am facing the same issue No such module 'Kingfisher' XCODE 10 , deployment target also 10 , Swift4.2 , cocoapods-1.5.3

screen shot 2018-09-21 at 1 43 53 pm

This is my pod file

screen shot 2018-09-21 at 1 44 50 pm

ALSO pod env

Stack

   CocoaPods : 1.5.3
        Ruby : ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
    RubyGems : 2.7.6
        Host : Mac OS X 10.13.6 (17G65)
       Xcode : 10.0 (10A255)
         Git : git version 2.17.1
Ruby lib dir : /usr/local/Cellar/ruby/2.5.1/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ 43343d455e6d4f99db11ff9547b6e96fdae6af24
               stanwood - https://github.com/stanwood/Stanwood_Core.git @ 4b86a455322a0f098b993e4cb5f2c2c5c8315cb2

Installation Source

Executable Path: /usr/local/bin/pod

Plugins

cocoapods-clean       : 0.0.1
cocoapods-deintegrate : 1.0.2
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.0.0
cocoapods-trunk       : 1.3.0
cocoapods-try         : 1.1.0

Podfile

source 'git@github.com:CocoaPods/Specs.git'

platform :ios, '10.0'

use_frameworks!

workspace 'IPS.xcworkspace'

def main_pods
    pod 'ACS', :path => "IPS Packages/ACSBT_EVK_iOS/ACSBluetooth/"

    # might be removed
##    pod 'Alamofire'

    # stanwood core libs
    pod 'Moya'
    pod 'Firebase/RemoteConfig'
    pod 'Firebase/Performance'
    pod 'Kingfisher', '~> 4.10.0'
    pod 'SwiftLint'
    #pod 'Reveal-SDK', '= 11’, :configurations => ['Debug’, 'Debug QA’]
    pod 'IQKeyboardManagerSwift'
    pod 'ReachabilitySwift'
    pod 'Cache'

# pod 'StanwoodCore'
end

target 'IPS Monteur' do
    project 'IPS Monteur.xcodeproj'
    pod 'StanwoodAnalytics'
    main_pods
end

target 'IPS MonteurTests' do
    project 'IPS Monteur.xcodeproj'
    pod 'Fabric'
    main_pods
end

I have almost tried every solution proposed above . But does not help :(

onevcat commented 6 years ago

@pallavi10aggarwal Could you try to upgrade your CocoaPods to 1.6.0 beta? It seems that they fixed some errors for Xcode 10, maybe it is related.

pallavi10aggarwal commented 5 years ago

@onevcat I updated to beta version but no luck , Kindly suggest some other way out .

pallavi10aggarwal commented 5 years ago

@onevcat I even changed my deployment target to iOS 11 . No Luck , the issue still persists

onevcat commented 5 years ago

@pallavi10aggarwal It should be not related to your deployment target.

Is there any detail error information in your build log, except for the "No such module"? Is there any build error inside Kingfisher, or can you find the built Kingfisher.framework in the Products folder of your Pods project?

I also suggest cleaning the derived data folder then restart your Xcode to have a try.

pallavi10aggarwal commented 5 years ago

@onevcat I cleaned my project also removed derived data. along with "No such module" I get this error "Command CompileSwift failed with a nonzero exit code" with the below error description

screen shot 2018-09-25 at 10 05 30 am screen shot 2018-09-25 at 10 21 56 am
onevcat commented 5 years ago

Could you just build your Pod project correctly? You could try it by changing your build scheme to Pods-CocoaPods or Kingfisher under the "Pods project" to see whether the framework itself gets built.

pallavi10aggarwal commented 5 years ago

@onevcat the issue got resolved , I exactly don't know what solved it , a number of trials including deleting derived data , restarting Mac , cleaning project build also I observed that frameworks were not there in Products folder under Pods Project , I resolved that too may be that could be the reason . Anyways , Thanks for your support .

onevcat commented 5 years ago

@pallavi10aggarwal Good to hear that!

Varuas37 commented 5 years ago

I had the similar issue. I did the following things which solved the problem for me: 1) Closed the xcode project 2) open the terminal in your project file and delete all the pods through pod deintegrate 3) Installed my pods again pod install 4) Restarted my laptop (i am not sure if that made any difference) 5) Open and build my file.

onevcat commented 5 years ago

@Varuas37 Maybe try to build the Pod project first to see what's the error?

Varuas37 commented 5 years ago

@onevcat no that solved the problem for me.

romangromov commented 3 years ago

Solved for me by doing this:

You should open the {Project}.xcworkspace instead of the {Project}.xcodeproj after you installed anything from CocoaPods.

This was missed from official doc, also Kingfisher was the first Pod I've added to me project as well as in my entire life.

The only question I have is: WHY I should open {Project}.xcworkspace instead of the {Project}.xcodeproj after adding just 1 Dependency ?

onevcat commented 3 years ago

CocoaPods creates its own Pods.xcodeproj and builds the dependencies there. To refer to them in your app project, you need to load both your app project and the pod project. And the xcworkspace is exactly the thing to handle this: it is a container of multiple projects.

jacksonsox commented 3 years ago

I had this issue when creating a new project. I was installing Kingfisher for iOS development in my pod. What I found is that the default for my project was pointing to Mac deployment (see image). When I changed to an iOS device, it compiled fine.

Screen Shot 2021-03-07 at 2 50 27 PM Screen Shot 2021-03-07 at 2 50 40 PM