新增扩展程序功能打包提交新版 WARNING ITMS-90473 警告问题
1、问题描述
- 自从在主应用中加入SiriShortCut功能之后,打包程序上传至 iTunes Connect 就会出现警告,看其原因描述是CFBundleVersion主应用与子应用的不一致导致的
Prepared archive for uploading
Uploaded with warnings
warning: App Store Connect Operation Warning
WARNING ITMS-90473: "CFBundleVersion Mismatch. The CFBundleVersion value '1.1' of extension 'ukon.app/PlugIns/CHSiriIntent.appex' does not match the CFBundleVersion value '181212.337' of its containing iOS application 'ukon.app'."
2、问题解决
如果对工程上的初始配置没有修改过,例如:没有使用脚本动态修改CFBundleVersion,那么可以直接使用以下方法解决
2.1 直接修改Build
- 主程序

- siriShortCut子程序


- 只要保证主子程序内容一致就可以了
- 主程序
2.2 动态修改Build
- 动态修改Build使用脚本来修改,由于主程序中使用了动态修改,子程序中也需要使用动态修改。我这里由于接的是老项目,不了解工程配置,找了好久才找出原因
- 脚本使用sh脚本
BUILD_REV=`date +%y%m%d`.`git rev-list HEAD | wc -l | awk '{print $1}'`
GIT_HASH=`git log --oneline -n 1 | awk '{print $1}'`
INFO_PATH="${TARGET_BUILD_DIR}"/${INFOPLIST_PATH} /usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${BUILD_REV}" ${INFO_PATH}
/usr/libexec/PlistBuddy -c "Delete :GIT_HASH" ${INFO_PATH}
/usr/libexec/PlistBuddy -c "Add :GIT_HASH string ${GIT_HASH}" ${INFO_PATH}
- 在主程序与子程序中分别创建脚本文件

- 双击重命名为Update CFBundleVersion(Build Version)

- 展开粘贴以上脚本

- 由于脚本中的拼接还使用到了CFBundleShortVersionString,所以还要保持这里一致
- 主子程序都要修改,其中CFBundleVersion在这里设置无效

- 至此,就可以动态修改保持主子程序CFBundleVersion一致了,得出的构建版本是:日期 + 应用版本号
新增扩展程序功能打包提交新版 WARNING ITMS-90473 警告问题的更多相关文章
- 【03】Chrome提示印象笔记剪藏插件"已停用不支持的扩展程序"怎么办?
[03] Chrome提示印象笔记剪藏插件"已停用不支持的扩展程序"怎么办? 刚好也遇上了这个问题,百度了一下,以下是解决方法,亲测可行: 1.首先把需要安装的第三方插件,后缀.c ...
- sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类
sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类 详述 使用sbt对写的Spark程序打包,过程中没有问题 spark-submit提交jar包运行提示找不到对应的类 解 ...
- 16、如何将安装在chrome上的插件(扩展程序)打包成".crx"文件
1.打开扩展程序: 2.打开开发者模式并选择要打包的插件: 3.打包扩展程序: (1) (2) (3)
- 解决新版chrome无法手动拖动安装插件 提示“无法从该网站添加应用,扩展程序和用户脚本”
开发模式安装 把下载后的.crx扩展名的离线Chrome插件的文件扩展名改成.zip或者.rar 解压压缩文件 在Chrome的地址栏中输入:chrome://extensions/ 打开Chrome ...
- 谷歌浏览器(chrome)查找、打包已安装的扩展程序
我们有时候会安装浏览器扩展程序,正常情况下,我们回去谷歌应用商店里面进行下载,但是这个需要VPN,有时候我们没法使用VPN,想从其他已安装扩展程序的浏览器上直接安装就可以使用我们下面这个方法 win1 ...
- Chrome扩展程序的二次开发:把它改得更适合自己使用
我当然知道未经作者允许修改别人程序是不道德的了,但作为学习研究之用还是无可厚非,这里仅供交流. 一切都是需求驱动的 话说某天我在网上猎奇的时候无意间发现这么一款神奇的谷歌浏览器插件:Extension ...
- chrome添加 postman扩展程序图文简介
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.无论是web前端开发 或 android.ios开发,只要涉及调用后端接口,postman这类型工具就必不可少了.相对于 ...
- MAC上postman离线安装时提示加载扩展程序出错怎么办?
目前的postman插件如果想正常使用,必须安装Postman Interceptor插件,这样才能直接使用chrome浏览器的cookie等信息,否则postman是无法完成老版本的功能的.post ...
- 使用DeviceOne实现微信小程序功能
微信小程序即将推出,还没推出就火的不行了.基于微信这个巨大平台,小程序必然能有巨大成功.不过它并不能完全取代App,该开发App还得开发.如果我们自己想实现一个基于自己的APP包含类似微信的小程序功能 ...
随机推荐
- JavaScript笔记——DOM的操作
节点及其类型 在JavaScript中,节点分为三种: 元素节点:HTML标签元素. 属性节点: 元素的属性, 可以直接通过属性的方式来操作. 文本节点: 是元素节点的子节点, 其内容为文本. 在什么 ...
- HTTP 2 的新特性你 get 了吗?
导语 HTTP/2 的主要设计思想应该都是源自 Google的 SPDY 协议,是互联网工程任务组 ( IETF ) 对谷歌提出的 SPDY 协议进行标准化才有了现在的 HTTP/2 .下面我们直奔主 ...
- Biorhythms(中国剩余定理(模板题))
Description Some people believe that there are three cycles in a person's life that start the day he ...
- mixer音量的设置:amixer小工具的…
1.关于alsa-utils和lib的移植我的上一篇博文中已经说明了,下面我就来说说我的混音器mixer音量控制的调节过程,网上的很多方法都是比较基本的入门没有知名具体的操作方法,在此我来谈谈我的设置 ...
- Scala介绍
强大的编程语言 Scala 是一门非常强大的语言,它允许用户使用命令和函数范式进行编写代码,因此,编程时你可以使用常用的命令式语句,就像我们使用 C.Java.PHP 以及很多其他语言一样,而且,你也 ...
- Linux 多台虚拟机进行同步时间
用SecureCRT分别连接多台虚拟机,然后使用交互窗口:
- 1-3 并发与高并发基本概念.mkv
- linux top 命令各参数详解
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...
- 固本培元之三:Convert、运算符、流程控制语句、ref/out/in三种参数类型
一.Convert类常用的类型转换方法Convert.ToInt32() 转换为整型(int)Convert.ToChar() 转换为字符型(char)Convert.ToString() 转换为字符 ...
- mongo_2 $in 和 $all 区别
in 只需满足( )内的某一个值即可, 而$all 必须满足[ ]内的所有值, > db.table1.find({}); { "_id" : ObjectId(" ...