uniapp mac m1 arm芯片编译问题

发布于:2024-07-11 ⋅ 阅读:(34) ⋅ 点赞:(0)

一.先安装nvm,如果已经安装跳过

        参考网址:Mac OS 下安装 NVM 「保姆级 教学」 - 知乎 (zhihu.com)

1.1.安装NVM

按照 官网 指引操作运行如下安装:

 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash 

如果成功,那恭喜你!!!!

1.2安装

#执行下面安装后可以看看版本号
nvm install 20  

#看node版本号
node -v
#看npm版本号
npm -v

1.3如果不成功,出现:

超时,可以多试几次,几次多不行那也不要慌,往下看

方法1:

先获取IP ping http://raw.githubusercontent.com // 例如 192.168.1.1

然后更改 hosts sudo vim /etc/hosts 添加如下 192.168.1.1 http://raw.githubusercontent.com :wq 保存并退出

再次执行安装命令多次(不行多试几次)是可行的。

方法2:

在浏览器中访问 https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh,如果可以访问,下载该文件到本地,如果浏览器中也访问不了,那就想办法找vpn代理浏览器,代理之后访问:https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh 并下载

下载之后再终端中执行该文件:

./install.sh 

如果没有权限使用方面的方式:

chmod +x install.sh  

再执行:

sudo ./install.sh

安装成功后执行 nvm 提示 command not found

首先查看 ~/.bash_profile 文件是否存在,如下内容(通常是安装后会自动生成),如果没有则手动添加:

 vim ~/.bash_profile 

添加内容:

export NVM_DIR="$HOME/.nvm"
[-s "$NVM_DIR/nvm.sh"] && \."$NVM_DIR/nvm.sh"# This loads nvm 
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion 

:wq 保存退出,执行 nvm 验证。

如果已经存在还是不行,就看下有没有 ~/.zshrc 文件,如果没有就用 vim 创建一个,并在其中插入下面的命令语句:

 vim ~/.zshrc

添加内容:

 source ~/.bash_profile

:wq 保存退出,推出终端,再次打开并执行 nvm 验证,多数应该成功了。

 二.安装yarn 

2.1先安装Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 2.2安装yarn

brew install yarn

#查看是否安装好
yarn --version

三.开始解决问题

参考连接:针对m1 mac 用户优化hbuilder的方法,替换不协调的图标以及更换arm版本node的全过程
 

3.1备份Hbuilder X,防止操作失败影响搬砖

  • 进入应用程序目录对Hbuilder X 压缩,如操作过程中出现问题,可以删除APP并直接解压

3.2替换图标

  • 打开网站 https://macosicons.com/how-to#/,搜索HBuilder,找到喜欢的图标下载下来
  • 打开 应用程序目录,点击选中Hbuilder X, 然后按下 command + i 打开简介窗口
  • 拖动下载的图标到 简介窗口的图标位置,重启Hbuilder 新图标就换好了

3.3修改Hbuilder 内置node 为 本机Arm版本

在终端执行 where node,会输出本地node 所在位置
例如:/Users/xx/.nvm/versions/node/v16.14.2/bin/node,
在终端执行 open /Users/xx/.nvm/versions/node/v16.14.2/bin打开node所在目录,
以及 open /Applications/HBuilderX.app/Contents/HBuilderX/plugins/node,打开Hbuilder内置node目录,
接下去复制本地的node到HBuilderX的node目录中,记住是复制!!不要直接拖动过去

这时候项目是运行不了的,因为Hbuilder内置了node-sass,并不匹配Arm版node,
终端会报错,如下内容,不要根据提示去操作,不会有效果的

复制代码[0;31m--> LibSass 的二进制文件(/Applications/HBuilderX.app/Contents/HBuilderX/plugins/compile-node-sass/node_modules/node-sass-china/vendor/darwin-arm64-93/binding.node)缺失,请执行下面3条命令下载对应版本的二进制文件:(有可能引发此错误的原因是 Node 版本变更)[0m   
14:39:41.361   mkdir -p /Applications/HBuilderX.app/Contents/HBuilderX/plugins/compile-node-sass/node_modules/node-sass-china/vendor/darwin-arm64-93  
14:39:41.363   cd /Applications/HBuilderX.app/Contents/HBuilderX/plugins/compile-node-sass/node_modules/node-sass-china/vendor/darwin-arm64-93  
14:39:41.365   curl -o binding.node http://cdn.npm.taobao.org/dist/node-sass/v4.7.2/darwin-arm64-93_binding.node

3.4替换node-sass 为 dart-sass

  • 首先 终端执行 cd /Applications/HBuilderX.app/Contents/HBuilderX/plugins,打开plugins目录
  • 执行rm -rf compile-node-sass 删除node-sass目录
  • 执行yarn add sass,
  • 重启编辑器

3.5解决真机调试问题

一直没有看到用到这个功能,所以没发现,看到评论有问题,记录一下解决的过程,有其他问题可以也可以用这个方法

如发现某些功能异常,打开 hbuilder 帮助->查看运行日志,清空日志,重新操作未正常启动的功能。
查看日志,一般都是缺少一些模块的报错,如缺少在出错的插件目录下安装即可

  • 在 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/launcher 目录下安装 执行 yarn add archiver
  • 清空plugins/launcher/tools/adbs 目录,下载arm版本adb拖动进去 或 使用brew安装adb,在hbuilder偏好设置- 运行配置- adb路径中修改 (但在活动监视器中adb进程还是会显示intel,不知为何)
  • 重启编辑器


 

四.IOS真机测试签名生成

 appleDeveloper官网  网站上操作

4.1生成Developement证书

公司已经IOS开发者账号,所以已经生成了Developement证书

在开始之前

创建证书

  • 打开:应用程序 -> 钥匙串访问
  • 在顶部菜单中选择:钥匙串访问 > 证书助理 > 从证书颁发机构请求证书
  • 填写: 电子邮件 名称
  • 选择:储存到磁盘
  • 保存好并记住它的位置
  • 打开并登录 Apple 开发者网站
  • 在页面中点击证书: Certificates, Identifiers & Profiles. -> Certificates
  • 在证书页面的子标题 Certificates 旁点击加号:  新增一个证书

创建 Apple iOS 分发证书和 p12 文件

创建 Apple iOS Certificates 证书

  • 选择分发类型并确认
    • 用与正式发布商店选择 App Store and Ad Hoc
    • 用于测试、调试等选择 iOS App Development
    • 你也可以选择全平台证书 Apple Development
  • 选择上传之前从保存到磁盘的 CSR 证书文件并确认
  • 选择右上方的 Download 下载完整证书并保存好
  • 双击打开刚下载的证书文件,并在 钥匙串访问 中找到选择它 (通过名称或邮件地址和时间确认)
  • 右键点击选择 导出...
  • 文件格式选择 .p12 ,保存时会提示设置证书密码,然后要输入电脑密码授权,最后记得保存好
  • 至此,你的分发证书就创建好了。

4.2 生成测试用bundleid

 

4.3加入测试IOS的设备

蒲公英 | 一步快速获取 iOS 设备的UDID (pgyer.com)  先拿到自己的uuid

然后自定义命名,把设备加到测试设备中,开发签名一定要先保证设备先添加

4.4生成Profiles

1.新增

2.选择类型  这里显示的开发使用

3.选择对应的可用的证书

4.选择哪些测试设备

5.输入自定义的名字,好记好区分即可

6.点击下载到本地

五.配置Uniapp测试签名

首先4.2里生成的BundleID

证书密码是p12( 即4.1里导出的证书,安装到本机,再导出的p12文件)

设备profiles 4.4步骤里完成下载的即可完成