你被 RN 0.45 版坑了吗
首先感谢爸爸们点进来看;小编这两天被 0.45 版折磨的生无可恋,好难受,想哭 ...... 嘤嘤嘤 ...... 额 ...... 太娘了,呜呜呜 ......
故事的开始:
两天前的一个下午,在一个 ' 伸手不见五指 ' 的办公室里,我 init 了一个项目 ......
-
WechatIMG1428.jpegreact-native init testPis
(对爸爸们来说再熟悉不过了,小编也很顺利):
-
好了,接下来就是
WechatIMG1425.jpegreact-native run-ios
的部分了(可以从下图看出和以前build
不一样的地方了吧?!一直在 checking ,检查开发的环境):
-
下面就是小编筛选出来的几张报错截图(以我能力是看不懂了,希望爸爸们看下):
WechatIMG1424.jpeg
-
接着我再根据下图的提示接着做无谓的挣扎:
WechatIMG719.jpeg-
妈蛋!显示说:无法安装请求的应用程序,根据提供的路径找不到应用程序包,还有
CFBundleIdentifier
(捆绑标识符)这个什么鬼东西说不存在:- 没办法,我就去搜啊!一下是小编筛选后的解决方法(眼睛好疼):
真正原因:
-
react-native upgradePRODUCT_BUNDLE_IDENTIFIER
从中删除project.pbxproj
2. 在你的Info.plist
,你使用$(PRODUCT_BUNDLE_IDENTIFIER)
它变为空,并将从已编译的应用程序中删除Info.plist
。在编译的应用程序中Info.plist
,没有CFBundleIdentifier
!
解决方案:
- 使用
com.xxx.app
,而不是PRODUCT_BUNDLE_IDENTIFIER
用于CFBundleIdentifier
在Info.plist
- 或者,添加
PRODUCT_BUNDLE_IDENTIFIER
回来project.pbxproj
。这就像PRODUCT_BUNDLE_IDENTIFIER = com.xxx.app
;。爸爸们可以在应用程序的Build Settings
> 中添加包IDProduct Bundle Identifier
。
- 没办法,我就去搜啊!一下是小编筛选后的解决方法(眼睛好疼):
-
-
如果爸爸们很认真地看到了这里,小编很遗憾告诉爷爷们(接着往下看的是爷爷),以下是我尝试过后,以及在 XCode 上跑出现的问题:
WechatIMG1419.jpeg
WechatIMG1420.jpeg
-
小编实在没招了,就请教了 RN 中文网里的
WechatIMG1452.jpeg清明老师
,看这位老师是怎么回答的:
-
当时我看到这话我是想笑的,这明显感觉是敷衍小编嘛!然后事实证明还有人也
WechatIMG1451.jpeginit RN 0.45
版本:
很多以为看到这里就结束了?只是为了证明 0.45 版本跑步了?那就错了,重点来了:
遇到这个坑的时候,小编花了两天多时间可不是只干这么点时间(简单总结下,因为已经很晚了,小编还没回家):
-
期间为了排除 RN 更新后,npm 和 node 版本是否落后,所以我通过
WechatIMG1453.jpegsudo npm install npm -g
更新了版本(以下是我目前版本):
-
然后日了狗的时刻又来了:
WechatIMG1454.jpeg -
我记得我当时是很想笑的 ...... 真的很好好玩哦!程序贼好玩!!!爷爷们可能会说,降级啊!我当然试过
npm -g install npm@版本号
,那么就开始分享小编的经验之谈了:
1 . 开发环境不要随便瞎更新!
2 . 多次踩坑后:node
和 npm
是一一对应的关系,版本是有衔接的,就和react native
和react
的版本关联一样!
3 . 然后我现在用 yarn
去代替了 npm
最后感谢在此 ‘愉快’ 的过程中,提出帮助的小伙伴!感谢 下一站
和清明老师
;这么烦人的坑,比当时刚接触 RN 时,在 Windows 下配置环境更无解!
我们下期再见!愿意与爸爸们分享的IT届段子手
!!!