关于IOS开发的几点麻烦事
● 关于Apple ID账号,需要定时续费,否则产品就下架了。
● cer证书文件和pp授权文件的创建,分好多种,种类很多。
● cer证书文件和pp授权文件都存在过期问题,需要关注
● 偶尔还会出现Program License Agreement updated协议更新问题
新入门问题多多,希望大家多看看,多收集问题,留言下,我也可以一起记录下来总结下。呵呵
PS: 这篇文章是【IOS学习之常见问题】 关于IOS证书的那点折腾事1-想要知道的事 的续篇。
iOS Developer通常需要用到 [developer.apple.com](developer.apple.com) 和 [itunesconnect.apple.com](itunesconnect.apple.com) 这两个工具,就如同名字表现出来的,前者是开发者资源站,包括文档,工具,社区都在那里。后者是管理自己App的工具。本文提到的内容主要和iTunes Connect有关。 一些建议阅读的文档:都能在developer.apple.com里面找到 ● iTuns Conncet使用指南:iTunes Connect Developer Guide 7.2 ● App Store审核指南(很短,必读):App Store Review Guidelines ● 第一次在App Store添加新app的时候,你有需要设置两个内容,Primary Language和公司名,这两个设置一旦选定是不能更改的 ● Apple明确表示不可以在App中下载可执行代码,也不允许安装或运行其他程序(但是可以调用其他App)。 ● App的介绍中不可以提及其他平台: 如果你做了一个跨平台的App,记得不可以在Meta里面写支持Android。 ● 通常程序提交到通过审核大概是10天的样子。 ● App Store的客户评论是最倒霉的用户意见收集系统:你没有机会和对方沟通,不能追问,也没办法解释,因此请一定记得在App里面给用户一个反馈方法,无论是发邮件还是去论坛/博客留言都好 摘自:iTunes Connect 开发者上手经验 « Bloody Sunshine http://webtoart.com/blog/post/manager_apps_on_itunes_app_store.html |
● 问题: 1.在新mac机器上开发并导入真机测试,是不是需要从别人的机器上面导处开发者证书、开发者授权文件和开发密钥导入到新mac机器上才能开发? 2.程序迭代开发完成,App上传苹果应用商店的时候是不是还需要用老机器发布才可以才能保证App更新?能不能从老机器上面把发布证书导入到新机器上,用新机器发布App? ● 解决方案: 针对问题1:通过导入开发者证书、密钥和开发授权文件(导入测试机)可以实现用新的电脑在真机上开发和测试,其实这个方法解决的问题应该是如何在不想让别人知道自己开发者账号的前提下让多台mac机同时可以开发在真机上测试的App;假设现在你知道开发者账号密码你完全可以通过你的开发者账号在自己机器上重新生成开发者证书、开发密钥,然后通过你信生成的开发者证书和开发授权文件进行真机开发测试。 针对问题2:不能通过导入发布证书的方式在新电脑上更新迭代App;那怎样才能在新mac机上面进行迭代的App发布那,难道必须只能在老机器上面进行迭代发布吗?毫无疑问肯定是可以在新机器上进行迭代APP的发布的,这中间涉及到苹果App商店的升级机制:针对同一个开发账号下面同一个App只要版本号比当前版本号大都会自动提示用户有新版本。所以你可以在你新mac电脑上面从新创建一个发布证书,通过这个发布证书进行发布。 摘自:关于IOS 开发环境,证书和授权文件 - 简书 -文/那C乱我心(简书作者) http://www.jianshu.com/p/689ff5b8e4c8 |
1. Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: ● Developer Certification(开发证书) 安装在电脑上提供权限:开发人员通过设备进行真机测试。 可以生成副本供多台电脑安装; ● Distribution Certification(发布证书) 安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。 不可生成副本,仅有配置该证书的电脑才可使用;(副本制做介绍在下面Keychain中介绍) 2. Provisioning Profile(授权文件) 授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。 开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。 授权文件分为两种,对应相应的证书使用: ● Developer Provisioning Profile(开发授权文件) 在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。 注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。 ● Distribution Provisioning Profile(发布授权文件) 在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。 发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID; 测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。 3. Keychain(开发密钥) 安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。 Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。 注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。 摘自:IOS 开发环境,证书和授权文件 - 龚韬的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/gtncwy/article/details/8617788/ |
OS的推送证书的确是有过期时间的限制的,过期后就需要开发者在苹果官网上重新生成一个证书(详情请见友盟推送证书设置指南:友盟消息推送iOS文档)。友盟推送其实是会在证书过期前一周(七天)发一次邮件和站内信,提醒开发者应该准备更换证书了。 摘自:iOS推送证书还会过期吗? - 推送(Push) - 知乎 https://www.zhihu.com/question/37546044 |
● 登录iOS Dev Center ● 申请苹果App ID ● 生成证书请求文件 ● 申请开发(Development)证书和描述文件 ● 申请开发(Development)证书 ● 添加调试设备 ● 申请开发(Development)描述文件 ● 申请发布(Distribution)证书和描述文件 ● 申请发布(Production)证书 ● 申请发布(Distribution)描述文件 摘自:iOS证书(.p12)和描述文件(.mobileprovision)申请 - 北方人在上海 - 开源中国社区 https://my.oschina.net/u/2361492/blog/514965?p={{page}} |
苹果的开发者账号限制开发者证书只能有5个,我们开发过程中遇到超过5个人需要真机调试的情况,如何解决这个问题呢? 有两种方式可以解决问题: 1. Revoke原来的证书—-不推荐 将以前的证书“revoke”掉,然后重新生成一个新的证书。 这种方法是可以的,但是会造成相应的Provisioning Profiles失效,这是小问题。但是又要重新申请证书甚至描述文件很浪费时间,所以不提倡这种做法。 2. p12—-推荐 我们的每一个证书都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的mac设备使用,使设备不需要在苹果开发者网站重新申请开发和发布证书,就能使用。 摘自:iOS开发– 一个苹果证书如何多次使用 - feiling - 博客园 http://www.cnblogs.com/feiling/p/4805851.html |
● Certificate,证书是用来给应用程序签名的,只有经过签名的应用程序才能保证他的来源是可信任的,并且代码是完整的, 未经修改的。在Xcode Build Setting的Code Signing Identity中,你可以设置用于为代码签名的证书。 ● App ID用于标识一个或者一组App,App ID应该是和Xcode中的Bundle ID是一致的或者匹配的。其中Explicit App ID是唯一的App ID,用于唯一标识一个应用程序,例如com.ABC.demo1,标识Bundle ID为com.ABC.demo1的程序。而Wildcard App ID是通配符App ID,用于标识一组应用程序。如com.ABC.*可以表示以com.ABC开头的所有应用程序 ● Devices中包含了该账户中所有可用于开发和测试的设备。 每台设备使用UDID来唯一标识。每个账户中的设备数量限制是100个。 ● Provisioning Profile文件会在打包时嵌入.ipa的包里。它包含了上述的所有内容:证书、App ID、设备。其中测试用的ipa包只能运行在该账户内已登记的可用设备上。 ● 开发/真机调试流程:申请证书->加入设备->生成Provisioning Profile->设置Xcode Code Sign Identifer ● 发布流程:创建发布证书->创建App ID->创建对应的Provisioning Profile文件->设备Bundle ID和App ID一致->设置Xcode Code Sign Identifer,选择合适的Profile和证书进行签名,打包 ● 如果用Xcode生成和管理的iOS Team Provisioning Profile来进行开发,就不需要自己手动生成Provisioning Profile。 iOS Team Provisioning Profile是第一次使用Xcode添加设备时,Xcode自动生成的,它包含了Xcode生成的一个Wildcard App ID(*,匹配所有应用程序),账户里面所有的Devices和所有Development Certificates。因此,team中的所有成员都可以使用这个iOS Team Provisioning Profile在team中的所有设备上调试所有的应用程序。并且当有新设备添加进来时,Xcode会更新这个文件。 摘自:关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系 - tiffany阳 - 博客园 http://www.cnblogs.com/cywin888/p/3263027.html |
● CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的密钥的名字; ● 生成一个cer证书,有效期为一年;证书创建完成后,下载保存,双击安装即可; 在钥题串登陆证书中可以查看,其中专用密钥的名字即为CSR请求文件中的常用名称; ● iOS App Development/App Store Distribution Provisioning Profiles分别创建开发测试用PP文件和发布PP文件,前者用于真机测试,后者用于提交发布;Ad Hoc 格式一般用于企业帐号,此处我们忽略; 摘自:摘自:苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程(精) - 博客频道 - CSDN.NET http://blog.csdn.net/holydancer/article/details/9219333/ |
一、iOS开发者账号的分类 iOS开发者帐号分为两种: ● 个人帐号/公司帐号:99美元/年,能够上传 App Store,不能够打包直接在设备上运行。(公司帐号可以创建多个子账号,其他和个人帐号没有区别)。 ● 企业帐号:$299/年,不能上传到App Store,可以在企业内部分发(用这种证书打出来的包能在任何iOS设备上运行,不需要苹果的验证、签名)。 二、iOS应用发布方式 1、App Store:苹果应用商店,普通iOS用户都可以在App Store上下载应用。 2、AD-Hoc:两种开发这帐号均可以选择AD-Hoc方式打包,可以将打包完的ipa装到任意符合应用安装要求的设备上。和In-House方式不同,这种方式限定安装设备的数量,并且设备需要在开发这帐号中注册。 三、iOS证书的分类 证书主要包括调试证书、发布证书和推送证书等,由于Xcode 7取消了真机调试签名的验证,使得调试证书不再重要,因此现在的开发者可以不需要创建调试证书。 iOS打包准备工作步骤 ● 创建发布证书(仅首次) ● 创建AppID ● 创建发布Profile文件 ● 导入打包证书和Profile文件 四、iOS发布App Store流程 ● 在mac电脑中安装好证书和PP文件(个人添加的) ● 设置Xcode的Build Settings CodeSigning Identity选项中,debug 对应的是开发证书和开发的配置文件,release对应的是发布证书和发布配置文件。 PS : 简单点就是要发布时,CodeSigning Identity下全部选择发布证书,清一色一致 |
● Product ->Scheme ->Edit Scheme修改scheme (修改为release版本)和 运行设备(修改为 iOS Device 形态) ● Product ->Archive打包 ,根据需求(上传或测试)选择证书、配置文件和scheme。 Xcode会自动弹到Organizer界面,选择对应的打包方式。发布App Store就选择第一项,点击Next,选择证书和ipa文件路径,即可生成ipa包。 ● 打包之前,先到https://itunesconnect.apple.com。点击我的App,选择左上角的加号按钮,选择新建App。创建应用的名字 填入相应的应用信息,3.5寸 4寸 4.7寸 5.5寸照片各5张,基本应用的资料 以及手动发行和自动发行版本等等。 ● 启动Xcode->Open Developer Tool->Application Loader,点击选去选择之前打包好的ipa文件提交,即完成了向App Store提交应用的流程。 摘自:iOS证书那些事 -文/dzgdp888(简书作者) http://www.jianshu.com/p/6a6f4a574328 |
● iOS设备连接Mac后,可通过iTunes->Summary或者Xcode->Window->Devices获取iPhone的UDID(identifier) ● iOS以及Mac OS X系统(在安装Xcode时)将自动安装AppleWWDRCA.cer这个中间证书,它实际上就是iOS(开发)证书的证书,即根证书(Apple Root Certificate),AppleWWDRCA.cer之于iOS(开发)证书则好比户籍证之于身份证。 ● Certificate被配置到【Xcode Target|Build Settings|Code Signing|Code Signing Identity】下,下拉选择Identities from Profile “…”(一般先配置Provisioning Profile,Provisioning Profile中包含的Certificates) ● Provisioning Profile决 定Xcode用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签署应用程序(Signing Product),将在应用程序打包时嵌入到.ipa包里。安装应用程序时,Provisioning Profile文件被拷贝到iOS设备中,运行该iOS App的设备也通过它来认证安装的程序。 ● 每个Apple开发者账号都对应一个唯一的Provisioning Profile生成/更新时机,利用Xcode生成和管理的iOS Team Provisioning Profile来进行开发非常方便,可以不需要上网站手动生成下载Provisioning Profile。 Team Provisioning Profile同Provisioning Profile,只不过是由Xcode自动生成的,也被配置到【XcodeTarget|Build Settings|Code Signing|Provisioning Profile】下。 ● 公钥被包含在数字证书里,数字证书又被包含在描述文件(Provisioning File)中,描述文件在应用被安装的时候会被拷贝到iOS设备中。 摘自:iOS 证书那些事 - 小荷才露尖尖角1213 - 博客园 http://www.cnblogs.com/wangyang1213/p/5209119.html |