等着打包过程中记录一下如何打一个debug包到真机上测试的流程
1. 需要在XCode中创建一个新的项目,选择iOS==>Single View App,点击Next

2. 在新的弹框中需要Apple Id,可以使用自己的Apple Id,对应的Team可以选择个人的Personal Team,然后将剩下的
Organization Name, Organization Indetifier等依次填好。 Next

3. 在新窗口中依次填好Version等对应信息,这里最终会生成打包所需要的证书文件。需要额外注意Bundle Identifier的值,在接下来的操作中还会用到。到这里在Xcode中的工作就完成了。

4.回到Visual studio for mac中选择.iOS的project,打开Info.plist文件,将捆绑包标识符(Bundle Identifier)更改为上面记录的值。这里除了**捆绑包标识符**的输入框那里要改,下面的Bundle Siging Options...的button点出来的页面里的值也要更改。

5.Visual studio for mac中将debug的机器类型选择为你的测试机(需要数据线连接)

你可能会遇到这样的问题:
1. Invalid iTunesArtwork dimensions (1536x1536) for '/Users/developer4/Library/Caches/Xamarin/mtbs/builds/ProjectName.iOS/e91a9151da4817a1c6113fda15a82a6d/Resources/iTunesArtwork@3x.png'. ProjectName.iOS
解决方案:从项目中排除iTunesArtwork@3x.png。https://forums.xamarin.com/discussion/128666/invalid-itunesartwork-dimensions-1536x1536

2. Cound not connect to debugger

A. 可能是第一次运行在真正的设备上,需要测试用的设备连接网络(可能会向开发者的App Id发送验证信息),需要信任开发者(trust developer),Setting =》 General

