简介
- 有利条件1: 2021年版本的M1 Pro芯片的MAC,当前能拿到的最新版本,自带的Gems和ruby版本足够新。
当然rvm和homebrew是默认不安装的。
有利条件2:虽然在国内,但是用了VPN,对于国内国外的RubyGems源访问都很正常。官方的和国内的镜像都能访问,并且访问速度几乎没差别。
https://gems.ruby-china.com/
https://rubygems.org/有利条件3:这是全新的电脑,没有老版本的CocoaPods干扰。
实践过程
Step1 安装CocoaPods本身
- 参考CocoaPods官方文档,进行安装尝试,其实就一个命令:
sudo gem install cocoapods
经过一段时间的等待,通过打印的信息,就知道CocoaPods安装成功了。常用手段,通过查版本号确认一下
pod --version
Step2 使用CocoaPods
首先要使用XCode创建一个工程
然后将终端切换到工程目录
使用命令
pod init
,创建Podfile文件
- 编辑Podfile文件,加上常用的第三方库。
可以使用vi,但是真难用。推荐使用Sublime Text,文本编辑的神器。
AFNetworking
SDWebImage
MBProgressHUD
Masonry
YYModel
YYCache
YYText
MJRefresh
DZNEmptyDataSet
WebViewJavascriptBridge
# Uncomment the next line to define a global platform for your project
platform :ios, '15.0'
inhibit_all_warnings!
target 'PandaBuy' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for PandaBuy
pod 'AFNetworking', '~> 4.0'
pod 'SDWebImage', '~> 5.0'
pod 'MBProgressHUD', '~> 1.2.0'
pod 'Masonry'
pod 'YYModel'
pod 'YYCache'
pod 'YYText'
pod 'MJRefresh'
pod 'DZNEmptyDataSet'
pod 'WebViewJavascriptBridge', '~> 6.0'
end
- 执行命令
pod install
,下载第三方库。这本来是常规操作,可是却遇到了ruby崩溃的问题。
问题1:
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: https://www.ruby-lang.org/bugreport.html
原因是未适配M1芯片。解决方法是执行下面的命令
sudo arch -x86_64 gem install ffi
You may have encountered a bug in the Ruby interpreter or extension libraries.
第2部分内容,出现
LoadError - dlopen(...)
问题的时候,参考文档的大概意思是重装ffi。不过实际试下来,感觉没有必要。只要执行一下arch -x86_64 pod install
,有时候就好了。估计M1芯片带来的问题是芯片架构的问题
问题2: 连接经常中断,很不稳定
这部分内容是比较莫名其妙的,尝试了一下,也不知道是否起作用,这里只是记录一下。
cocoapods报错fatal: unable to access ‘XXX.git/‘: LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection
将RubyGem的源由官方的切换到国内的镜像,情况并没有改善
后来参考了下面这篇文章,取消了git config的代理,一开始还不行,后来多试了几次,莫名其妙就好了。
// 取消全局代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
解决 Failed to connect to github.com port 443:connection timed out
感想
从事iOS开发8年多来,每次安装CocoaPods环境都要出问题。有好几次想换掉CocoaPods,可是一直没有成功。Carthage一直想用,也做过demo,只是一直没有做起来。
VPN一直没有,所以做过很多额外的努力。比如用免费的蓝灯。一次一次不断尝试。换镜像源。选择在晚上夜深人静的时候下载。等等各种折腾。有些措施纯粹是心理安慰。
电脑MAC也是一个问题。自己一直没有买,有些公司用的是别人剩下的,旧版本CocoaPods,RubyGems版本过低等等都是现实问题。
这一次,VPN也有了,MAC也是最新的,配置也不低,可是实际操作下来还是一堆问题,一点都不让人省心。
现在Swift的风头逐渐有盖过Objective-C的趋势,Swift Package Manager是XCode自带的,可以考虑尝试一下。