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

1.3 在设备上进行开发

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

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

首先,单击左侧导航面板的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所示)。

现在,选择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所示)。

有了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,准备好将应用程序部署到开发设备了。

由于设备仍然连接着,所以切换回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所示)。大功告成!第一个应用程序已成功部署到设备。是否可以在设备上调试应用程序呢?当然可以!

时间: 2024-08-03 17:40:23

《MonoTouch开发实践指南》一1.3 在设备上进行开发的相关文章

《MonoTouch开发实践指南》一1.2 创建MonoTouch应用程序

1.2 创建MonoTouch应用程序 在本节中,将编写一个带有标签和按钮的简单应用程序,并通过单击按钮来改变标签的文本显示.完成后的应用程序将如图1-10所示. 1.2.1 创建用户界面 首先要做的是创建用户界面.返回刚才在MonoDevelop创建的包含一个空白窗口的应用程序,如果IB还没打开,双击MainWindow.xib文件打开IB.前面提及过,IB是苹果的用户界面设计工具,可以用它来创建应用程序的界面.如果曾经进行过Windows或ASP.NET开发,就会觉得它的作用有点类似于Vis

《MonoTouch开发实践指南》一导读

前 言 欢迎阅读本书.如果你是一个.NET开发人员且有兴趣开发基于iOS设备的本地应用程序,那么MonoTouch是个不错的选择.它在优雅的C#和.NET中融合了CocoaTouch框架和Objective-C语言概念,让其成为一个精心设计且乐在其中的技术.可以使用MonoTouch,在App Store和企业中部署应用程序(假设具有适用的许可证).甚至只需要一个免费版本的模拟器,就可以学习和尝试它,而不需要任何额外的费用.此外,如果你是一个学生,还可以使用带有折扣的学生版本. MonoTouc

《MonoTouch开发实践指南》一第1章-1.0 Hello,MonoTouch

第1章 Hello,MonoTouch 1.1 搭建开发环境 1.2 创建MonoTouch应用程序 1.3 在设备上进行开发 1.4 使用MonoTouch调试器 1.5 小结 本章将介绍MonoTouch的开发环境.首先讲述搭建开发环境的所有步骤:然后创建第一个MonoTouch应用程序,并介绍MonoDevelop这个IDE开发工具和调试器:最后讲述如何将设备配置为开发部署设备.

《MonoTouch开发实践指南》一1.4 使用MonoTouch调试器

1.4 使用MonoTouch调试器 MonoTouch既可以在模拟器上进行调试,也可在设备上进行调试.要在模拟器上调试,需设置当前配置为Debug | iPhoneSimulator,设置一个断点,然后在主菜单中选择Run→Debug.要在设备上进行调试,需设置当前配置为Debug | iPhone,假如已经根据上一节的讲述设置了bundle id,那么要做的就是在主菜单中选择Run→Debug.生成和部署一个调试版本的应用程序到设备.MonoDevelop会生成和部署应用程序并启动调试器进入

《MonoTouch开发实践指南》一1.1 搭建开发环境

1.1 搭建开发环境 在使用MonoTouch开发之前,有许多事情需要先验知识(priori).首先从苹果(Apple)入手获取所需要的一切,然后过渡到必不可少的MonoTouch上. 1.1.1 安装iOS SDK和苹果开发工具 欢迎来到使用.NET进行iOS应用开发的世界.我敢肯定,你现在会兴奋得想立刻开始编写程序,不过,首先要做的是在手头那部闪闪发亮的Mac上搭建开发环境.然后熟悉一下在模拟器和iPhone上进行开发所需的所有步骤以及应用程序如何在它们中运行.注意 本书的内容也适用于iPo

《OpenGL ES应用开发实践指南:Android卷》—— 导读

前 言 Android刚刚经历了一个难以置信的增长周期,全世界的消费者手里有超过7.5亿台设备,并且每天都有一百多万台设备被激活.和Apple一样,在每一台Android手机和平板上也有个集中的市场,称为Google Play.随着这个市场被安装到每台Android设备上,对任何一个梦想着发布自己的游戏或者壁纸的人来说,这都是个前所未有的机会. 在Android上,与Apple的iOS及许多其他移动平台一样,开发者可以使用一个跨平台应用编程接口创建二维或者三维图形,这个接口称为OpenGL:Op

《Core Data应用开发实践指南》一1.2 Core Data的适用场合

1.2 Core Data的适用场合 如果应用程序要保存的设置数据太多,以致NSUserDefaults及"特性列表"(property list)这种简单的存储方案无法应付,那么就会出现内存占用量方面的问题.解决办法是直接使用数据库或通过Core Data来间接操作数据库.选用Core Data的好处是,不用再花时间编写数据库接口的代码了.此外,你还将享受性能方面的优势,而且可以使用诸如撤销及验证等强大的功能.假如选择直接使用数据库,那就要花时间去做开发与测试工作,也就是通常所说的&

《OpenGL ES应用开发实践指南:Android卷》—— 2.4 使数据可以被OpenGL存取

2.4 使数据可以被OpenGL存取 我们已经完成顶点的定义了,但是,在OpenGL可以存取它们之前,我们仍然需要完成另外一步.主要的问题是这些代码运行的环境与OpenGL运行的环境使用了不同的语言,我们需要理解如下两个主要的概念.1.当我们在模拟器或者设备上编译和运行Java代码的时候,它并不是直接运行在硬件上的:相反,它运行在一个特殊的环境上,即Dalvik虚拟机(Dalvik virtual machine):运行在虚拟机上的代码不能直接访问本地环境(native environment)

《Lua游戏开发实践指南》一1.3为什么使用Lua

1.3为什么使用Lua 对于游戏开发而言,Lua是较好的选择,其设计的核心目标是可扩展性,因此在最初设计时就考虑到要能够集成在大型应用中.因为有了这样的设计目标,所以非常容易在应用程序中加入Lua脚本.Lua的易集成的特性还使得Lua可以很方便地与父程序通信.游戏程序员都希望脚本语言能够简单地实现游戏设计,在这方面,Lua也能够胜任.Lua免费.小巧.快速且易移植.所有的游戏开发者和游戏公司都喜欢"免费"的工具.通常讲,一分钱一分货,但是对于Lua来说,它完全超出你的预期.Lua采用了