I've created a pod specification for learning, and now I'd like to remove it as it is shown under my name when searching for pods. I've looked everywhere in the documentation and couldn't find how to do it.
CocoaPods doesn't support pod deletions, you should release a new version with the deprecated flag set. We're working on figuring out how to support deletions, but it's a long process and we want to ensure it's right.
Related
When I run my Workspace on the simulator I get the message
"Class PFFile/ PFLogger is implemented in both (Path) and (Path). One of the two will be used. Which one is undefined."
I don't know how to solve this problem. I already tried cleaning and resetting.
objc[7398]: Class PFFile is implemented in both
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/PhotoFoundation.framework/PhotoFoundation (0x11fdaf1b8)
and
/Users/Sven/Library/Developer/CoreSimulator/Devices/20F88AC5-6C5F-4492-8324-9205B54FB32C/data/Containers/Bundle/Application/8DD1D026-2D96-49E1-A485-6FCBD9899005/FitTip.app/Frameworks/Parse.framework/Parse (0x108c27408).
One of the two will be used. Which one is undefined.
objc[7398]: Class PFLogger is implemented in both
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/PhotoFoundation.framework/PhotoFoundation (0x11fdaff28)
and
/Users/Sven/Library/Developer/CoreSimulator/Devices/20F88AC5-6C5F-4492-8324-9205B54FB32C/data/Containers/Bundle/Application/8DD1D026-2D96-49E1-A485-6FCBD9899005/FitTip.app/Frameworks/Parse.framework/Parse (0x108c279f8).
One of the two will be used. Which one is undefined.
Cause
You're seeing this error because both Parse and PhotoFoundation have files named PFFile and PFLogger. In Objective-C, your program cannot have two classes that share the same class name. This is part of the reason why Apple advocates using a three letter prefix for your own class names. Apple's own frameworks always use two letter prefixes, hence PhotoFoundation related classes have a PF prefix.
Unfortunately in this case, Parse also chose to use the PF prefix across all of the classes in the library that they built. In isolation this won't cause a problem, but when other frameworks come into the picture there's a risk of namespace collisions (which is exactly what's happening here).
Solution
You avoid a namespace collision by simply making sure you don't use the same names. In your case, you don't own either of these classes so it's not as straightforward. Luckily this issue was already reported on the Parse SDK GitHub page and the fix was implemented on the latest version of the Parse SDK (1.17.2). Parse's PFFile and PFLogger were renamed to PFFileObject and PFSystemLogger respectively.
You probably have an older version of the Parse SDK installed in your project. This can be verified by going into the root folder of the project and opening up Podfile.lock in any text editor. You can see what version of the library is currently installed by CocoaPods. Run pod update Parse and CocoaPods should update it to the latest version.
TL;DR pod update Parse. If that fails: pod repo update, pod install
Slightly different problem. Etrecheck pointed out this problem:
Class MDSPathFilter is implemented in both /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata (0x7fff9a7d1420)
and /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mdbulkimport (0x10ad41948)
One of the two will be used. Which one is undefined.
I am not proficient in this stuff, but able to follow directions if anyone has any to share. They both look too important to poke at ...
I support podspec NotifySDK. Now its version is 1.0.8 (published and available through cli).
Problems
Cocoapods.org is sure that current version is 1.0.6 despite the fact that this version was changed more than 2 weeks ago.
I absolutely don't understand what I should to do to show Pod page on cocoapods.org. Cocoapods redirects me to my site.
Attempts to fix
I tried to find answers on stackoverflow and on github but I can't. The most often recommendation is to wait but 2 weeks is enough time to update indexes.
During reading source of cocoapods I encountered few interesting things but they didn't help me.
I found out that cocoapods.org > app.rb uses cocoadocs metrics for presentation pod info.
def metrics
pods.outer_join(:github_pod_metrics).on(:id => :pod_id).join(:cocoadocs_pod_metrics).on(:id => :pod_id)
end
but cocoadocs is deprecated. Or not?
Project cocoapods-metadata-service contains next string in README:
Downside: This will only work for Open Source projects on GitHub.
My project isn't opensource. But frameworks are available on github.com
It seems to me that metrix are incomplete. Page http://metrics.cocoapods.org/api/v1/pods/NotifySDK shows github metrics without cocoadocs.
I would be appreciate for your help.
Also may be you can answer to next questions:
Is there any way to force reindex podspec?
Is there scheme of Cocoapods infrastructure?
Is there any way to get database of cocoapods?
I am getting a No such module Toaster. I have installed the pod, also after searching on SO, I fixed the red Pod_Project.Framework issue. Now its gray. I also verified Framework Search Path's and ensured that the Pod in question is recursive.
I have read thru this and this. Ideally I expected that things should have worked by default, just install the Pod and import and it should work. Is this expectation incorrect ? Should I need to change settings everytime I install a pod ?
EDIT 1
Also added Toaster pod to the Framework Search Path
Still the same No such module error on the import.
EDIT 2
I tried opening the .xcworkspace. But same issue again.
#siddharth as you mention above is correct. But Linked FrameWorks and Libraries are not in build Settings. It is In Build Phases
I am wondering what is the best way to include a demo project with a CocoaPod. In particular, I want this to a be a component that anyone can try using the pod try command.
I see two options:
option 1: embedded project in Examples/ with a Podfile
Here the Pod contains an embedded project, which uses a Podfile to reference the pod itself.
This is what is suggested by the directory structure produced via the pod lib create command, and by the CocoaPods documentation.
option 2: embedded project in Demo/ using pod as a resource
Here the Pod contains an embedded project, where the Xcode project file uses a relative path to refer directly to resources from the pod itself.
This is what I see in various examples in the wild, and it is what is working right now in a Pod I am authoring.
As CocoaPods is still in flux, I am wondering if one way is more "blessed" than the other. Is the documentation suggesting option 1 out of date? Or is the code supporting option 2 out of date? Will both work with pod try going forward?
Please, see as also this answer where demo project search heuristics are explained.
The best solution is to look through the def pick_demo_project(dir) routine in the try-plugin source https://github.com/CocoaPods/cocoapods-try/blob/master/lib/pod/command/try.rb#L133 to see the actual demo choosing options.
I would like to use an existing pod, modify it to fit my needs and finally use it in my Podfile.
So far for the pod I did :
edit the code
commit the new code into a new branch
remove the github origin in the pod's podsspec
specify the new branch in my podfile with :branch
Now I'm stuck because I cannot get CocoaPods to checkout the modified pod. I tried with :git => 'file:///vendor_custom/test' but it doesn't seems to take into account a relative path. I also copied the .git content and changed it to bare repository type. No luck.
Any pointers? Thanks
Oh. It was right in the documentation here.
pod 'YourCustomPod', :path => 'relative/path/...'
In this case you'll miss the future updated from the library which might be bug-fixes or future updates
There is another way in which you can customise it as well as update it in future
Here is an article which i have written explaining the same.
https://medium.com/#mihirpmehta/how-to-modify-cocoapods-library-within-pods-647d2bf7e1cb