Cocoapods on external harddrive - ios

I moved all my Xcode projects on to an external harddrive because my macbook was running low on space. Cocoapods have started to act weird now.
When I try to initialize a new podfile via terminal with pod init, I get the message:
[!] Multiple Xcode projects found, please specify one.
When I try to update or install an existing podfile, I get the message:
[!] Could not automatically select an Xcode project. Specify one in your Podfile like so:
project 'path/to/Project.xcodeproj'
Nothing seems to work. Is there any way I can get cocoapods to work with projects on an external harddrive?
The directories I have tried all have only one xcode project and I'm definitely in the right directory.

"Invisible copies of files prefixed with "._" are created on shared volumes and external disks that are formatted to work with both macOS and Windows. These invisible files are "resource fork" segments of files that are being created on the external volume."
- https://www.cnet.com/news/invisible-files-with-prefix-are-created-on-some-shared-volumes-and-external-disks/
These copies were preventing me from initializing or updating my podfiles.
Solution 1:
Go to the directory where you want to initialize a pod or the directory of the podfile you want to update in terminal. Type ls -a to list all files including hidden ones. Then type rm "._(NameOfFile)" to remove the copy. You should then be able to work with the podfile freely.
Solution 2 (Permanent):
Solution 2 is a permanent one but requires reformatting the external drive to Macintosh-Extended so the ._ file copies are not created.
The link above also gives some other ways to deal with ._ files without reformatting the external drive.

Related

XCode workspace integrity - couldn't load project (pods.xcodepoj)

I pulled from git and everything works fine except I got this error even though I can still run the project. Is there a way to fix this?
This usually means there was a merge conflict that got committed to the actual project.pbxproj file.
Since this is a Pods project (which is ephemeral and can be recreated at will) you can run pod install from the command line (in the same folder as your Podfile and it will regenerate the project.
problem:- Workspace integrity (could not load project) I got the same issue also I hit and try many solutions (Restart mac, Cache data remove, pods update, pods install, etc) but all in vain.
Solution : Once I try to open the project the "Xcode.copy" opened intead of my original Xcode . I just close all projects after that I open the project from selecting Xcode directly from the finder.
Note:- do not go to the project folder then open project from "projectName.xcworkspace"
you just need to go finder(Spotlite search) and open Xcode and open from finder then you must select the desired project. The project will work perfectly and after that you can open project manually (in your folder etc)
:) These things working from my side.

Missing Frameworks from Cocoapods after switching computers

I recently switched computers and brought over my project but when I opened the workspace I noticed that all of my frameworks via Cocoapods were missing.
I closed the workspace and went into the folder directory and deleted the current xcworkspace, 'Pod' folder, and podfile.lock file, and ran a pod update and pod install. I also deleted the Derived Data for safety measures. However, after reopening the newly created workspace the frameworks were still missing and I am getting an error saying that functions that are within my frameworks have been renamed.
Can anyone point me to another solution? I feel like I've tried just about everything that I could find on here and what I know. Thanks in advance!
Missing Frameworks
Framework Incorrect Full Path
Function Renamed Errors
The frameworks are probably missing because they've not been built yet, but they will show up the first time you run the project.
The function rename warnings are probably because you're using a newer version of Xcode that is using Swift 4.2 by default. Usually the easiest way to tackle this is to upgrade your Pods to newer versions.

expected identifier or '(' after zipping on a windows machine

