您的位置:首页 > 移动开发 > IOS开发

IOS 制作证书,推送 , 打包发布

2014-05-28 13:39 316 查看


1

 从中也遇到了很多问题,例如,当换了一台机器后发现证书怎么导入都失败,新作的证书也不能用于设备开发,其实这主要是因为,在一开始的时候没有将 .p12进行正常导入,导致证书混乱一直处于不可用的状态,这时候需要删除 我的证书  和 证书里面导入进去的相关证书,然后再找一份最新的.p12证书导入,最后将mobile开发证书导入即可。 如果不进行删除则新导入的.p12文件是不会被覆盖进去所以会一直出错。

2.当进行上传app时出现 an ssl error has occurred and a secure connection to the server cannot be made错误该错误是一个网络错误,只要重新启动电脑即可。 

1.制作证书:

首先我们需要一个developer开发者账号,99美元注册。

有了账号之后就开始制作证书的旅程,首先打开keychain秘钥管理器,然后通过 钥匙串访问=》证书助理=》从证书颁发机构请求证书经过一系列操作。 得到CertificateSigningRequest.certSigningRequest 这就是请求到的证书之一。然后到keychain里面对刚建好的专用秘钥进行导出 (导出.p12文件这是很重要的,当我们换了机器测试的时候我们需要将.p12文件导入到keychain里面然后)。有了2个文件之后我们需要到developer.apple.com/membercenter/index.action里面进行证书制作。
进入到cretificates,identifiers profiles这个制作证书功能里面。分别对栏目进行注释:cretificaes证书制作用于生成.cer文件。identifiers用于建立证书的identitify id 身份认证id(这个很重要我们首先就要生成这个) devices 用于测试的时候将手机的设备号存入进去即可。 provisioning profiles用于制作手机用的许可证书 需要安装到手机。

identifiers:制作app id description是该id的名称起一个比较好记得即可。explicit App ID 的bundle Id 则是非常重要的id号,这个号用于推送等很多用户。命名方式(com.sko.xxx)随意,但要记住。 app services 提供的服务,需要的打钩即可,然后下一步。

certificates:制作.cer证书 ,新建的时候需要选择建立的类型,1.开发测试用。2上传appstore用。这个新建的时候需要导入CertificateSigningRequest.certSigningRequest文件,然后下一步下一步,选择做好的identifiers用于识别认证。最终下载新建好的.cer文件。

devices:设备号生成,用于测试阶段将自己的设备号进行生成。很简单,下一步即可,设备号可以通过xcode的organizer里面查看自己的设备identifier号。

provisioning profiles:用于生成development和distribution两个手机应用的证书。新建development(distribution操作类似)选择证书的类型,第一个测试用的证书 第二个 上传到app store用的证书。(看说明就知道) 然后选择identifiers的那个id.然后下一步文件名字,选择测试的设备devices,如果是app store用的证书不需要选择设备。在下一步 最后下载下来即可。

这样生成好了之后 有CertificateSigningRequest.certSigningRequest,xxx.p12,xxxxDevelopment.mobilexxx,

xxxdistribution.mobilexxx , xxx.cer文件。这些文件多要好好保存。

程序开发这一块掠过,暂时不会。

接下来就是xcode的使用和制作推送文件。(本文使用php推送)

xcode非常好用的工具,如果外包做好了程序后让他发过来,用xcode打开然后 stop按钮边上有打开的文件名,在边上有选择打开的方式,如果连接着iphone的设备则选择该设备即可,然后点击运行,没有的话直接从里面选择模拟器然后运行,就能在模拟器里运行程序了。

如果程序配置需要改动,则点击 加载程序 然后查看build setting里面有相关的信息。我遇到过一个错误

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv7). 我是这样解决的,需要跳到TAGETS里面选择build setting然后修改Architectures 配置为armv7,valid Architectures修改为armv7 点击settings设置即可。

右上角的organizer点击则可查看自己的设备相关的东西,同时生成app也需要在这里面。

organizer:首先看他的功能。

LIBRARY根据名字翻译就可知道他干什么的。 provisioning profiles证书,screenshots截图。

自己设备也会有这些东西操作很简单。 看provisioning profiles 里面的证书是否都可用即可。

顶部导航栏,我也不太清楚都是做什么的。只有devices设备信息,archives用于发布应用到appstore

发布应用:首先制作自己的包,product=》archive生成自己的app包。然后去archives查看。然后可以看到validate...和distribute... 第一个测试是否有错误。第二个发布应用到appstoer。都是下一步很简单。点击这两个按钮之前需要去https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/创建一个应用...里面的一些流程我就不做介绍了。当应用创建好了之后他的状态显示 未上传。这个时候回到organizer点击validate测试一下如果没问题点击distribute上传生成好的app即可。
2
1、开发模式的通知证书配置。

2、发布模式的通知证书配置。

我用的推送通知是百度的“云推送”,虽然延迟时间有长有短,但起码能推送消息。。我的要求不高。。项目要求也不高。。所以只要配置好了证书,剩下的就是照着百度的开发文档去做,就可以了。

首先,需要明确知道的一个事情就是,想要使用推送,就必须有确定的"Bundle Identifier"。

一、创建类型为"Explicit App ID"的APPID。
1、选择"Explicit App ID",输入确定的 "Bundle Identifier".如:com.wuxian.webapp.
2、创建完成后,修改刚才创建的APP ID.
3、选中"Push Notifications"复选框。就可以创建推送证书。
4、按照需求,创建"Development SSL Certificate"或"Production SSL Certificate".按照提示操作即可。

二、创建Provisioning profile.
(如果是开发版本选择:"development" 如果是发布版本选择:"distribution")
1、创建过程中,需要选择app id. 选择刚才创建的app id.
2、选择证书。(开发版本选择:"ios development"证书  发布版本选择:"ios distribution"证书)
3、按照提示进行下面的操作,就可以完成创建。

在开发调试阶段:
需要将"Code Signing Identity"的Debug配置为,刚才创建的"Development SSL Certificate"。然后进行调试.

在发布阶段:
需要将"Code Signing Identity"的"Release"配置为 "Distribution"的证书。然后进行发布

3

其它收集的问题:
lz现在的情况是,用开发者的证书已经能成功跑通推送的流程。
想发布到appstore上,似乎是需要把开发证书更换为发布证书的。
在网上查这方面资料,全部出的是APNS的原理啦,基本配置啦><...没有匹配的答案。

解决方法:
在你创建 App ID 的时候,如果开启了 Enable for Apple Push Notification service 这个选项,那么你下载的用于真机调试(Development)和发布(Distribution)的
Provisioning Profiles 是不用改的,里面已经包含了用于推送的信息。
你的Push SSL Certificate应该有两个,一个是 Development Push SSL Certificate ,一个是 Production Push SSL Certificate ,在你发布的时候,Provisioning
Profiles 肯定已经选了Distribution的那个了,这时只需要把服务端的Push SSL Certificate换成Production Push SSL Certificate即可。提交代码之前和之后换倒无所谓,反正你的代码提交完之后要等一段时间才能进入审核阶段,这个期间内换好就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 推送