《MonoTouch开发实践指南》一1.3 在设备上进行开发

简介: 本节书摘来自华章出版社《MonoTouch开发实践指南》一 书中的第1章,第1.3节,作者:(美)Michael Bluestein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 在设备上进行开发

为了在设备上安装和调试应用程序,必须将它配置为开发设备,下面通过一个过程来讲述如何将设备配置为开发设备。

注册前的准备
在开发过程中将应用程序部署到设备上,需要注册一个iOS开发者的付费账号,之后,需要获得一个开发证书并创建一个开发配置文件(development provisioning profile)。配置主要有两个部分,一是注册设备让它可以运行开发环境下生成的应用程序;二是在Mac上创建一个开发证书对应用程序进行签名。
注意 要完成这几个相关步骤,就像跳舞一样,要跳来跳去。一旦在初期配置好它,就会发现其处理过程与为ad-hoc或App Store发布应用程序相类似。
登录iOS开发者中心,打开如图1-16所示的iOS Provisioning Portal(以下简称Portal),它是一个用于创建证书、注册开发设备并创建开发配置文件的网络工具。

screenshot

首先,单击左侧导航面板的Term链接,这里可以管理团队成员。如果注册的是原开发商,可以看到注册者的姓名以及在团队代理(Team Agent)的角色。如果团队有多名成员,可以在这里添加成员及分配其角色为成员或管理员。团队管理员(Team Admin)与团队代理人的权限一样,可以做与开发相关的任何事情,如添加新成员、批准证书请求,以及创建开发配置文件等。然而,团队管理员不能在ad-hoc或App Store分发证书和配置文件。团队成员只能向管理员或代理人申请开发证书。现在,假设只有一个开发人员且默认情况下是团队代理人,这样做的原因是添加团队成员只是这些步骤的一个子集。
此时就没有签发开发证书的问题了。开发证书是为应用程序签名用的。要获得证书,需要申请。要申请证书,就要创建一个证书签名请求(Certificate Signing Request,CSR)。在OS X中选择Applications→Utilities,出现Keychain Access工具,通过它可以创建CSR。运行Keychain Access工具,选择KeychainAccess→Preferences,单击Certificates标签页,确保从上往下数的前两个下拉列表的设置为Off(关闭)(如图1-17所示)。

screenshot

现在,选择KeychainAccess→Certificate Assistant→Request a Certificate From a Certificate Authority,运行Certificate Assistance(证书助理)创建一个CSR。在Certificate Assistance(证书助理)对话框中,输入在iOS开发者中心注册账号时使用的邮件地址并在Common Name文本框中输入注册者的姓名。因为要将CSR文件上传到iOS Developer Program Portal,所以不需要输入CA电子邮件地址。选择Save to disk选项以便将CSR保存为上传到Portal的文件。此外,还要选择“Let me specify key pair information.”复选框。单击Continue按钮并选择一个文件夹来保存CSR文件。最后,确保密钥的大小是2048位,算法采用RSA,单击Continue按钮保存CSR文件到指定位置。有了这个CSR,就可以申请开发证书了。现在,返回Portal去做这事。
在Portal中,单击左边导航面板的Certificates,选择Development标签页并单击右上角的Add Certificate按钮。往下滚动到所有指示信息的下面,会看到一个Choose File按钮,单击它并选择刚才由KeychainAccess生成的CSR文件,然后单击Submit按钮上传它。接着单击证书申请旁边的Approve按钮批准该申请,单击Download按钮下载开发证书。下载完毕后,双击证书文件并在弹出的对话框中单击OK按钮将文件安装到keychain。现在,开发证书已经安装了,可以添加开发设备了。
要对开发设备授权,首先要在Program Portal中添加UDID。为了找到UDID,连接设备并运行Xcode。
在Xcode的主菜单中选择Window→Organizer,运行Xcode Organizer。在Devices下选择准备授权的设备,然后选择Summary标签页,显示在Identifier标签里的文本就是设备的UDID(如图1-18所示)。

screenshot

有了UDID,返回到iOS Provisioning Portal,在Devices区域单击Add Device,然后输入为设备准备的名称和设备的UDID。
记住,这样做的最终目标是在开发设备上进行应用程序开发(这是所有相关步骤中最值得一提的)。现在,已创建了为应用程序签名的证书,设备也已注册为开发设备,离实现目标只差创建开发配置文件了,不过在这之前还需要做一件事—创建一个应用程序id。
应用程序id(app id)由Portal产生的bundle seed id和你(或团队管理员)选择的bundle id组成,其格式为BundleSeedID.BundleID。在开发阶段,使用通配符(*)作为bundle id比较方便,这样就不需要为每一个应用程序的开发生成一个新的应用程序id了。
注意 在发布的时候,就需要为每个应用程序创建一个单独的应用程序id。
要在Portal中创建应用程序id,可以在App Ids区域单击Add App Id,然后在App ID Name内输入应用程序id的名称(只是在Portal内使用),然后在Bundle Identifier中输入星号(*)。
注意 如果应用程序要求Keychain Access,就不能使用星号,就必须为它生成一个唯一的Bundle id。根据习惯,Bundle id通常的形式为一个将域名反转后加上应用程序名称的字符串,例如com.mydomain.myapp。
现在准备创建开发配置文件,它可将应用程序部署到设备上,它由开发证书、注册设备和应用程序id组成。返回到Portal,在Provisioning区域选择Development标签页,然后单击Add Profile。填写在Portal中使用的配置文件名称,选择之前创建的证书、应用程序id和设备,然后单击Submit按钮创建配置文件。文件创建完成后,单击该文件旁边的Download按钮下载这个文件,将应用程序部署到开发设备上以备以后使用。文件下载完后,将它拖到Dock(已连接到MAC)的Xcode图标上,这样就可将它安装到设备上。如图11-9所示,打开Xcode Organize,展开Development节点,选择Provisioning Profile检查一下配置文件是否已经安装。留意App Identifier,很快就要使用它。现在,有了App Identifier,准备好将应用程序部署到开发设备了。