Background
I brought a project down from a GIT repository to a windows machine, zipped it up, and put it on a Google drive.
I then pulled it down to my Mac, unzipped it and where it worked before on my other Mac, I am now getting the following error.
/Users/myname/Desktop/cmh.pubweb.theapp/TheApp/TheApp-Bridging-Header.h:1:9: note: in file included from /Users/myname/Desktop/cmh.pubweb.theapp/TheApp/TheApp-Bridging-Header.h:1:
#import <Google/Analytics.h>
^
/Users/myname/Desktop/cmh.pubweb.theapp/Pods/Headers/Public/Google/Google/Analytics.h:1:1: error: expected identifier or '('
../../../../Google/Headers/Analytics.h
^
<unknown>:0: error: failed to import bridging header '/Users/myname/Desktop/cmh.pubweb.theapp/TheApp/TheApp-Bridging-Header.h'
Notables
- I am running this on xcode 9.1 whereas my other Mac had an earlier version.
- It was written in Swift 3.
What I have done
Read just about every example of this error on Stackoverflow and applied suggestions without success.
Hit google and found one example where someone had an issue with windows doing something to one of the files. I didn't quite understand what they were getting at and applying the suggested fix didn't work out.
I have deleted the entire build folder.
I have performed "Clean Build Folder" without success.
I hesitate to post this as it seems to be a very vague error that has been tackled from a dozen different directions but I am at a loss after a day of trying to hunt this down.
Any suggestions are greatly appreciated.
The general practice is to only commit the Podfile to the repository and not the Pod folder. If that is the case, you will need to setup Pods on your new mac. Make sure you have cocoapods installed and setup on your new mac and then run pod install in your project directory
Based partially on the answer posted by #Malik
Deleted the POD directory in the root of the project folder
Deleted the Podfile.lock file. (left Podfile in place)
Downloaded CocoaPods App https://cocoapods.org/app (this was due to running into cert expiration issues even though all expired certs had been removed. Seems the app deals with it.)
Installed CocoaPods to the target app.
Also changed the project explicite location in the PodFile to reflect the current location in my system.
This resolved the current issues.

Universal iOS app using CocoaPods - which files to check in into Git?

In Xcode 5 I am developing a universal iOS app - on three different Mac OS machines (on which I happen to have different usernames too - "admin", "alex", etc.)
My project uses the SDWebImage library through CocoaPods and I plan to add few more later.
I would like to keep my project in a Git-repository on GitHub or BitBucket.
I'm confused: which files of my project should I check in into the git repository.
Especially I wonder about 2 groups of files:
The CocoaPods-related (currently I've only checked in the Podfile and Podfile.lock, but there are also Pods.xconfig and Pods, etc.)
And the Xcode-related (should I check in the Workspace Settings? What to do with User Data - admin - ...?)
Here is the screenshot of the commit dialog:
When I run git clean -n -d in my project dir, I see the following:
Would remove Podfile.lock
Would remove Words.xcodeproj/xcuserdata/
Would remove Words.xcworkspace/
And my Podfile contains the following:
platform :ios, '6.0'
pod 'SDWebImage'
UPDATE:
I use a .gitignore containing xcuserdata, but for some reason still see the User Data files in the commit dialog:
This is a bit of a matter of taste and requirements for your projects. There are two schools:
Never check in generated code. Put your xcworkspace, Podfile.lock and Pods folder in .gitignore and never commit them. Instruct developers on your code base to run pod install directly after checkout. This is my preferred choice, and should work fine as long as your pod dependencies point to a specific version or a range of compatible versions.
Check the workspace, lock file and Pods directory into Git with the rest of your code. This is a guarantee that all developers on the project are using the exact same code when they build. Even if your third party dependency removes their code from the Internet, your project is still buildable. However, you now have a lot of source code that is unrelated to your own, version controlled together with your own.
As an aside: you should probably always put "xcuserdata" in your gitignore, maybe even your system-wide git ignore, because other users of your code are probably not interested in your personal Xcode settings.

Running Cocoa Pods application on machine where it isnt installed

I recently created an iOS project utilizing cocoa pods to install AfNetworking. I zipped the project and send to someone to check out. They are saying they cannot run the project and they are getting an error because the libpods.a is missing. My assumption is that they didnt open the project from the xcworkspace and tried to open via xcproj, but havent been able to confirm.
Someone who receives a cocoapods based application doesn't need to run pod:install on their machine do they?? (They do not have cocoapods on their machine. )
If the project folder (including the workspace and all subfolders such as the Pods folder) has been zipped in its entirety, and you've got it working on your machine, then the pods folder and its contents should be present, and the problem is probably that the project has been opened instead of the workspace.
You don't need Cocoapods installed at build time. You need it to create and populate the pods project and set up the workspace, but once that done, nothing else is needed until you want to update the Podfile.

Resources