2021-6-9更新:
Mac M1处理器在安装cocoapods时,会发生以下错误
LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle - /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle
错误提示
LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle - /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/lib/ffi_c.bundle
解决办法:
在应用程序-实用工具里,打开终端 显示简介
2.勾选以Rosetta方式打开
- 运行 sudo gem install cocoapods (之前安装过就略过)
- 运行 sudo gem install ffi
- 最后pod install
报错 :没有权限问题 在命令行语句执行前加sudo
背景:Mac OS Catalina 10.15.1 Xcode11.2.1
Cocoapods 版本:1.8.4
暴露问题:
1、pod install 命令出现问题
2、trunk 分支问题
3、cocoapods 源不稳定问题
解决:问题太多 决定卸载重装 记录流程。
卸载:
1、卸载cocoapods
问题1:在cocoapod 执行卸载 语句
sudo gem uninstall cocoapods
的时候 While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
改为:
sudo gem uninstall -n /usr/local/bin cocoapods
2、卸载本地cocoapods相关的插件
执行:
gem list --local | grep cocoapods
查询相关插件 如下图所示:
逐个删除相关插件:
sudo gem uninstall cocoapds-core
sudo gem uninstall cocoapods-deintegrate
sudo gem uninstall cocoapods-downloader
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats
sudo gem uninstall cocoapods-trunk
sudo gem uninstall cocoapods-try
...
3、查看gem 更新ruby源地址
这里官方简易尽可能的使用比较新的RubyGems版本,建议2.6.x以上
//更新gem
gem update --system # 这里请翻墙一下
//查询gem 版本
gem -v
查看ruby源
gem sources -l
查询结果如下:
因为我电脑本身就是最新的ruby源就不重新装了 不是上图中的源 需要移除老的ruby源 更新成这个
语句如下:
//移除ruby源 XXXXXX代表你查出来的源地址
gem sources --remove XXXXXX
//添加新ruby源
gem sources --add https://gems.ruby-china.com
//查询是否更新成功
gem sources -l
//确保只有 gems.ruby-china.com
4、安装Cocoapods
sudo gem install -n /usr/local/bin cocoapods
安装成功如下图所示:
5、执行pod setup
这步因为pod setup 克隆的镜像源 是国外的 so...换了个方式 用了国内的镜像 。(如果不换 pod setup 大概率不成功,或下一天可能,浪费时间,本人找了一天的替代源。)这里感谢下 CSDN的大佬的一篇文章,附上文章链接Pod setup 太慢终极解决办法
当我们去执行pod setup的时候,会发现那是一个相当的慢。估计一天的时间都浪费再这上面。这是因为使用的国外的镜像,只要使用国内的镜像就很好的解决了。
//查找repo 移除master文件
cd ~/.cocoapods/repos
pod repo remove master
//使用大佬给的国内镜像源
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
你会发现,那速度,老铁 6666...
这部分执行完后 就是cocoapods的使用了 不多做赘述 都比较熟悉了 我就简单的写下流程:
//cd 到项目路径下
cd xxxxxx
//初始化pod
pod init
//编辑podfile
open Podfile
//编辑完成
pod install
这里有个问题:
Cocoapods升级到v1.8后pod trunk发生异常
trunk Repo update failed
我新建立了个项目,集成了一个测试的demo, pod里只加了一个三方库 集成成功了。但是在自己的项目上出现了这个问题 。原因是自己项目里集成的第三方太多
解决方案 并不是网上说的把什么trunk删除 podfile上改source 而是链接不稳定的问题 遇到这种情况
需要把Podfile上的第三方库 需要一个一个的加三方库 然后一个一个的pod install 多试几次!!! 直到 pod install成功为止!
2020-05-13 更新:
最近打算把公司项目转成纯swift的 ,新建了个swift 的项目,cocoapods又出问题了 还是 报trunk Repo update failed问题 在podfile 加了个source :
source 'https://gitee.com/mirrors/CocoaPods-Specs.git'
完美解决。
问题二:pod install出现警告。
[!] The 168LogisticsSwiftTests [Debug]
target overrides the ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
build setting defined in Pods/Target Support Files/Pods-168LogisticsSwift-168LogisticsSwiftTests/Pods-168LogisticsSwift-168LogisticsSwiftTests.debug.xcconfig'. This can lead to problems with the CocoaPods installation - Use the
$(inherited)` flag, or
- Remove the build settings from the target.
网上给出的解决方法:
实际操作一遍 还是会出现警告
所以,先从这些警告入手, 进入工程项目文件夹 ->右键点击 .xcodeproj 文件 显示包内容 -> 打开 .pbxproj 文件 -> 文本搜索提示警告的内容 ’ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES’ -> 找到这些内容删除
然后输入 pod update 进行更新
解决了。具体为什么要删除这个配置 我百度了一下 没有找到能解释的文章 暂时先照着说的改一下 留待以后追究。
安装HomeBrew
官网地址 https://brew.sh/index_zh-cn
终端输入
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
不能用切换国内地址
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
——查看版本:brew -v
——安装软件:brew install 软件名
——搜索软件:brew search 软件名
——卸载软件:brew uninstall 软件名
——更新所有软件:brew update
——更新具体软件:brew upgrade 软件名
——显示已安装软件:brew list
——查看哪些已安装的程序需要更新: brew outdated
——显示包依赖:brew reps
——显示帮助:brew help
===========================================================================
2022-03-01 更新 :因为更新了系统,pod init 创建 Podfile报错:
Command```/usr/local/bin/pod init```
Report* What did you do?* What did you expect to happen?* What happened instead?
解决方法 :更新cocoapods
$ sudo gem update --system
$ sudo gem install cocoapods -n/usr/local/bin