zoukankan      html  css  js  c++  java
  • Xcode发布程序到调试机

    XCode发布App到调试机

    今天我们介绍如何用XCode发布我们开发的App到我们自己的机子上(如何发布到App Store不在本文讨论范围内)。我们将用XCode写一个小的测试程序,分别在模拟器和真机上测试。注意在真机测试前,你必须先购买苹果的iOS开发者证书(99刀)。具体购买流程可以参考这里:http://blog.csdn.net/htttw/article/details/7939405

    我们以iPod为例介绍。

    1.

    首先我们要创建一个本机密钥。不过还需要先设置一下Key Chain Access。打开Applications/Utilities/Key Chain Access的Preferences,将Certificates中的OCSP和CRL都关闭,如下所示:

    2.

    然后打开Key Chain Access:

    选择Keychain Access菜单的Certificate Assistant/Request a Certificate From a Certificate Authority...,如下所示:

    3.

    输入你的邮件和名称,注意选择Save to disk,并把Let me specify key pair information勾选上,然后点Continue:

    4.

    保持Key Size和Algorithm默认就可以了,点击Continue,选择保存位置。至此我们的本机密钥已经生成完毕,是一个以.certSigningRequest结尾的文件:

    5.

    下面我们要将这个密钥文件上传到苹果服务器:

    登陆到 developer.apple.com,在右边有一个 “iOS Provisioning Portal”:

    点进去,如下所示:

    选择左边栏第二项Certificates,然后点Request Certificate申请一个Certificate,如下所示:

    然后点击Choose File,选择我们之前创建好的本机密钥文件,之后点Submit:

    6.

    片刻之后刷新本页,就会在原来空的Development Certificates中生成一个新的Certificate:

    注意到右边Status里显示的是Pending Issuance,因为我们还没有下载WWDR,点击“click here to download now”即可下载。下载完成后双击该文件,点Add开始安装:

    Add之后再次刷新之前的页面,现在Download链接出现了:

    下载这个文件,是一个.cer文件。

    7.

    双击下载的.cer文件,同样点Add开始安装:

    下面我们要开始添加设备了:

    8.

    打开XCode,然后连接iPod到计算机,XCode会自动弹出Organizer窗口,如果版本匹配的话就会如下所示:

    复制设备的Identifier(40位的十六进制数)。

    9.

    回到之前的IDP Provisioning Portal页面,选择左边栏第三个的Devices:

    点击Add Devices,如下:

    输入Device Name和Device ID(前者开发者可以自定,后者即先前在XCode中获取的设备的Identifier),然后点Submit

    10.

    设备注册完成后,回到之前的IDP Provisioning Portal页面,选择左边栏第四个的App IDs(一般一个App ID对应一个应用程序):

    点击New App ID,如下所示:

    填写App ID时,Description部分可以由开发者随意填写,但只能是字母或数字(空格也不行);而“Bundle Identifier”的填写则相当重要,如果此信息填写不正确,则无法完成真机测试应用程序。这里具体有两种写法。具体看下苹果公司提供的一个用例“com.domainname.appname”。命名需要按照此规范填写。第一个“.com”是必须按照苹果公司给的样式填写的,而“domainname”则需要用户自定义填写,这部分信息可以由开发者随意填写,但苹果公司推荐用公司的域名。最后一部分则表示你需要测试的应用程序的名字,比如用XCode创建了一个叫app的应用程序,那么这部分就填写app。当然也可以用“*”号代替,则表示该App ID可以用于任何com.domainname.*的程序。本文推荐使用第二种。如下图所示:  

    之后点Submit即可。

    11.

    App ID创建完成后,回到之前的IDP Provisioning Portal页面,选择左边栏第五个的Provisioning(这个Provisioning会告诉XCode是否允许将应用程序下载到真机上):

    由于我们之前没有创建过Provisioning,因此是空的

    点击New Profile,Profile Name可以任意(同样只能是字母或数字),同时勾选之前创建的Certificates,在下拉框中选择之前创建的App ID,并勾选之前创建的Devices,然后点Submit:

    稍等片刻,刷新页面,就会出现新生成的Profile文件,点击Download下载该Profile文件,是一个.mobileprovision文件:

    12.

    打开XCode,双击刚才下载的.mobileprovision文件,就会在XCode的Organizer窗口中看到如下结果,说明我们之前生成的Profile是合法的:

    至此,我们的调试机与XCode之间的连接设置完毕。

    下面我们用XCode新建一个测试程序,放在我们的iPod上运行:

    13.

    我们创建一个Single View Application,名称是Test:


    14.

    在主页面添加一个按钮,点击它之后就会弹出一个Alert窗口,代码如下:

    1. -(IBAction)btnAlert:(id)sender  
    2. {  
    3.     NSString * str = @"您按下了Press按钮";  
    4.       
    5.     UIAlertView * alterview = [[UIAlertView alloc] initWithTitle:@"" message:str delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];   
    6.       
    7.     [alterview show];     
    8.     [alterview release];     
    9. }  



    界面文件如下:

    15.

    将按钮和btnAlert连接起来。注意到第14步中的代码在XCode中是错误的,提示“release is unavailable ....”

    解决办法如下:

    单击左边栏的顶层项目目录,在中间栏的Targets栏选择Test,设置右边的Objective-C Automatic Reference Counting为NO(可以在右上角搜索):

    16.

    在XCode左上角选择iPhone 5.1 Simulator(默认是iPad 5.1 Simulator):

    点左边的三角按钮运行,可能会弹出下面的对话框:

    只要在终端输入下面的命令就不会再弹出该对话框了:

    [plain] view plaincopy
    1. sudo /usr/sbin/DevToolsSecurity --enable  



    17.

    模拟器中的结果如下:

    点击按钮,弹出Alert对话框:

    18.

    下面终于到了最激动人心的时刻了,我们要下载到我们的iPod真机上运行:

    首先要设置Test-Info.plist中的Bundle identifier为你在第10步创建的Bundle identifier,必须要一致,否则真机无法运行!

    然后在项目设置中选择Code Signing Identity(也可以在左上角搜索),改为“iPhone Developer”:

    19.

    然后在XCode左上角选择你的真机设备,如下所示:

    点左边的三角按钮就开始下载到真机运行了:

    不过可能还会弹出下面的对话框:

    选择Always Allow就可以一劳永逸了。

    真机运行结果:

    初始界面:

    按下了Press按钮:

    同时我们的真机上也已经安装好了test:

    至此,从申请证书到下载到真机运行的完整流程介绍完了,大家也可以试一试哦~~

    以上内容可以参考:

    http://blog.sina.com.cn/s/blog_68e753f70100r3w5.html

    和 

    http://iphone.tgbus.com/dev/iosdev/201205/20120516171253.shtml

    写的都非常详细。

    完成

  • 相关阅读:
    关于tomcat内存检查的错误
    linux fedora19默认没有最大化和最小化按钮解决
    顺序栈
    在NET平台下,操作EXCEL
    【Android】状态栏通知Notification、NotificationManager详解
    Android之BroadcastReceiver
    Android之Broadcast
    Android 之Service
    我的常用网站收集
    arduino
  • 原文地址:https://www.cnblogs.com/renhuanwei/p/3936729.html
Copyright © 2011-2022 走看看