一定要看到花开-M1下的环境噩梦

人有时候就是喜欢犯贱。

关注我这快小一年的扯闲天的都知道,自己也算是经历了一劫吧。虽然,这劫难还不能说结束,但也算是走出来了。

一切,似乎正在朝着好的方向发展。

但是,就那么突然地,我去找了个逼班上。

没几个钱,更没什么排面。开发就俩人,一个我,一个后台。剩下的几个,都是些喜欢回复“收到”的纯种牛马。

就是有点对那个蓝牙指环感兴趣,在全职和兼职之间就那么鬼使神差地选择全职,觉得可以all in一下。

然后,这个逼班就上起来了。

Day1,发现似乎这台笔记本上没运行过RN新架构下的anroid工程?铺天盖地的kvm报错。。。。。。

当时就觉得---我不该在这里,我该待家里。

创建RN工程的时候那必然会考虑到鸿蒙,就选择了0.72.5版本。就挺纳闷,0.72.5创建出来的andorid工程是java的,编译的时候node_modules里跑的全是kotlin。。。。。。调整来调整去,往anroid工程里加各种kotlin插件,各种指定版本,却也是各种无效。第一天上班,上午全员吹牛逼,下午就在那手忙脚乱整环境。kt又没用过自然是两眼一抹黑完全被deepseek牵着鼻子走。末了快下班老板又过来讨论下技术,得又是一顿说。

上班第一天,喜提扁桃腺发炎,晚上跑药店买阿奇霉素。。。。。。

Day2,破罐子破摔直接不指定RN版本初始化,android自然是默认kt的,一顿加repo换maven源,anroid跑起来了!眼一闭先不管了,直接拿高版本RN干吧。测试了下truboModule,发现和之前鸿蒙RN做的操作不一样。试了半天算是把c++的跨平台实现做掉了,但andorid原生和RN的交互codengen没生成文件,还得继续查原因。鸿蒙RN里arkts和RN之间交互是基于c++的,但anroid/ios看文档似乎c++/RN与原生/RN是turboModule的两种实现方式。这就有点懵逼了。由于干鸿蒙RN的时候就围绕着鸿蒙在开发,andorid/ios都没管,看了RN的官方指南一下子搞不明白了。

其实这原生js交互还算是小事,真正头大的是ios的开发环境:ruby死活更新不了。

问来问去,deepseek最后都词穷了。我也不知道该不该继续问下去。

这是我最终成功安装的步骤

# Winning script!
brew install openssl@1.1 export PATH="$(brew --prefix)/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L$(brew --prefix)/opt/openssl@1.1/lib"
export CPPFLAGS="-I$(brew --prefix)/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="$(brew --prefix)/opt/openssl@1.1/lib/pkgconfig" rvm autolibs disable export RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC
export optflags="-Wno-error=implicit-function-declaration"
# 脚本是安装2.7.3,我安装后依然报错
#rvm install 2.7.3 --with-openssl-dir=$(brew --prefix)/opt/openssl@1.1
# 最终我选择了用brew直接安装ruby
brew install ruby

安装成功后设置ruby的path,ruby -v验证下版本正确,ruby就搞定了

  echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
ruby -v
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-darwin23]

重装了ruby后,cocoapod需要卸载重装(ruby生gem,gem生cocoapod。。。。。。)

  # 卸载所有 CocoaPods 相关 gem
gem uninstall cocoapods cocoapods-core cocoapods-downloader
# 删除残留的可执行文件
sudo rm -f /usr/local/bin/pod
  # 确认当前 Ruby 路径
which ruby # 应输出 /usr/local/opt/ruby/bin/ruby(Homebrew 安装路径)
# 安装 CocoaPods
gem install cocoapods
# 验证安装路径
gem env | grep "EXECUTABLE DIRECTORY" # 应指向 Homebrew 的 Ruby gem 目录
  # 将 Homebrew 的 Ruby gem bin 目录加入 PATH,注意我的是bash_profile,如果用zshrc的换成.zshrc
echo 'export PATH="/usr/local/lib/ruby/gems/3.4.0/bin:$PATH"' >> ~/.bash_profile
# 重新加载配置
source ~/.bash_profile

验证,结束

  pod --version
1.16.2

你以为故事结束了?

这才哪到哪!

晚上偶尔跑了下鸿蒙RN,结果发现鸿蒙模拟器死活连不上RN,好嘛,这是andorid/ios环境搞得差不多了把鸿蒙环境搞崩了吗?!

才上了两天班,原本平静的生活被搅了个天翻地覆。什么ArkTS的学习,什么鸿蒙RN的开发,统统都丢在一旁。白天焦头烂额,晚上回来继续痛苦面具。多亏了这发炎的扁桃腺,也不想出去散步运动了,真的是all in 啊。

Day3,pod依赖报错,还是DoubleConversion,folly这几个老演员。都是老套路了,pod换个清华的源也就解决了。ios也算是能编译了。新的问题又来了------yarn start后无论andorid还是ios都连不到服务器。发现RN0.78下Metro是0.82,和RN0.72.5下Metro v0.76有些版本差别。不知道是不是Metro的原因。调查不出来。更奇怪的是用yarn run ios/android就可以启动DevTool,此时无论ios还是andorid把壳工程打开都能debug。你就说奇怪不奇怪吧。

