等着打包过程中记录一下如何打一个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. PostgreSQL 中字段类型varchar

    PostgreSql数据库中varchar类型与sql server中字段用法有差别,PostgreSql中如果字段设置为varchar类型长度为10,则无论存字母.数字或其它符号,长度最大为10个, ...

  2. 矩阵的运算:Python语言实现

    一.矩阵的加减法 import numpy as np #这里是矩阵的加法 ar1=np.arange(10).reshape(10,1) ar1 ar2=np.arange(10).reshape( ...

  3. Android 进程间通讯方式

    Android 进程间通讯方式 1.通过单向数据管道传递数据 管道(使用PipedWriter/ 创建PipedReader)是java.io包的一部分.也就是说,它们是一般的Java功能,而不是An ...

  4. MySQL复习值代码知识点(1)

    MySQL复习值代码知识点 一. 创建数据库 create database 数据库名: 二. 删除数据库 drop database 数据库名: 三. 选择相应的数据库 use 数据库名: 四. 创 ...

  5. JavaWeb开发——软件国际化(文本元素国际化)

    前几天围绕着JDBC编程进行了系统的学习.现在我们对Java程序数据库操作已经是轻车熟路了.也学会了使用各种框架来帮助我们简化编程. 今天是学习计划的第七天,虽然学习热情没有前几天高涨了.但是,写博客 ...

  6. MySQL 优化 (二)

    参数优化 Max_connections (1)简介 Mysql的最大连接数,如果服务器的并发请求量比较大,可以调高这个值,如果连接数越来越多,mysql会为每个连接提供单独的缓冲区,就会开销的越多的 ...

  7. [转]java 通过反射获取类的全局变量、方法、构造方法

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package com.str;   public class ZiFuChuan {       ...

  8. SPA项目开发之首页导航左侧菜单栏

    1. Mock.js 前后端分离开发开发过程当中,经常会遇到以下几个尴尬的场景: 1. 老大,接口文档还没输出,我的好多活干不下去啊! 2. 后端小哥,接口写好了没,我要测试啊! 前后端分离之后,前端 ...

  9. React 语法基础(一)之表达式和jsx

    react负责逻辑控制 reactdom负责渲染 本节知识点 有 1)变量的使用,简单使用. 1==>jsx中的注释 {/* */} 2===> 简单的渲染 app.js ps==> ...

  10. 【Oracle】常用函数

    来源自:https://www.cnblogs.com/lxl57610/p/7442130.html Oracle SQL 提供了用于执行特定操作的专用函数.这些函数大大增强了 SQL 语言的功能. ...