React Native集成CodePush热更新遇到的坑,以及折腾过程。"CFBundleShortVersionString" key needs to specify a valid semver string

这篇具有很好参考价值的文章主要介绍了React Native集成CodePush热更新遇到的坑,以及折腾过程。"CFBundleShortVersionString" key needs to specify a valid semver string。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近开始一个React Native的新项目。按惯例,在创建完项目后,先集成CodePush热更新功能。

这种活已经干过不止一两次了,当然没啥问题,直接上手开干。

可问题恰恰出在了本以为应该很顺利的地方。

首先,在用 cpcn-client 工具给项目安装 cpcn-react-native 包时,Android版一切正常,但iOS版却有个莫名其妙的什么unicode编码错误。

我的项目刚刚创建,还什么代码都没做改动,不可能是自己的代码的问题。

刚开始我猜测是网络的问题导致的,这种问题在开发过程中经常遇到。于是开启了XX上网方式,然后再试。可问题依旧。

可之前的项目中没遇到过这种情形啊。于是我想试试旧项目会不会有这种情况发生。

打开一个旧项目,为了安全起见,特意将旧项目复制到了一个新的文件夹进行试验。用 cpcn-client 工具给项目重新安装 cpcn-react-native 包。一切正常!这也太奇怪了!

至此,不得不仔细查看 cpcn-client 打印出来的日志。从如天书一般的日志中大致可得知,cpcn-react-native 包实际上已经安装了,是在执行 pod install 时失败了。

既然是这样,那我试试不用 cpcn-client 工具,直接在命令行中执行此操作看看。

于是在项目根目录下执行以下命令:

npx pod-install

怀着忐忑的心情等待。。。。

然后,成功了!

好吧。问题虽然解决了,但我并不知道是什么原因造成的。对比新项目与旧项目,因为旧项目是较早之前创建的,用的React Native的版本是0.6x,而新项目的版本是0.7x。所以,我猜测这问题是由于React Native的版本不同导致的。

这个问题虽然解决了,但马上遇到了另一个问题。

在测试热更新功能是否可用时,又是iOS版,在 cpcn-client 上点击“发布新版本”时,日志栏中提示以下错误:

"CFBundleShortVersionString" key needs to specify a valid semver string

从错误日志来看,应该是版本号的问题。这个问题在以前的项目中同样没有遇到过。不得不说React Native就是坑多!抱怨归抱怨,还是得想办法解决问题。

打开 XCode,给项目重新设了个版本号“1.0.1”,回到 cpcn-client ,再次点击“发布新版本”,问题依旧!

可从错误日志来看,确实是版本号的问题啊。

那么,现在这个 "CFBundleShortVersionString" 的值究竟是什么呢?

打开 /ios/项目名/info.plist ,发现 "CFBundleShortVersionString" 的值是 “$(MARKETING_VERSION)” 。那么问题很可能出在这里。cpcn-client 可能将它当成了一个字符串,而不是一个变量。

于是用 “1.0.1” 替换掉 “$(MARKETING_VERSION)” 。

回到 cpcn-client ,再次点击“发布新版本”,正常了!

 文章来源地址https://www.toymoban.com/news/detail-600177.html

=================

 

以上就是最近在新项目中集成 CodePush 热更新时遇到的坑,以及折腾过程。而这些坑在之前却没遇到过。

这一圈折腾下来,整整花了我一天的时间!

希望这篇文章对其他开发者能有帮助,少点折腾的时间。

 

