Cocoapods使用过程中遇到的问题
前言:记录一些在CocoaPods使用过程中遇到的问题,本地环境:Xcode9.0
- 发现有的时候在执行pod init的时候不能正常地创建出来pod File文件,显示的错误如下:
1 ――― MARKDOWN TEMPLATE ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― 2 3 ### Command 4 5 ``` 6 /Users/wangyongwangyongwang/.rvm/rubies/ruby-2.3.0/bin/pod init 7 ``` 8 9 ### Report 10 11 * What did you do? 12 13 * What did you expect to happen? 14 15 * What happened instead? 16 17 18 ### Stack 19 20 ``` 21 CocoaPods : 1.0.1 22 Ruby : ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] 23 RubyGems : 2.6.6 24 Host : Mac OS X 10.12.6 (16G29) 25 Xcode : 9.0 (9A235) 26 Git : git version 2.10.1 27 Ruby lib dir : /Users/wangyongwangyongwang/.rvm/rubies/ruby-2.3.0/lib 28 Repositories : master - https://github.com/CocoaPods/Specs.git @ 74d8002565cb1b582426b5affef1b97991b4c14c 29 ``` 30 31 ### Plugins 32 33 ``` 34 cocoapods-deintegrate : 1.0.1 35 cocoapods-plugins : 1.0.0 36 cocoapods-search : 1.0.0 37 cocoapods-stats : 1.0.0 38 cocoapods-trunk : 1.0.0 39 cocoapods-try : 1.1.0 40 ``` 41 42 ### Error 43 44 ``` 45 RuntimeError - [Xcodeproj] Unknown object version. 46 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0@global/gems/xcodeproj-1.3.0/lib/xcodeproj/project.rb:217:in `initialize_from_file' 47 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0@global/gems/xcodeproj-1.3.0/lib/xcodeproj/project.rb:102:in `open' 48 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0@global/gems/cocoapods-1.0.1/lib/cocoapods/command/init.rb:41:in `validate!' 49 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0@global/gems/claide-1.0.0/lib/claide/command.rb:333:in `run' 50 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0@global/gems/cocoapods-1.0.1/lib/cocoapods/command.rb:50:in `run' 51 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0@global/gems/cocoapods-1.0.1/bin/pod:55:in `<top (required)>' 52 /Users/wangyongwangyongwang/.rvm/rubies/ruby-2.3.0/bin/pod:22:in `load' 53 /Users/wangyongwangyongwang/.rvm/rubies/ruby-2.3.0/bin/pod:22:in `<main>' 54 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 55 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 56 ``` 57 58 ――― TEMPLATE END ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― 59 60 [!] Oh no, an error occurred. 61 62 Search for existing GitHub issues similar to yours: 63 https://github.com/CocoaPods/CocoaPods/search?q=%5BXcodeproj%5D+Unknown+object+version.&type=Issues 64 65 If none exists, create a ticket, with the template displayed above, on: 66 https://github.com/CocoaPods/CocoaPods/issues/new 67 68 Be sure to first read the contributing guide for details on how to properly submit a ticket: 69 https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md 70 71 Don't forget to anonymize any private data! 72 73 wangwang:WWTestCocoaPodsError wangyongwangyongwang$
解决问题:根据错误提示可以发现参考 使用CocoaPods出现问题的时候都可以查看CocoaPods issues 我这边的错误是参考的 pod init error #7208
解决方法:关键的命令是这一句:Try gem install cocoapods -v 1.4.0.beta.2
or gem install cocoapods -v 1.3.1
然后就没问题了
插曲:其实我在解决上边问题的时候,第一次忘了输入cocoapods了,然后报错如下
ERROR: While executing gem ... (Gem::CommandLineError)
Please specify at least one gem name (e.g. gem build GEMNAME)
解决办法:后来我正确输入命令没问题后,就解决了这个问题了
自我分析:上边的命令是让我们更新Cocoapods到1.3.1版本,我在更新前都是用的比较老的1.0.1 (pod --version查看安装的Cocoapods的版本)
多想一点CocoaPods的本质到底是什么:
深入理解 CocoaPods 提到CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。CocoaPods是用 Ruby 写的,并由若干个 Ruby 包 (gems) 构成的。所以她才会用gem intall 这种方式安装Cocoapods
CocoaPods是这么说自己的:CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 39 thousand libraries and is used in over 2.7 million apps. CocoaPods can help you scale your projects elegantly.CocoaPods is built with Ruby and is installable with the default Ruby available on OS X. We recommend you use the default ruby.
CocoaPods是对于Swift和Objective-C的Cocoa项目的依赖管理工具,她已有39000多个库,并且应用于27万多个app。CocoaPods可以帮助你使你的项目更小更优雅。CocoaPods的基础是Ruby,并且OS X上默认已经安装了Ruby,我们建议您使用默认的Ruby。
2.在使用pod update --verbose --no-repo-update的时候不能够正常地导入所要导入的第三方库
我要导入的库是 pod 'CYLTabBarController', '~> 1.14.1'
提示的问题是:
1 Update all pods 2 Preparing 3 4 Analyzing dependencies 5 6 Inspecting targets to integrate 7 Using `ARCHS` setting to build architectures of target 8 `Pods-WWCopyHomeWorkBox`: (``) 9 Using `ARCHS` setting to build architectures of target 10 `Pods-WWCopyHomeWorkBoxTests`: (``) 11 Using `ARCHS` setting to build architectures of target 12 `Pods-WWCopyHomeWorkBoxUITests`: (``) 13 14 Resolving dependencies of `Podfile` 15 [!] Unable to satisfy the following requirements: 16 17 - `CYLTabBarController (~> 1.14.1)` required by `Podfile` 18 19 None of your spec sources contain a spec satisfying the dependency: `CYLTabBarController (~> 1.14.1)`. 20 21 You have either: 22 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`. 23 * mistyped the name or version. 24 * not added the source repo that hosts the Podspec to your Podfile. 25 26 Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default. 27 28 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/resolver.rb:461:in `handle_resolver_error' 29 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/resolver.rb:80:in `rescue in resolve' 30 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/resolver.rb:72:in `resolve' 31 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:771:in `block in resolve_dependencies' 32 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/user_interface.rb:64:in `section' 33 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:768:in `resolve_dependencies' 34 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer/analyzer.rb:79:in `analyze' 35 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:242:in `analyze' 36 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:154:in `block in resolve_dependencies' 37 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/user_interface.rb:64:in `section' 38 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:153:in `resolve_dependencies' 39 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/installer.rb:116:in `install!' 40 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command/update.rb:81:in `run' 41 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run' 42 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command.rb:52:in `run' 43 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/gems/cocoapods-1.3.1/bin/pod:55:in `<top (required)>' 44 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/bin/pod:22:in `load' 45 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/bin/pod:22:in `<main>' 46 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 47 /Users/wangyongwangyongwang/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
检查了本地的版本:pod --version
1 wangwang:WWCopyHomeWorkBox wangyongwangyongwang$ pod --version 2 1.3.1
检查pod 库中是否存在我们要添加的相应的版本的pod库:当我执行pod Search CYLTabBarController的时候显示如下:显示表明 pod 库里边有我要添加的这个版本
1 wangwang:WWCopyHomeWorkBox wangyongwangyongwang$ pod search CYLTabBarController 2 3 4 -> CYLTabBarController (1.14.2) 5 Highly customizable tabBar and tabBarController for iOS 6 pod 'CYLTabBarController', '~> 1.14.2' 7 - Homepage: https://github.com/ChenYilong/CYLTabBarController 8 - Source: https://github.com/ChenYilong/CYLTabBarController.git 9 - Versions: 1.14.2, 1.14.1, 1.14.0, 1.13.2, 1.13.1, 1.13.0, 1.12.1, 1.12.0, 10 1.11.0, 1.10.0, 1.9.0, 1.8.0, 1.7.0, 1.6.7, 1.6.6, 1.6.5, 1.6.4, 1.6.3, 11 1.6.2, 1.6.1, 1.6.0, 1.5.6, 1.5.5, 1.5.4, 1.5.3, 1.5.2, 1.5.1, 1.5.0, 1.4.5, 12 1.4.4, 1.4.3, 1.4.2, 1.4.1, 1.4.0, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.9, 1.2.8, 13 1.2.7, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.1, 1.1.0, 1.0.9, 14 1.0.7, 1.0.6, 1.0.5, 1.0.4, 1.0.3, 1.0.2, 1.0.1, 1.0.0 [master repo] 15 16 -> CYLTabBarController-JDBR (0.0.1) 17 Highly customizable tabBar and tabBarController for iOS 18 pod 'CYLTabBarController-JDBR', '~> 0.0.1' 19 - Homepage: https://github.com/jidibingren/CYLTabBarController 20 - Source: https://github.com/jidibingren/CYLTabBarController.git 21 - Versions: 0.0.1 [master repo] 22 (END)
最后是直接执行的pod update
然后就下载pod 库(CYLTabBarController)成功了
1 wangwang:WWCopyHomeWorkBox wangyongwangyongwang$ pod update 2 Update all pods 3 Updating local specs repositories 4 $ /usr/local/bin/git -C /Users/wangyongwangyongwang/.cocoapods/repos/master 5 fetch origin --progress 6 remote: Counting objects: 30286, done. 7 remote: Compressing objects: 100% (428/428), done. 8 remote: Total 30286 (delta 10941), reused 11002 (delta 10785), pack-reused 19046 9 Receiving objects: 100% (30286/30286), 3.26 MiB | 1.72 MiB/s, done. 10 Resolving deltas: 100% (20275/20275), completed with 3295 local objects. 11 From https://github.com/CocoaPods/Specs 12 e1a2033..e327ca5 master -> origin/master 13 $ /usr/local/bin/git -C /Users/wangyongwangyongwang/.cocoapods/repos/master 14 rev-parse --abbrev-ref HEAD 15 master 16 $ /usr/local/bin/git -C /Users/wangyongwangyongwang/.cocoapods/repos/master 17 reset --hard origin/master 18 Checking out files: 100% (269710/269710), done. 19 HEAD is now at e327ca5 [Add] OptimizelySDKUserProfileService 1.5.0-RC 20 warning: inexact rename detection was skipped due to too many files. 21 22 CocoaPods 1.4.0.beta.2 is available. 23 To update use: `gem install cocoapods --pre` 24 [!] This is a test version we'd love you to try. 25 26 For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.4.0.beta.2 27 28 Analyzing dependencies 29 Downloading dependencies 30 Installing CYLTabBarController (1.14.2) 31 Generating Pods project 32 Integrating client project 33 34 [!] Please close any current Xcode sessions and use `WWCopyHomeWorkBox.xcworkspace` for this project from now on. 35 Sending stats 36 Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
先写到这么多,以后再更新;
如有问题,敬请指正;
如需转载,请注明出处,谢谢!