B. Visual studio for mac自身的bug,重启设备,随缘解决。(https://developercommunity.visualstudio.com/content/problem/209829/cannot-connect-debugger-after-update-03062018.html)

另:建议先在Xcode 跑一次,再使用visual studio for mac打包。因为后者并不提示任何错,只是告诉你打包失败。

这样只可以做出来供Dev与QA测试用的Debug包,Release包需要证书,以后再补充吧。

补充:
证书会过期,具体情形为打包出的app统一的在某个时间后都会一直闪退,点击App Icon就会闪退。连接查看log可以看到类似于 “AMFI code signature validation failed”的错误提示。此时是前面的证书过期,需要重新生成一个证书。
重新生成证书:
1.在Xcode中更改一下之前生成的证书的Bundle Identifier的值(可以还是原来的Apple账号)
2.在info.plist中更改捆绑包标识符。这里除了**捆绑包标识符**的输入框那里要改,下面的Bundle Siging Options...的button点出来的页面里的值也要更改。

更换了一个新的设备进行打包,visual studio for mac不提示错误,证书也没问题,可能是因为证书要求的系统版本高于设备的系统版本。在Xcode中进行打包会提示这种Error,这也是建议先用Xcode打一次包的原因之一。

真实证书篇:

客户会提供证书文件,应该包含三部分内容(windows打开可能会看到额外多一个__MACOSX文件,可能是Mac系统下的隐藏文件)。在Mac系统下进行打包步骤如下:

1. 先在Mac系统下安装证书(点击后缀为.p12的文件),如果需要密码去pwd文件中找。

2. 在Xcode中配置证书,Bundle Identifier为对应的证书中的后缀

3. 更换info.plist中的Bundle Identifier

4. Visual Studio for MAC中选择Realese|iPhone|通用设备

5. Visual Studio for MAC菜单栏中 生成 =》 存档以发布

6. 存档页面右下角签名并分发 ==》生成后缀为.ipa的包。

PS: 存档以供发布以后一定要检查一下是不是生成了新的存档,否则还是按照原来的存档打包,你的代码不会更新!暂时可能需要在Debug模式下来重新存档,不知道为什么。

遇到好的技术领导会帮助你很多,另外遇到不靠谱,不管事的技术领导其实也一样。因为坑你得一个一个踩,甚至得你来排计划,分配任务,监控进度,向上汇报,code review,所以到底谁是领导? 现在的心情就配一首北大醉侠的打油诗吧:

要想荣华富贵,

除非狼心狗肺。

起早贪黑跑单位,

挨不完的累,

下不完的跪,

咽不完的泪。

大丈夫钢牙咬碎,

我X你祖宗八辈!

Xamarin.Forms iOS 真机测试 打包的更多相关文章

  1. Xamarin.iOS真机测试报错

    Xamarin.iOS真机测试报错   错误信息:The MinimumOSVersion inside Info.plist does not include the device version( ...

  2. IOS真机测试

    学习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发有点不同,Android开发我更觉得跟web(Html)倒是有类似的地方,都是节点标签显示的,当然个人理解,感 ...

  3. iOS真机测试,为Provisioning添加设备 -- based xcode6[原]

    iOS真机测试,  我们需要添加几台新的设备进行测试.我们只需要对Provisioning Profiles 进行更新. 1. 在苹果开发者中心添加测试设备 打开苹果Certificates, Ide ...

  4. Unity导出iOS真机测试教程

    原地址:http://unity3d.9tech.cn/news/2014/0410/40177.html 学 习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发 ...

  5. iOS 真机测试错误“The application bundle does not contain a valid identifier”

    iOS 真机测试错误"The application bundle does not contain a valid identifier" 真机测试的时候报错:"The ...

  6. iOS 真机测试错误“The application could not be verified”

    iOS 真机测试错误"The application could not be verified" 真机测试的时候报错:"The application could no ...

  7. Xamarin Android项目真机测试闪退

    Xamarin Android项目真机测试闪退 项目在模拟器中运行正常,但在真机上闪退.这是由于项目设置使用共享的Mono运行时.Visual Studio中,在项目属性-Android Option ...

  8. IOS真机测试(用证书进行真机测试)

    真机测试需要准备 1.证书 2.Iphone或者Ipad 3.到developer.apple.com注册开发者账号(不用money的) ------------------------------- ...

  9. iOS真机测试中出现dyld`dyld_fatal_error错误

    最近进入一家新公司,接手了一个之前由外包公司承接的项目.首先吐槽一下项目质量,哎毕竟也憋了很久了. 1.上手项目是打不开的,所有framework静态库全体飘红,一编译七八十错误.最终是偷懒还是什么就 ...

随机推荐

  1. ubuntu18.10 上安装docker容器

    网上有的安装步骤太复杂,并且安装过程中容易出错,其它安装不难,只需一条命令即可. 安装成功后,使用命令查看docker状态 systemctl status docker 安装前更新下包源 sudo ...

  2. Javascript 的定时器 setInterval,setTimeout,clearInterval

    今天开通博客.来1个.哇哈哈哈~~ 今天本来想复习BOM的看到定时器也算DOM一种 ?(是这样吗).分享一下 参考源于:八神吻你 http://www.cnblogs.com/lmfeng/archi ...

  3. JavaScript动态加载script方式引用百度地图API 拓展---JavaScript的Promise

    上一篇博客JavaScript动态加载script方式引用百度地图API,Uncaught ReferenceError: BMap is not defined 这篇文章中我接触到一个新的单词:Pr ...

  4. Servlet 使用介绍(1)

    说明 本篇介绍java web中比较重要的一个技术:servlet.servlet是一种对用户请求动态响应的一个技术,是java web的核心一环.对于一般服务性质的纯后台服务应用而言,或许整个应用是 ...

  5. 最常见的 Git 问题和操作清单汇总

    最常见的 Git 问题和操作清单汇总 引言 本文整理自工作多年以来遇到的所有 Git 问题汇总,之前都是遗忘的时候去看一遍操作,这次重新整理了一下,发出来方便大家收藏以及需要的时候查找答案. 一.必备 ...

  6. RPM命令总结

    RPM软件管理程序 rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他 ...

  7. Fiddler 过滤图片

    fiddler过滤无用图片操作步骤1.在右侧Filters中勾选 Hide if URL contains 2.在 Hide if URL contains 中加入下面一行过滤图片代码 REGEX:( ...

  8. appium---App页面滑动

    我们操作app的过程中都会进行页面滑动,那么这个过程通过python怎么实现呢? 如何滑动 大家都非常的清楚我们手动在app上是如何滑动的,然后自动化只是模仿了手工的方法去实现,我们通过一个图来分析 ...

  9. Java学习笔记(7)---流(Stream),文件(File)

    1.Stream流 a.定义: Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类型.对象.本地化字符集 ...

  10. 02-Node.js学习笔记-系统模块fs文件操作

    2.1.什么是系统模块 Node 运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所有我们又称Node运行环境提供的API为系统模块 3.1系统模块fs文件操作 //f :file ...