到了这里,关于React Native集成CodePush热更新遇到的坑,以及折腾过程。"CFBundleShortVersionString" key needs to specify a valid semver string的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 4种React Native热更新方案的比较

    转载自:https://www.jianshu.com/p/8f423e52b5d1 最近刚完成了一个产品的热更新功能,颇有感慨。趁着有点时间写点东西,希望能对其他开发者有点帮助吧。 这个问题不是本文的重点,但既然这篇文章是关于 React Native 热更新的,就大概说一下吧。 快速发布新版本。 或许有人会说,

    2024年02月14日
    浏览(22)
  • pdfh5.js的使用以及遇到的坑

    pdfh5的地址: https://www.npmjs.com/package/pdfh5 在项目中引入pdfh5 完成事件on函数的事件名 遇到的坑 引入css的坑 在引入css文件的时候,官方给出了两种方式 第一种:在style标签里面通过@import \\\'pdfh5/css/pdfh5.css’方式,这种方式可能会报错 第二种:在script标签里面通过import ‘pdfh5/c

    2024年02月11日
    浏览(30)
  • 安装ceres-solver以及colmap遇到的坑

    参考https://blog.csdn.net/Carry_all/article/details/103224043来进行的安装。途中遇到网络问题和make执行错误的问题。错误如下所示: 通过搜索相关问题,发现是由于自己版本不对导致的(版本过旧和过新都有问题 我使用的是最新版本)。参照https://blog.csdn.net/weixin_43731435/article/details/

    2024年02月15日
    浏览(35)
  • java微信公众号JSAPI支付以及所遇到的坑

    上周做了个支付宝微信扫码支付,今天总结一下。微信相比支付宝要麻烦许多 由于涉及到代理商,没办法,让我写个详细的申请流程,懵逼啊。 笔记地址 http://note.youdao.com/noteshare?id=269ddffb1f95e69eafb281d054f9ff25sub=82AACBC2E6814133938D407BD3FF4737 先梳理下流程,对应的文档 微信统一下

    2024年02月08日
    浏览(32)
  • 项目搭建使用qiankun(乾坤),入门篇,以及遇到的坑与解决

    微前端架构具备以下几个核心价值: 技术栈无关 主框架不限制接入应用的技术栈,微应用具备完全自主权 独立开发、独立部署 微应用仓库独立,前后端可独立开发,部署完成后主框架自动完成同步更新 增量升级 在面对各种复杂场景时,我们通常很难对一个已经存在的系统

    2024年02月12日
    浏览(28)
  • 鸿蒙篇——初次使用鸿蒙原生编译器DevEcoStudio创建一个鸿蒙原生应用遇到的坑--汇总(持续更新)

    背景:2023年12月13日,使用DevEcoStudio 4.0.0.600版本,项目的compileSdkVersion是8。 一.提示类似于ohpm ERROR: NOTFOUND package \\\"@ohos/hypium\\\" not found from all the registries或者npm ERR! 404 \\\'@ohos/hvigor@3.0.9\\\' is not in this registry.的错误。 1.这里存在的第一个问题,无论怎么按照官方文档设置ohpm 和 npm的仓

    2024年01月21日
    浏览(37)
  • elasticsearch8和kibana部署以及与springboot整合遇到的坑

    我本来使用的是最新版本的es 8.6.2。但是由于ik分词器只更新到8.6.1,所以就更改为部署8.6.1。在过程中遇到一些问题,这里做一个总结 环境:windows10 elasticsearch版本:8.6.1 一、修改es 用户密码的方式 二、kibana 使用用户名和密码登录 修改kibana.yml 文件 启动kibana一直闪退 解决方

    2024年02月02日
    浏览(32)
  • 集成tinyMCE编辑器以及踩的坑

    一、tinyMCE编辑器没有实时更新 场景是这样的,在form表单中引用Tinymce富文本编辑组件,在多次重新打开不同form表单时,form携带的数据没有实时更新到Tinymce内,总是显示上一个的form的数据 原因:Tinymce只渲染了一次,所以造成数据有点问题。所以解决的方法就是利用 v-if 的方

    2024年02月21日
    浏览(34)
  • [uniapp] 跨页面传值 uni.$emit 和 uni.$on 的使用方法 以及遇到的坑

    uni.$emit 和 uni.$on 是uniapp自带的跨页面传值    vue 父子通讯可以用 props  this.$emit   这种简单的父子通讯紧适用于 页面和组件 或者 组件之间的传值,他并不适用于页面和页面的互相传值 那要实现页面通讯呢,我们一起来看看uni.$emit 和 uni.$on的使用方法 示例:         A页面

    2024年02月02日
    浏览(32)
  • 在matlab中使用PTB时遇到的问题以及解决方法(随时更新)

    目录 问题1:错误使用 Screen methods: 问题2:图片太大,PTB函数无法呈现 methods: See error message printed above. 出错 PsychImaging (line 2470)             [win, winRect] = Screen(\\\'OpenWindow\\\', screenid, clearcolor, winRect, pixelSize,             numbuffers, stereomode, multiSample, imagingMode, specialFlags, clientRec

    2024年02月06日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包