Mac Mini Apple M1 2020 上构建Unity 2017/2018工程

发布时间 2023-09-06 17:15:28作者: opencoder

对于Mac Mini Apple M1 2020来说,因为更新到了MacOS 13.4.1 ,在该设备上不能打开Unity 2017/2018了。所以采用另外的方式来构建ios版本:在windows10系统上导出ios build, 然后把该build拷贝到mac minini上来构建。尝试了该方式,是可行的。具体的操作流程如下:

  • 购买一块240G的固态硬盘,把该固态硬盘作为服务器的文件共享空间,用来在windows10和MacMini上传输数据
  • 在Windows 10上构建ios build, 打包为.zip文件,把压缩包上传到文件共享目录
  • 在Mac Mini上从共享文件夹提取压缩文件,本地解压;执行pod install安装 admob 等依赖库,用XCode打开项目,正常构建

cocoapods 设置

cocoapods 安装 (Mac Mini Apple M1 2020, MacOS Ventura 13.4.1, Xcode 14.2)以下命令会执行成功,不会报错

sudo xcode-select -s /Applications/Xcode.app
sudo xcode-select --install
sudo gem install cocoapods
pod setup

在build目录下执行pod install, 报以下错误:

.gem/ruby/2.6.0/gems/ffi-1.15.0/lib/ffi/library.rb:275: [BUG] Bus Error at 0x00000001025f0000

ffi 缺失,M1 架构不同,pod install 时指定 x86_64,

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

再次执行 arch -x86_64 pod install, 报以下错误:

CDN: trunk URL couldn’t be downloaded:

说是新版的pod CDN切换为默认的spec repo源,执行arch -x86_64 pod repo remove trunk移除 trunk 源即可, 解决方法:
Podfile文件添加source源:source 'https://github.com/CocoaPods/Specs.git'
frc-9a6184a3d34050c3e78f978a7842b205

执行 arch -x86_64 pod repo remove trunk 移除 trunk
执行 arch -x86_64 pod install,首次执行该命令会耗费大约10来分钟,从第二次开始速度就比较快了,大约30秒左右就可以了

Xcode 14.2 构建 build 版本

打包到最后会报一个错误

MapFileParser.sh: Permission denied

解决办法

sudo chmod -R 777 ./MapFileParser.sh

Unity构建设置

Xcode版本为14.2, 仅支持arm64位(完全采用64位的架构了),Unity设置架构为 arm64 (Unity 2017, Unity 2018都支持该设置), iOS版本为 10.0+

总结

采用Windows10上导出Unity构建工程,然后拷贝到MacMini上构建。工程配置库文件配置要么拷贝到 Plugins/iOS 目录下,要么用pod方式来配置。 在MacMini端,对项目执行以下命令设置工程,然后用XCode打开构建版本即可!