当然,还有更奇怪的,昨晚那个鸿蒙RN没法连服务器,最后电脑重启了一下,居然又可以了。

总结下,现在就是鸿蒙RN还是可以yarn start来连上本地服务器,但RN0.78下的ios/android只能用yarn run ios/android。

就这么诡异,好在已经见怪不怪,能干就干,就这么开发吧。下午开始研究起codegen,跟鸿蒙RN又是有点差别,学吧,菜就多练不是。

上午去体检加上新办张工资卡,路上柳絮挺多,然后就过敏了。。。。。。喉咙那个难受,不停干咳。晚上下班又去逛药店了,这次买了盒氯雷他定。发现我买药比搞RN0.78版本熟练多了。

M1上这些问题的根源,就在于当初买回来初始化的时候选择了去复制上一台pro(2018款,x86的cpu)。这导致了很多配置都是基于x86的,虽然在Rosetta下可以兼容,却也使得开发时遇到各种莫名其妙的环境问题。21年射出去的子弹终于在25年打中了自己的眉心。

这第三天怎么说呢?算是个好日子了吧,至少两个移动端都开始能跑了。

三天,才三天,就把养了大半年的精气神耗得七七八八,好不容易攒下的一点功力都散了。想想还有Day4,Day5,DayN。。。。。。

什么为20年后人均寿命100岁而努力?分明这上班才是最折寿的事啊。

PS:后面发现似乎是VSCODE下的bash挂了导致anroid/ios下没法yarn start,用系统自带的终端就一点问题都没有。现在就直接用中断起服务得了。

一定要看到花开-M1下的环境噩梦的更多相关文章

  1. 【转】花开正当时,十四款120/128GB SSD横向评测

    原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站 ...

  2. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  3. Windows下的环境搭建Erlang

    Windows下的环境搭建 Erlang 一.安装编译器 在http://www.erlang.org/download.html下载R16B01 Windows Binary File并安装. 二. ...

  4. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  5. 记一次Linux下JavaWeb环境的搭建

    今天重装了腾讯云VPS的系统,那么几乎所有运行环境都要重新部署了.过程不难懂,但是也比较繁琐,这次就写下来,方便他人也方便自己日后参考参考. 我采用的是JDK+Tomcat的形式来进行JavaWeb初 ...

  6. 跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建

    缘起 1.从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家.可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少.古人说无志之人常立志,有志之人立长志.今天, ...

  7. Ubuntu下 jdk环境变量设置

    流程 1. 官网下载对应的jdk文件 2. 在根目录 / 下创建一个java目录 mkdir /java 3. 使用mv命令 将下载下来的文件(压缩格式),移动到上一步创建的/java目录下   Ps ...

  8. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  9. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  10. 2017.7.18 linux下ELK环境搭建

    参考来自:Linux日志分析ELK环境搭建  另一篇博文:2017.7.18 windows下ELK环境搭建   0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1 ...

随机推荐

  1. 开源一款数据转换扩展板-FreakStudio多米诺系列

    原文链接: FreakStudio的博客 摘要 数据转换板通过I2C接口进行信号采集和输出,支持最多16通道输入和2通道输出.具备860Hz采样率和50KHz输出频率,采用16位ADC和12位DAC芯 ...

  2. CF1693F题解

    备注 发表时间:2023-06-17 21:51 前言 yny 学长来 cdqz 讲课,写一篇讲课的题的题解纪念一下. 题意 给你一个 01 序列,有以下操作: 选择一段区间 设 \(cnt_0,cn ...

  3. 自己写的第一个java项目!

    项目名为"零钱通" 细节参考 [零基础 快速学Java]韩顺平 零基础30天学会Java 基本版: 1 package project; 2 3 import java.text. ...

  4. GIT 基础操作-初始化

    命令行说明 全局设置 git config --global user.name "" git config --global user.email "" 创建 ...

  5. emlog pro 文章编辑器(editor.md)的快捷键

    这里是一张图片,上面显示目前 emlog pro 编辑器所有**有效**的快捷键 (注意,是有效的快捷键,与 editor.md 官方公布的有出入,有些在系统是不可用的),对于长期使用emlog写作的 ...

  6. storm部署文档

    背景 这篇笔记原来是记录在印象笔记中的,没有发布到博客中,这次我重新整理一下发布上来,希望给读者以参考. Storm的部署手册 Zookeepr的部署 首先下载安装包:apache-zookeeper ...

  7. 小白必看的java完整下载攻略!(在Typora中有图片参考)

    Java下载 在浏览器上搜索JDK(2024年最新版是22,本人下载的是21) 点击官网下载,会跳到Oracle官网,需要注册账号才可下载 根据自己的电脑型号选择下载(本人下载的是64的) 正常情况下 ...

  8. Sql语句:条件限制语句

    where select sname,sdept,sage from student where ssex = '男' or ssex = '女' and sage not between 20 an ...

  9. 头晕的android SDK Manager and 找不到真机

    这张图很完美!可是出问题就头晕了. 问题场景:执行Andriod.bat出现下面界面后,然后跳出Andriod SDK的界面: android SDK Manager的界面就孤零零的几条记录挂在那里. ...

  10. Kylin-Server-V10-SP3物理机安装简要过程

    1.下载镜像 链接: https://eco.kylinos.cn/partners/mirror.html?class_id=1&query_key=V10 选择: 银河麒麟高级服务器操作系 ...