在 MacBook Pro(M1) 安装 Pod

本文介绍如何在搭载M1芯片的MacBook Pro上安装并配置cocoaPods,包括解决常见错误的方法及替换国内镜像源的步骤。

在 MacBook Pro(M1) 安装 Pod

1 安装 Pod

在终端执行安装命令:

sudo gem install cocoapods
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

参考: [error report] pod install /w m1 macbook

否则,执行 pod install 时,可能会遇到以下错误信息:

LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi_c.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi_c.bundle - /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi_c.bundle
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi.rb:6:in `rescue in <top (required)>'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi.rb:3:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ethon-0.12.0/lib/ethon.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:74:in `cdn_url?'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:36:in `create_source_with_url'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:21:in `find_or_create_source_with_url'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:178:in `block in sources'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:177:in `map'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:177:in `sources'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:1073:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:1072:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:414:in `analyze'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:239:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:238:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:160:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'

2 替换国内镜像源

由于 cocoaPods的官方源在github,国内访问可能会比较慢,建议替换为国内的镜像源。

# 查看当前源
pod repo list

输出信息可能如下:

cocoapods
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/<yourname>/.cocoapods/repos/cocoapods

替换国内镜像源

# 删除现有仓库
cd ~/.cocoapods/repos
pod repo remove cocoapods
# 下载新仓库,以下为北京外国语大学镜像源
git clone https://mirrors.bfsu.edu.cn/git/CocoaPods/Specs.git master

修改项目 Podfile,替换 CocoaPods 仓库地址:

#CocoaPods官方spec仓库
-source 'https://github.com/CocoaPods/Specs.git'
+# source 'https://github.com/CocoaPods/Specs.git'
+source 'https://mirrors.bfsu.edu.cn/git/CocoaPods/Specs.git'

3 懒人技巧

如果不想每次 pod install 都敲 arch -x86_64,可以取个别名,在文件 ~/.bash_profile, ~/.bashrc 或 ~/.zshrc 内添加以下内容

# Intel Platform
alias intel="arch -x86_64"

使用方法:

intel pod install
### 安装Python dlib库的具体操作 对于MacBook Pro M1设备而言,安装dlib库并非易事,因为该芯片架构特殊,部分软件可能无法直接兼容。然而,通过Anaconda环境管理工具可以较为顺利地完成这一过程[^1]。 #### 创建特定版本的Conda环境 考虑到M1处理器以及后续可能会遇到的各种依赖关系问题,建议创建一个新的虚拟环境来专门用于此项目。这一步骤能够有效隔离不同项目的依赖冲突,并确保所使用的Python版本是最新的稳定版之一(如3.9),而不是macOS自带的老化版本2.7[^4]。 ```bash conda create -n face_detection_env python=3.9 ``` 激活新建立好的环境: ```bash conda activate face_detection_env ``` #### 安装必要的构建工具CMake 鉴于dlib对外部库cmake存在强依赖性,在正式引入目标模块之前先要保证系统内已正确部署好这个编译器。可以通过Homebrew轻松获取最新发行版;如果尚未安装Homebrew,则需先行访问其官方网站依照指示进行设置[^2]。 利用Homebrew安装CMake: ```bash brew install cmake ``` 确认安装无误后可通过命令`cmake --version`查看当前版本信息。 #### 获取并编译DLib源码 不同于简单调用pip来进行自动化安装的方式,针对Apple Silicon平台上的特殊情况,更推荐从GitHub仓库克隆官方发布的dlib源代码副本,接着依据README.md文档中的指导说明手动执行构建流程。这样做不仅有助于绕过预编译二进制文件不适配ARM架构的问题,还能让用户更好地理解整个安装机制背后的工作原理。 前往终端应用,依次键入下列指令以拉取远程资源并切换至对应目录下: ```bash git clone https://github.com/davisking/dlib.git cd dlib mkdir build; cd build ``` 随后根据个人需求调整配置选项,比如是否启用GPU加速支持等功能特性,再运行下面这条语句触发实际的编译动作: ```bash cmake .. make -j8 ``` 最后把生成的目标产物加入到PYTHONPATH环境变量里去以便于之后导入使用: ```bash export PYTHONPATH=$PWD:$PYTHONPATH ``` 此时理论上已经可以在基于Rosetta 2翻译层之上正常运作的应用程序中加载dlib了,不过为了获得最佳性能表现还是应当优先考虑原生移植方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值