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

对于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’

执行 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打开构建版本即可!

$ cd build_1.2
$ arch -x86_64 pod install
$ sudo chmod -R 777 ./MapFileParser.sh

后记

这样尝试过在windows上unity构建ios包之后,发现PC 上编译ios build的速度要比mac mini上快很多,现在mac mini就用于最后真机打包测试和提交了。每次升级xcode, unity, admob版本时,这里都是一个很卡时间的地方,mac mini上用unity构建ios导出的时候,它会执行pod update 和pod install的操作,unity程序执行到最后会卡在哪里卡半天不动了。这样的流程就使得问题很清晰了,版本更新之后,问题就卡在了 pod install 这里。

unity 2022 + xcode 16 更新日记

1. 更新或者安装(有任何软件、操作系统、admob sdk版本的更新都需要这么做)cocoapods

sudo gem install cocoapods

然后在项目 build 目录下执行

pod install

报错了:

Load Error - Can not load  such file  -- ffi_c

2. 重新安装 ffi gem

sudo gem uninstall ffi
sudo gem install ffi

3. 再次执行 pod install
4. 这里可能会提示要求更新repo, 按照提示 执行对应的命令 就可以了
5. 然后执行 pod install (升级后的第一次执行比较慢,遇到网络错误,开VPN,第一次成功执行耗费时间比较长,后面相同的pod配置下,执行速度就几秒钟!)
6. 以后每次的版本更新都是这个流程!