screenshot

由于设备仍然连接着,所以切换回MonoDevelop。下面将部署一个发布版本到设备并运行它,之后将演示如何在设备上进行调试。在解决方案树中选择LMT1-2工程,在主菜单选择Project→LMT-1 Options。展开Build节点。在iPhone Build中,设置configuration为Release,platform为iPhone,其他使用默认配置。在iPhone Bundle Signing中,将configuration和platform分别设置为Release和iPhone,设置identity为Developer(Automatic)。在iPhone Application中,设置Application Name为LMT1-2,设置identifier为之前在Xcode中看到的App Identifier。
注意 如果使用通配符()作为bundle id,应该输入应用程序id中不含通配符的部分,例如,应用程序id为AA11BB22CC.,在MonoDevelop的Bundle Identifier文本框中必须输入AA11BB22CC。
单击OK按钮关闭Project Options对话框。在工具栏中,选择当前配置为Release | iPhone,然后在主菜单选择Run→Upload to Device。MonoDevelop将生成应用程序,并通过内部集成的苹果工具进行签名,然后将应用程序部署到设备。在MonoDevelop的Deploy to Device标签页内可看到如图1-20所示的部署进度报告。
这样,应用程序就部署到了设备,可以触碰它的图标来运行它(如图1-21所示)。大功告成!第一个应用程序已成功部署到设备。是否可以在设备上调试应用程序呢?当然可以!

screenshot

相关文章
|
4月前
|
自然语言处理 C# 开发者
Uno Platform多语言开发秘籍大公开:轻松驾驭全球用户,一键切换语言,让你的应用成为跨文化交流的桥梁!
【8月更文挑战第31天】Uno Platform 是一个强大的开源框架,允许使用 C# 和 XAML 构建跨平台的原生移动、Web 和桌面应用程序。本文详细介绍如何通过 Uno Platform 创建多语言应用,包括准备工作、设置多语言资源、XAML 中引用资源、C# 中加载资源以及处理语言更改。通过简单的步骤和示例代码,帮助开发者轻松实现应用的国际化。
47 1
|
Linux 测试技术 调度
新工具开源!一款iOS自动化利器(附地址)
tidevice 是阿里的内部的一个小组用来做 iOS 自动化用的工具,通过逆向iOS通信协议,使用纯Python实现。目前淘宝和其他部分事业部已经全面使用了该技术,进行iOS应用的性能采集,UI自动化。
2499 0
新工具开源!一款iOS自动化利器(附地址)
|
开发框架 JavaScript 前端开发
HDC 2021:华为正式发布 HarmonyOS 3 开发者预览版|构建亿亿连接的新基石
HDC 2021:华为正式发布 HarmonyOS 3 开发者预览版|构建亿亿连接的新基石
HDC 2021:华为正式发布 HarmonyOS 3 开发者预览版|构建亿亿连接的新基石
|
存储 传感器 API
C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)
原文:C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.) 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.
1723 0
|
IDE 物联网 C#
ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。
1.概况       注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题。      从2015年到现在的将近两年的时间,一直在开发、完善ServerSuperIO(SSIO)的基础框架,包括:多通讯机制、稳定性、扩展性等,没有太多时间把工作放在UI的设计与开发上,从二次开发者角度来讲易用性是短板。
1489 0
|
iOS开发
《MonoTouch开发实践指南》一2.4 小结
本节书摘来自华章出版社《MonoTouch开发实践指南》一 书中的第2章,第2.4节,作者:(美)Michael Bluestein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1257 0
|
定位技术 C# 开发工具
《MonoTouch开发实践指南》一导读
MonoTouch很强大,因为它构建于苹果公司的技术之上,同时增加了大量额外的功能来辅助开发应用程序。围绕MonoTouch的团队和社区也是值得关注的。可以通过论坛、邮件列表以及非常活跃的IRC通道等渠道从MonoTouch团队和社区成员那里获得支持,讨论你的想法,或者只是潜水。
1359 0
|
iOS开发
《MonoTouch开发实践指南》一3.6 小结
本节书摘来自华章出版社《MonoTouch开发实践指南》一 书中的第3章,第3.6节,作者:(美)Michael Bluestein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1007 0