前言

公司要开发一个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趟坑记录(二)的更多相关文章

  1. 整合 KAFKA+Flink 实例(第一部分,趟坑记录)

    2017年后,一大波网络喧嚣,说流式处理如何牛叉,如何高大上,抱歉,工作满负荷,没空玩那个: 今年疫情隔离在家,无聊,开始学习 KAFKA+Flink ,目前的打算是用爬虫抓取网页数据,传递到Kafk ...

  2. Spring Cloud Feign踩坑记录(二)

    注意,以下的Feign遇到的坑,在高版本中有些已经修复. 某些项目由于历史包袱原因,无法进行全面升级,才需要修补这些坑. 1.启动报错:not annotated with HTTP method t ...

  3. Cassandra查询操作趟坑记录

    例子表 CREATE TABLE employee ( name TEXT, age SMALLINT, phone TEXT, bornDate DATE, createDate timestamp ...

  4. React-Native踩坑记录二

    1.Image组件的borderRadius画圆有平台兼容性问题,在IOS下会失效 解决方法有几种 (1)在外面包裹一层View,对View组件使用borderRadius就可以了,这是我的做法 (2 ...

  5. Unity2018编辑器脚本趟坑记录

    解除预制体问题:(这个例子是解除游戏中的Canvas与Asset中的预制体的关系) if( PrefabUtility.IsAnyPrefabInstanceRoot(GameObject.Find( ...

  6. TF-GNN踩坑记录(二)

    引言 最近在尝试构建GraphTensor时,尝试把默认的特征名hidden_state改成其他时,出现了奇怪的报错. 报错 WARNING:tensorflow:Gradients do not e ...

  7. 用Xamarin和Visual Studio编写iOS App

    一说开发 iOS app,你立马就会想到苹果的开发语言 Objective C/Swift 和 Xcode.但是,这并不是唯一的选择,我们完全可以使用别的语言和框架. 一种主流的替换方案是 Xamar ...

  8. 通过Intel XDK编写跨平台app(二)

    通过Intel XDK编写跨平台app(一) 通过Intel XDK编写跨平台app(二) 在这个系列的上一篇文章中,我们大致了解了Interl XDK的概况.在这一部分中,我们会详细地介绍如何通过这 ...

  9. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

随机推荐

  1. C# Visual 快捷键

      编辑系 代码提示 Ctrl + J激活VS默认代码提示功能.ReSharper等插件会建议你修改快捷键. 导入命名空间 个人认为Ctrl + .是最方便的,复杂点的是Alt + Shift + F ...

  2. 11招教你做好 ERP 系统维护

    ERP 维护的具体工作内容主要包括以下几个方面: 例行和突发事件的处理 以管理和技术的手段,维护和发展 ERP 运行环境,如平衡技术先进性/实用风险.目标/成本而进行的IT基础结构(服务器.网络.PC ...

  3. ZZCMS8.2 用户密码重置漏洞

    前言 一个找回密码处的逻辑漏洞, 还是有点意思的. 正文 首先是定位找回密码功能对应的代码位置,使用找回密码的功能,然后抓包即可 下面去 getpassword.php 里面看看, 首先包含了一些文件 ...

  4. c# 从一个服务器 访问另外一个服务器上的文件

    页面调用 function fnOpen(path) { window.open("~/FileHelp.ashx? url="); //window.open(url); } 后 ...

  5. 润乾报表在proxool应用下的数据源配置

     大多数应用会使用proxool数据连接池,proxool.xml的配置文件如下: <?xml version="1.0″ encoding="UTF-8″?> & ...

  6. python函数 变量 递归

    1 语法 #语法 def 函数名(参数1,参数2,参数3,...): '''注释''' 函数体 return 返回的值 #函数名要能反映其意义 返回值数=0:返回None放回值数=1:返回object ...

  7. 3.Spring MVC return url问题总结

    一.return "cartSuccess" 和 return "redirect:/cart/cart.html" 的区别 二.return modelAnd ...

  8. leveldb开篇

    因为工作的需求,最近看了一些项目的源码,包括nginx.tair.leveldb,一直看了下来都没有写东西的习惯,虽然作了不少记录,但都是只有自己才能看懂的笔记. 好多次都说开始写blog,锻炼一下自 ...

  9. 转:ClickOnce部署Winform程序的方方面面

    1. ClickOnce简介 微软官方对ClickOnce的解释是:ClickOnce 是一项部署技术,您可以利用这项技术来创建基于 Windows 的自行更新的应用程序,并且安装和运行这类应用程序所 ...

  10. [翻译] M13BadgeView

    M13BadgeView M13BadgeView is a customizable badge view for iOS applications. The badge is built to b ...