Xamarin.Forms iOS 真机测试 打包
等着打包过程中记录一下如何打一个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 真机测试 打包的更多相关文章
- Xamarin.iOS真机测试报错
Xamarin.iOS真机测试报错 错误信息:The MinimumOSVersion inside Info.plist does not include the device version( ...
- IOS真机测试
学习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发有点不同,Android开发我更觉得跟web(Html)倒是有类似的地方,都是节点标签显示的,当然个人理解,感 ...
- iOS真机测试,为Provisioning添加设备 -- based xcode6[原]
iOS真机测试, 我们需要添加几台新的设备进行测试.我们只需要对Provisioning Profiles 进行更新. 1. 在苹果开发者中心添加测试设备 打开苹果Certificates, Ide ...
- Unity导出iOS真机测试教程
原地址:http://unity3d.9tech.cn/news/2014/0410/40177.html 学 习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发 ...
- iOS 真机测试错误“The application bundle does not contain a valid identifier”
iOS 真机测试错误"The application bundle does not contain a valid identifier" 真机测试的时候报错:"The ...
- iOS 真机测试错误“The application could not be verified”
iOS 真机测试错误"The application could not be verified" 真机测试的时候报错:"The application could no ...
- Xamarin Android项目真机测试闪退
Xamarin Android项目真机测试闪退 项目在模拟器中运行正常,但在真机上闪退.这是由于项目设置使用共享的Mono运行时.Visual Studio中,在项目属性-Android Option ...
- IOS真机测试(用证书进行真机测试)
真机测试需要准备 1.证书 2.Iphone或者Ipad 3.到developer.apple.com注册开发者账号(不用money的) ------------------------------- ...
- iOS真机测试中出现dyld`dyld_fatal_error错误
最近进入一家新公司,接手了一个之前由外包公司承接的项目.首先吐槽一下项目质量,哎毕竟也憋了很久了. 1.上手项目是打不开的,所有framework静态库全体飘红,一编译七八十错误.最终是偷懒还是什么就 ...
随机推荐
- golang中,new和make的区别
在golang中,make和new都是分配内存的,但是它们之间还是有些区别的,只有理解了它们之间的不同,才能在合适的场合使用. 简单来说,new只是分配内存,不初始化内存: 而make即分配又初始化内 ...
- NuGet 修改包路径
NuGet 是 .NET 平台下的一个免费.开源的包管理开发工具. 修改全局包管理目录 通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nu ...
- 工作日志,证书无效 unable to find valid certification path to requested target
工作日志,证书无效 unable to find valid certification path to requested target 最近被这个问题弄得头大.导致所有用到 se.transmod ...
- Redis 通过 scan 找出不过期的 key
SCAN 命令是一个基于游标的迭代器(cursor based iterator):SCAN 命令每次被调用之后,都会向用户返回一个新的游标,用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游 ...
- 四、排序算法总结二(归并排序)(C++版本)
一.什么是归并排序? 归并排序是基于分而治之的思想建立起来的. 所谓的分而治之,也就是将一个数据规模为N的数据集,分解为两个规模大小差不多的数据集(n/2),然而分别处理这两个更小的问题,就相当于解决 ...
- 求n的阶乘!
编写一个computer类,类中含有一个求n的阶乘的方法,将该类打包, 在另一个包中引入包,在主类中定义computer类的对象,调用求n的阶乘的方法,并输出结果 结果
- leetcode 5199. 交换字符串中的元素
地址 https://leetcode-cn.com/contest/weekly-contest-155/problems/smallest-string-with-swaps/ 给你一个字符串 ...
- cairosvg使用过程中需要注意的问题
在使用pygal的过程中,图片默认保存的是svg格式,如果需要生成本地的图片需要进行一些配置.下面是在摸索时的一些流程: 1.查看pygal的函数,dir(pygal.bar),发现其支持保存为png ...
- 用OC基于数组实现循环队列
一.简言 使用数组实现循环队列时,始终会有一个空余的位置预留着,作为一个判决队列已满的条件(当然也可以采用其他方式).在前面已经用C++介绍了基本的算法,可以去回顾一下https://www.cnbl ...
- js获取url参数值的方法总结
1.方式一:通过字符串截取的方式获取参数值: 1).函数一:获取URL中的参数名及参数值的集合 /** * [获取URL中的参数名及参数值的集合] * 示例URL:http://htmlJsTest/ ...