Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cocoapods frameworks.sh error: no such file

So I'm fairly new at both Swift and working with cocoapods, and after spending several days of researching I cannot figure out why my project isn't building. I get the following error:

(My project)/Pods/Target Support Files/Pods-(My project)/Pods-(My project)-frameworks.sh: No such file or directory

I am using Xcode 7.2.1 and Cocoapods 0.39.0 and I seem to have tried all the troubleshooting tips from Cocoapods' website. Can anyone tell me what I need to do to make it work?

My podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'
use_frameworks!

pod 'GoogleMaps'
pod 'FontAwesome.swift'
pod 'Lock', '~> 1.21'
pod 'JWTDecode', '~> 1.0'
pod 'Lock-Facebook', '~> 2.1'
pod 'SimpleKeychain', '~> 0.7'
pod 'Bolts', '~> 1.6'
pod 'FBSDKCoreKit', '~> 4.1'
pod 'FBSDKLoginKit', '~> 4.1'
pod 'MBProgressHUD', '~> 0.9.2'
pod 'Alamofire', '~> 2.0'
pod 'CocoaLumberjack/Swift'
pod 'AFNetworking', '~> 2.5'
pod 'Auth0', '~> 0.2'
like image 843
Amalie Avatar asked Feb 22 '16 20:02

Amalie


3 Answers

You're probably missing the target block for your target, in the Podfile.

I added a target to my project, and forgot to add a target block to the Podfile for that target, and I had the same error.

(My project)/Pods/Target Support Files/Pods-(My project)/Pods-(My project)-frameworks.sh: No such file or directory

The path components are actually named after the target:
(My project)/Pods/Target Support Files/Pods-[target]/Pods-[target]-frameworks.sh

Cocoapods builds configuration files for each target that you specify. Try adding a target entry to your Podfile, like so:

target "SOME TARGET" do
    specify pods here
end

If you end up adding a lot of targets, it might be a good idea to define pod groups that you can easily use inside your target entries. So, you would define your groups above your target entries, like so:

def commonPods
    specify pods here
end

Then you can use the group name in your pod entry, instead of copying all the pod entries for every target:

target "SOME TARGET" do
    commonPods
end

Adding the target entry in your Podfile will cause CocoaPods to generate a new set of files the next time you run pod install. However, before you run that command, you will probably need to set your configurations to None, so that Cocoapods can assign its own configuration. Here's how to do that:

  1. Go to your project-level target
  2. For each configuration listed under Configurations, select None for your target, in the drop-down menu under Based on Configuration File.

These steps will eliminate the Cocoapods warning that reads:

CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all...

Once you've edited your Podfile and you nullified your configurations, you're ready to run pod install on the command line. After the process is completed, check back with your base configuration settings, and note that they have been set to the configuration file that was generated by CocoaPods!

I hope that helps!

like image 110
Sheamus Avatar answered Oct 10 '22 23:10

Sheamus


This is kind of dumb, but it happened to me:

You might be in the wrong directory.

I was running pod install from directory Desktop/Project/Project Files, and I kept getting an error like this.

Then I realized I was in one step too far, so I went up to directory Desktop/Project, and it worked.

As to why pod install even ran considering the Podfile was in Desktop/Project and not Desktop/Project/Project Files... ¯\_(ツ)_/¯

like image 38
Terry Torres Avatar answered Oct 10 '22 23:10

Terry Torres


My problem is that " blablabla Pods-XXXX-frameworks.sh: No such file or directory"

Firstly, I fix it by using command line "pod install" , it has nothing effection.

The finally solution : Touch "Build Phases" -> "Embed Pods Frameworks" ,you can see the path :XXXXX.sh" Be sure that the XXX.sh is the same as your project's. if not, change the path. Then clean and build. It's done.

like image 43
Qun Li Avatar answered Oct 10 '22 23:10

Qun Li