Q8:在iOS Dev Center进行证书申请以及生成iPa文件给别人玩
iOS发开蛋疼集锦下
Write by iceAna Team
2.Bie~~,App(Submit app into Store)
01.前言
iOS真机调试上集回顾,倘若还未看过请猛戳这里。我简单总结下:
- 写完代码,选中我们的iPhone、iPad等设备(在开发者账号中注册过),在Xcode下可以进行真机调试。
- 将项目代码、开发者证书、
**密钥**
、开发者账号打包,传输到到另外一台Mac,即可在另外一台电脑进行真机调试,当然前提是设备都必须注册过。
注意到开发证书以及密钥,对于某些朋友比较陌生,这里在提及。由于上集中我们采用Xcode来进行证书(Certificate
)以及配置文件(Provisioning Profile
)的获取。偷偷告诉你,其实还有密钥
,你可以在钥匙串中查看。
那么现在问题来了:
- 你不想把你的代码发给别人,因为涉及某些机密。
- 测试用户没有Xcode,完全没有编程经验。
- 测试用户只有一个itunes用以同步自己的设备。
那么如何解决这些问题呢,请看正文。
02.正文
首先要提及的是你的开发者账号中允许你注册多达100台设备,让你的app在这些设备中安装运行,无须从App Store去下载。 你只需要在Xcode中简单地build
下app代码,然后发送给测试用户压缩文件即可,当然这个压缩文件必须包括:application bundle
和Ad Hoc Distribution profile
。之后用户将这些文件拖入itunes
中,连接iPhone、iPad
进行同步。
注:
application bundle
Ad Hoc Distribution profile
。英文翻译下就理解了:Ad Hoc 表示临时地,特别地(别喷我)。
1.关于distribution profile
之前我们明确表示了想要将开发的App运行到设备上,必须要使用证书(Certificate
)和配置文件(Provisioning profile
)进行签名(signed
)。此外这里的配置文件你是否还有印象,Team provision
可以匹配任何App ID
,但是令人遗憾的是它只能针对开发目的来说,仅仅只在Xcode中有效。
恩...到目前为主,希望你一切都进行得顺利:能够用Xcode将app在真机中跑起来。接下来我们开始新的旅程。明确两个英文单词:
Development
开发,也就是你还处于代码调试等阶段Distribution
发布,应用成熟了,可以作为产品发布供大家玩了
接下来我们换一种方式,创建一个新的profile
仅为distribution
工作。
2.ios Dev Center 内容讲解
打开Safari,点击网址http://developer.apple.com/ios/,用户登陆之后,我们的目的地是Certificates,Identifiers&Profiles
。
点击之后进入以下界面:
此时你现在看到的是这样的:
Certificates
- All
显示所有证书 - Development
显示开发证书 - Production
显示发布证书 即Distribution
- All
Identifiers
- App IDs
App是应用程序,那么都要给它设置一个对应ID!
- App IDs
Devices
- All
显示所有设备
- All
Provisioning Profiles
- All
显示所有配置文件 - Development
显示开发配置文件 - Distribution
显示发布配置文件
- All
3.证书作用及流程
选择Identifier->App IDs
,在该页面下有一个+
按钮,点击选择添加一个新的App ID。
-
App ID Description
中的Name
随便填没事的,毕竟只是一个描述,这只在Provisioning Portal
有用。 -
App ID Prefix
表示App ID前缀,默认代表你的团队ID,不管它,该怎么样就怎么样, -
App ID Suffix
表示App ID后缀,我们当然要选择Explicit App ID(明确的App ID),这个有讲究!在Xcode打开你的app项目,还记得这个红箭头指的吗?对于我来说就要填写com.pmst.StoreSearch
。
其他采用默认配置,按Continue继续以创建App ID(别忘了提交).不出意料这个新创建的portal将添加到列表中。
注意到
Name
就是我们填写的描述文字,PreFix
前缀是唯一标识的10个字符,通常我们会称之为bundle seed
。 -
到现在为止,工作还算顺利,现在看看你是否有发布证书(
distribution certificate
)。打开钥匙串工具:
-
别疑惑,在上集中我们用Xcode向服务器请求了,自动生成并下载了!但是如何手工去制作呢?这里教大家。同样先到
Certificate->Production
中,按下+
进行新建。
-
选中
App Store and Ad Hoc
创建,如果仔细看,本处会出现CSR
字样,先不管,点击继续,直到这时,你会发现你卡住了!因为它要求你产生一个CSR
或者证书签名请求。别担心,这很简单,come on,跟随我。 -
打开钥匙串访问,通常是在
Application/Utilities
下。 -
在钥匙串的菜单栏中选择
Certificate Assistant → Request a Certificate from a Certificate Authority...
接下来会弹出这个框框:
填写好邮件地址、名字、选择保存到磁盘,点击继续,将文件保存到桌面即可!
回到刚才网页,上传CertificateSigningRequest.certSigningRequest
,点击generate
。然后按download
下载下来,靠!终于有属于我们自己的证书了(名字一般叫做ios_distribution.cer
),重申下,我们的证书是发布证书,当初选择的是App Store and Ad Hoc
。双击安装!这样在你的钥匙串的我的证书中就新增了一个。 -
一个app需要运行,必须要证书和配置文件签名才可以在设备上跑,前面我们已经创建了一个发布证书,现在来创建一个发布型配置文件。在
Provisioning Profiles->Distribution
下点击+
新建一个。
接下来分为几个步骤:1.选择App ID(应用程序ID),我们刚才可是创建了的,别告诉我你忘记了;2.选择发布证书,刚刚才创建;3.选择设备,强调过设备都需要注册过;4.填写provisioning profile
的名字!
还算顺利吗?还差一点点,坚持,马上就结束了!现在点击Generate
产生该provisioning profile
并点击下载StoreSearch_Ad_Hoc.mobileprovision
.暂时保存好,之后又用。 -
现在打开Xcode,
Preference->Accounts
面板,点击View Details...
,你将看到:
-
现在终于可以歇一口气,我们有了两个证书:开发证书和发布证书,以及配置文件:
Team provision profile
和XXX Ad Hoc profile
(这个是你自己取的名字).接下来我们要开始build app
进行发布了!
4.build 下然后bie~一声发布出去
build 有两种模式:Debug和Release。两者不同之处在于:在Release模式下,对于代码的一些优化打开,能够更快更好地执行,而在Debug下则会关闭这种优化。详细在以后我的app中给出。
-
连接你的设备到Mac下,打开Xcode,选择你的设备作为调试Device(平常选择模拟器的地方)。
-
在Xcode的菜单栏中选择
Product->Archive
,可能会有如下信息提示codesign wants to sign using key “Your Name” in your keychain.
Xcode正在询问你发布证书呢,选择总是即可!不出意外你可以看到如下界面:
-
右键
Show in the finder
,之后右键选中.xcarchive文件,显示包内容。随意看看! - 假如不小心关掉刚才那个界面,别担心,前往
Window->Organizer
。现在选择右边三个按钮中的Export
,然后选择中间选项,为什么?看下解释你会懂的!
它会询问是哪个团队去使用它,然后寻找Ad Hoc provisioning profile
以及为它签名,看到结果是这样:
选择了Provisioning Profile
去Export!假如说没找到,那么可以多试几次 try again! - 现在生成了一个.ipa文件了吧!别忘记我们的
provisioning profile
文件,没它可不行!
- 打包好发给你的测试者吧!切记把测试者的设备添加到你的开发者账号中,有100台限制。
5.测试用户怎么用ipa文件
- 打开iTunes,转到应用程序界面。
- 将StoreSearch.ipad拖进去!
- 将Provision Profile文件拖进去!
- 连上你的iPhone iPad
- 同步
6.最后
有时间写下应用上传到App Store文章! 最后感谢大家,希望能关注我下,或者留言鼓励下。
???
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。