Xamarin 编写混合APP趟坑记录(二)
前言
公司要开发一个App,为了便于维护和更新,而不用每次去苹果审核,采用的是混合开发方式:用WebVie+WebApp的方式。
因为本人不会Java和ObjectC,公司又不想花钱招这两个岗位的人,因此我来顶上,采用Xamarin+C#。
时间紧张,第一版使用Xamarin自带的 WebView,构建了一个简单的App,开发上传什么的,开发涉及到的东西挺多,服务端、外壳、WebApp(主要开发不是我)等一大堆要处理,备案、申请证书、上线(苹果、安卓同步)啥的,反正弄了一个月才弄好。
因为Xamarin里面的WebView是简单的封装,苹果的也不是使用最新的内核,暴露的接口不多(可能是我不太懂的原因不知道),里面能够发挥的空间不多,比如和网页交互什么的做不到,因此决定重新做一个壳,或者找一个开源的自己修改。
以上是废话,讲了很多,反正壳是弄好了,安装的是WebView,苹果的是WKWebView。
测试打包,一切OK,准备提交到AppStore, 以为万事大吉,结果报
ERROR ITMS-90022: "Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 7.0." ERROR ITMS-90032:"Missing required icon file. The bundle does not contain an app icon for iPad ...
等等一大堆错误信息!重新编译,重建AppIcons的内容等,都不生效,网上的办法也试了很多,连MacOs都升级了(升级过程中反MacOs都弄挂了,是虚拟机),都没有解决,提示缺少的文件我明明都有,为啥提示丢失呢?Contents.json文件里有,别的地方没有哪里有记录,把我整死了。
后来看别人说把文件拷贝进去受到启发,我想是不是我那些图标文件没有被使用到呢?然后我在Info.plist中增加
<string>Assets.xcassets/AppIcons.appiconset</string>
<key>NSExceptionDomains</key>
然重新编译,上传成功,整整折腾了下午三小时加第二天一上午,其中包含升级Mac Os X的时间。开发不易,且行且珍惜,写在此处给自己留个纪念,也给后面碰到类似问题的人一些启示吧。
Xamarin 编写混合APP趟坑记录(二)的更多相关文章
- 整合 KAFKA+Flink 实例(第一部分,趟坑记录)
2017年后,一大波网络喧嚣,说流式处理如何牛叉,如何高大上,抱歉,工作满负荷,没空玩那个: 今年疫情隔离在家,无聊,开始学习 KAFKA+Flink ,目前的打算是用爬虫抓取网页数据,传递到Kafk ...
- Spring Cloud Feign踩坑记录(二)
注意,以下的Feign遇到的坑,在高版本中有些已经修复. 某些项目由于历史包袱原因,无法进行全面升级,才需要修补这些坑. 1.启动报错:not annotated with HTTP method t ...
- Cassandra查询操作趟坑记录
例子表 CREATE TABLE employee ( name TEXT, age SMALLINT, phone TEXT, bornDate DATE, createDate timestamp ...
- React-Native踩坑记录二
1.Image组件的borderRadius画圆有平台兼容性问题,在IOS下会失效 解决方法有几种 (1)在外面包裹一层View,对View组件使用borderRadius就可以了,这是我的做法 (2 ...
- Unity2018编辑器脚本趟坑记录
解除预制体问题:(这个例子是解除游戏中的Canvas与Asset中的预制体的关系) if( PrefabUtility.IsAnyPrefabInstanceRoot(GameObject.Find( ...
- TF-GNN踩坑记录(二)
引言 最近在尝试构建GraphTensor时,尝试把默认的特征名hidden_state改成其他时,出现了奇怪的报错. 报错 WARNING:tensorflow:Gradients do not e ...
- 用Xamarin和Visual Studio编写iOS App
一说开发 iOS app,你立马就会想到苹果的开发语言 Objective C/Swift 和 Xcode.但是,这并不是唯一的选择,我们完全可以使用别的语言和框架. 一种主流的替换方案是 Xamar ...
- 通过Intel XDK编写跨平台app(二)
通过Intel XDK编写跨平台app(一) 通过Intel XDK编写跨平台app(二) 在这个系列的上一篇文章中,我们大致了解了Interl XDK的概况.在这一部分中,我们会详细地介绍如何通过这 ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
随机推荐
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug
这几天eclipse 项目迁移 android studio Error:Execution failed for task ':app:transformClassesWithJarMergingF ...
- Oracle如何把数据库表迁移到指定表空间
问题描述: 将测试数据库中的表结果导入到正式数据库.需要在正式库中建立独立的表空间存放新导入的表,以避免和正式库中原来的表混淆. 处理步骤: 1. 在命令行中用exp指令导出测试库中指定表到指定 ...
- 离线安装SharePoint2016
离线安装SharePoint2016的过程中,遇到了不少问题,该文章将安装过程尽量详细描述,供自己后续参考,请不要嫌文章啰嗦哈. 本人使用的是Windows Server 2012 R2 Standa ...
- asp.net 一般处理程序实现网站验证码
使用VerifyCode.ashx一般处理程序生成验证码,实现如下: using System; using System.Drawing; using System.Web; using Syste ...
- css中padding与margin
CSS padding margin border属性详解 图解CSS padding.margin.border属性W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来 ...
- LocationCoder 地图经纬度解析
LocationCoder 地图经纬度解析 其实,在地图里面将地图解析成有意义的地址,或者把地址转换成有意义的经纬度都是很容易的事情,只是我将其封装了支持KVO,通知中心,block取结果,代理取结果 ...
- 如何生成.mobileprovision文件
如何生成.mobileprovision文件 本人视频教程系列 **.mobileprovision文件的生成的第一步就需要你提供一个用于开发的App ID 1. 创建App ID 创建一个bundl ...
- python 使用exchange发送邮件(三)
FYI: https://blog.csdn.net/LeoForBest/article/details/79429955
- Java——并发编程
1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...
- Redis学习---Redis操作之String
set(name, value, ex=None, px=None, nx=False, xx=False) 在Redis中设置值,默认,不存在则创建,存在则修改 参数: ex,过期时间(秒 ...