I’m just gonna list issues here as I come across them.
A local dependency, specified with the :local
option, that isn't expanded (e.g. contains a tilde) or can’t be found results in an exception
No such file or directory - ~/Code/Fingertips/github/FTWebViewController
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/generator/documentation.rb:63:in `chdir'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/generator/documentation.rb:63:in `generate'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer/pod_source_installer.rb:134:in `block in generate_docs'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/user_interface.rb:43:in `section'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer/pod_source_installer.rb:133:in `generate_docs'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer/pod_source_installer.rb:84:in `install!'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:312:in `install_source_of_pod'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:282:in `block (2 levels) in install_pod_sources'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/user_interface.rb:43:in `section'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:281:in `block in install_pod_sources'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:279:in `each'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:279:in `install_pod_sources'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:91:in `block in install!'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/user_interface.rb:43:in `section'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/installer.rb:89:in `install!'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/command/project.rb:40:in `run_install_with_update'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/command/project.rb:70:in `run'
/Users/eloy/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/claide-0.2.0/lib/claide.rb:535:in `run'
/Users/eloy/code/CocoaPods/CocoaPods/lib/cocoapods/command.rb:36:in `run'
/Users/eloy/code/CocoaPods/CocoaPods/bin/pod:16:in `<main>'
A normal install is too noisy
Finding Podfile changes:
Resolving dependencies of `Podfile`
Resolving dependencies for target `default' (iOS 6.0)
Comparing resolved specification to the sandbox manifest:
Downloading dependencies
Using CocoaLumberjack (1.6)
Using DirectoryWatchdog (1.0.0)
Using FTWebViewController (0.0.1)
Using HockeySDK (2.5.5)
Using SYPaginator (0.0.1)
Using StyledPageControl (1.0)
Generating Pods Project
Integrating client projects
At the very least, the first 4 lines could be condensed to something short like ‘Resolving dependencies’.
The deletions are also too verbose:
Removing deleted dependencies
Removing StyledPageControl
I’m leaning towards just showing the first line only, but I’m not sure yet.
Another option, which is more like how it currently works, is to make ‘Installing X’ lines green and ‘Deleting X’ lines red (in which case only the second line of the above example should be used).
Directories in resources patterns are not matched
Take for instance the SYPaginator lib, which specifies the following resources pattern: Resources/*
. Previously this lead to the following lines in the resources script:
install_resource 'SYPaginator/Resources/de.lproj'
install_resource 'SYPaginator/Resources/en.lproj'
install_resource 'SYPaginator/Resources/es.lproj'
install_resource 'SYPaginator/Resources/fr.lproj'
install_resource 'SYPaginator/Resources/id.lproj'
install_resource 'SYPaginator/Resources/it.lproj'
install_resource 'SYPaginator/Resources/ja.lproj'
install_resource 'SYPaginator/Resources/ko.lproj'
install_resource 'SYPaginator/Resources/ms.lproj'
install_resource 'SYPaginator/Resources/nl.lproj'
install_resource 'SYPaginator/Resources/pt.lproj'
install_resource 'SYPaginator/Resources/pt_PT.lproj'
install_resource 'SYPaginator/Resources/ru.lproj'
install_resource 'SYPaginator/Resources/sv.lproj'
install_resource 'SYPaginator/Resources/SYPaginatorResources-Info.plist'
install_resource 'SYPaginator/Resources/zh_Hans.lproj'
install_resource 'SYPaginator/Resources/zh_Hant.lproj'
But currently only adds:
install_resource 'SYPaginator/Resources/SYPaginatorResources-Info.plist'
So it’s clear that all the directories are being ignored and it only includes files.
The xcworkspace document is regenerated when it isn’t necessary and removes unrelated xcodeproj references.
I have a workspace that was previously generated by CocoaPods 0.16. Later on I added a third unrelated Xcode project to the workspace. This has always been fine, because CP would change the workspace anymore.
Now it regenerates the workspace but does not include the third unrelated project.
Before:
<?xml version='1.0' encoding='UTF-8'?>
<Workspace version='1.0'>
<FileRef location='group:Report 2012.xcodeproj'/>
<FileRef location='group:Vendor/PSPDFKit-2.8.2/PSPDFKit/PSPDFKit-lib.xcodeproj'/>
<FileRef location='group:Pods/Pods.xcodeproj'/>
</Workspace>
After:
<?xml version='1.0' encoding='UTF-8'?>
<Workspace version='1.0'>
<FileRef location='group:Report 2012.xcodeproj'/>
<FileRef location='group:Pods/Pods.xcodeproj'/>
</Workspace>