等着打包过程中记录一下如何打一个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. SpringCloud(一):了解SpringCloud

    一.SpringCloud 简介 首先看看SpringCloud官方的介绍: Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由, ...

  2. BeanUtils.populate()空字符串转换日期的解决办法

    我们在使用beanutils.populate()封装参数时,如果封装的字符串是空,在转换成date时会出现以上异常,此时可以在工具类中添加静态代码块即可解决:注意导入beanutils 包 impo ...

  3. Java工程师学习指南

    java学习指南-四个部分:分别是入门篇,初级篇,中级篇,高级篇 第一步是打好Java基础,掌握Java核心技术,                                            ...

  4. js相同的正则多次调用test()返回的值却不同

    项目中文件上传需要验证文件的格式,第一次正常,第二次就验证不通过了.在验证的地方console.log()两遍,发现结果不一样 !!! 正则和文件名都没变,但是两次的验证结果不同. this.reg ...

  5. ie11 SCRIPT5011:不能执行已释放Script的代码

    依照我遇到的问题为例: (我的页面结构为:父页面中嵌套有iframe子页面) 1.造成这种情况的原因是:父页面初始化声明变量a为数组(数组对象是引用类型,赋值传递的是地址),创建iframe子页面后给 ...

  6. ES6-扩展运算符和rest运算符

    es6-扩展运算符和rest运算符 扩展运算符:不确定他的参数个数时使用运算扩展符 // 声明一个方法 但不确定他的参数个数时使用对象运算扩展符 function ananiha(...arg){ c ...

  7. 射频IC卡和IC卡读卡器的成本分析

    当今射频IC卡和IC卡读卡器的种类繁多,很多人问IC卡读卡器多少钱,那么如何在满足我们需求的情况下最大的节省成本呢.下面就各种射频IC卡和IC卡读卡器来分析下各自的成本.                ...

  8. 解决MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.问题

    突然发现昨天刚搭建的websocket不能连接了,提示: MISCONF Redis is configured to save RDB snapshots, but it is currently ...

  9. VirtualBox创建的Debian虚拟机与Windows宿主共享文件

    术语: 1.VM:虚拟机 步骤: 1.在Windows10上下载并安装VirtualBox6.0.8(时间:2019/5/30),下载地址:https://download.virtualbox.or ...

  10. Druid-代码段-2-1

    所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应主流程2,具体用来初始化整个连接池: public void init() throws SQLException { if ( ...