iOS 程序从开发完到时时彩源码论坛那点事儿
2018-09-02 19:32

  想要时时彩源码论坛【大神源码论坛】布丁源码论坛】 企娥3393756370 进行iOS开发,除了必备一台装有Mac OS X/Xcode的Mac开发机(iMac or MacBook)之外,还必须要有苹果开发者账号,只有拥有开发者账号,才能申请开发/发布证书及相应配置文件,项目才可以发布到App Store上。

  个人账号和公司账号的区别:个人账号注册流程快,没有团队角色管理。只能一个用户登录操作;公司账号需要注册邓白氏码,企业营业执照,流程复杂,流程耗时长。有角色管理功能,能邀请多个appleid分不同角色管理。

  注意:第一类中的公司账号和第二类中的企业账号不是一码事,虽然听上去公司和企业是有些相似的概念。

  如果我只是想本地开发练手,并不想发布到App Store上,也是可以不必花钱就能进行线以后,苹果放宽了开发者的范围,只要一个真实的苹果账号(在App Store里下载应用的或者用于iTunes的账号)即可。

  一个App能在自己的手机上运行,和能放到App Store里被所有人下载还是不一样的。当我们开发完APP,肯定想要发布到App Store供人下载,这个过程中,我们不是直接把写好的代码发给苹果公司就完事了,而是要把自己的代码像发快递一样打个包装,发给苹果公司,由它审核通过,允许发布到App Store才能上线。嗯,就是说我们是淘宝卖家,苹果公司是我们的收件人,它收到货后确认收货我们才能拿到钱。

  但是在这个过程中会有一个问题,如果别人冒充我的名义发给苹果公司一份恶意代码包怎么办?苹果公司岂不是要给我差评?我岂不是很冤?为了避免这样的问题,在苹果App Store中上线的应用都需要通过一套数字证书签名机制来确保项目代码的来源是可信任的,代码是完整的,未经他人修改的。这套机制基于非对称性加密(也称为公钥加密)算法,开发者用私钥对代码进行签名加密,苹果公司用包含公钥的证书进行验证。

  不同的开发者账号可以打的包也不同,大体可以分为debug版还是release版,具体打包分类如下:

  Ad Hoc:可供有限个登记到开发者中心--设备中的设备安装使用

  in house:企业内部使用,没有测试机的数量限制,我们大鹅厂的RDM就属于in house类型。用企业证书打包应用的最大好处是:应用可以安装到非越狱的设备上运行,这样很方便进行较大规模的测试、或公司范围发起内部体验,企业证书打包的应用禁止外发。

  这里详细说一下Ad Hoc模式,Ad Hoc这种方式主要是为了给测试人员或者内部体验人员安装我们的程序以供测试使用的,对于大公司来说,让他们每个人都拿着手机连到开发机进行安装显然是不现实,我们需要打包(Archive)我们的程序。

  Ad Hoc方式就是在上架前最大程度的呈现出上架后的状态,它与上架到AppStore的包唯一的区别在于Ad Hoc的包可以在指定机器上安装,而上AppStore的包需要苹果重签名才能安装到iOS设备上。也就是说,Ad Hoc模式需要用distribution证书并以release方式打包,但是它可以指定设备(DeviceId)。

  打包的过程需要申请发布证书、配置文件等,每种打包模式必须对应各自的证书和配置文件,下面就详细介绍一下这个过程以及其中涉及到的一些文件的主要功能。

  Bundle ID (Bundle Identifier)是一款iOS应用的唯一标识,应用与Bundle ID之间是唯一对应关系。应用新建成功后,Bundle ID将不可修改,如必须修改只能创建一个新的应用。

  开发者需要在开发者中心下图的页面点击加号来注册自己的APP,通过App ID用于标识一个或者一组App, App ID应该是和Xcode中项目的Bundle ID是一致的或者匹配的。开发者可以在下面的位置点击加号创建App ID。

  每创建一个App ID,我们都可以设置该App ID所使用的APP Services,也就是其所使用的额外服务。

  下面是目前所有可选的服务和相应的配置要求。按照这个要求去配置你的App以获得相应的服务。

  时时彩源码论坛【大神源码论坛】 【布丁源码论坛】 企娥3393756370

  在某些时候我们可以使用通配符,但是通配符无法完成推送功能。也就是说,如果要使用Apple Push Notification Services,则必须是一个explicit App ID,以便能唯一标识一个应用程序。

  需要着重说明一下,AppID是一款应用程序在苹果全平台的唯一标识。正好前两天同事们讨论一个问题: 一个bundleID的程序能不能既作调试使用又能发到AppStore?答案是可以的,在开发者中心配置的设备可供调试使用。

  更进一步,debug、inhouse和发布到App Store的项目能不能是同一个bundleID?答案是否定的。因为企业账号可以发inhouse版本的项目,却不能发App Store,而AppId是全球唯一的,一个账号创建了,其他账号无法再创建。所以一般公司如果想发inhouse版本的企业内测包,通常是有两个账号,公司账号用来调试和发布,企业账号用来发布inhouse版,也就是说,inhouse和 AppStore、debug的bundleID肯定是不一样的,至少有两个bundleID。像大鹅厂这样的大公司,由于调试/发布的账号由专人统一管理,不能给到各个产品,所以我们必须自己购买一个专门用来调试的账号,这也就导致了我们的项目有个三个bundleID。

  首先来说证书,顾名思义,证书就是为了证明某些信息真实性的凭证。不过可能不同人或者机构对真假的判断都不一样,A说是真的,B说是假的,证书也不过是证明签发证书的机构的态度而已,真真假假这么哲学的问题我们就不讨论了,毕竟要到苹果公司的App Store上线程序,苹果爸爸的态度决定一切。也就是说,我们的信任起点就是苹果公司,所以首先我们需要一个根证书(Apple Root Certificate),根证书是一切证书的合法性的来源,其含义就是“我们认苹果爸爸说的一切”。根证书一般不需要自己去申请,iOS以及Mac OS X系统在安装Xcode时将自动安装。但是根证书需要及时更新,如果过期了,其他所有证书都会失效,会报Missing iOS Distribution signing identity for XXXXXX错误。再次提醒,一切苹果公司的证书都依赖于根证书,根证书是其他所有证书的基础。

  除了必须的根证书以外,我们开发、调试项目还需要Development证书,发布项目还需要Production证书。结合前文说到的账户体系和各自可以打的包,个人/公司开发者和企业开发者都有开发和真机调试程序的功能,都可以申请各自的Development证书。在发布项目方面,个人/公司开发者和企业开发者权限不同,Production证书也不同。个人/公司开发者可以给制定设备安装release版本的包、可以向App Store发送人人都可以下载安装的包;而企业开发者账号不能在App Store上线程序,只能发在企业内部体验使用的包,比如咱们大鹅厂的RDM包。

  Push Development 证书就是用来调试Apple Push Notification的证书,需要特别注意推送证书的对应关系。推送证书也分为两类:开发环境和生产环境的。App的development证书对应推送的开发环境证书,inHouse AdHoc Distribution的证书对应推送的生产环境证书。此外,推送的开发环境和生产环境的对应的推送环境是不一样的,需要对应苹果后台测试推送的地址环境和生产推送的地址环境 ,如果对应关系搞错都会收不到推送。

  具体来说,证书就是.cer文件,包含开发者信息和公钥信息,用于验证代码是否由该开发者的合法私钥签名过。开发者使用开发账号登陆苹果开发者网站即可申请(后文有申请过程),当开发者下载并双击打开证书文件后,证书会出现在钥匙串里。它与本地钥匙串里的私钥匹配之后,开发者就可以使用它了。

  一个开发者账号可以申请的证书数目有限,当我们需要多人合作开发的时候,不能每台机器都去申请证书,这种情况下正确的做法是,一台机器去申请钥匙串和证书,然后生成出p12文件,分发给其他开发机安装,使得其他开发机也“拥有”了证书。p12文件就是证书安装到本地后,与本机私钥match后生成的备份文件,其中包括证书和私钥的信息,也可以称为“备份证书”,跟身份证复印件差不多。

  Provisioning Profile文件就是一份配置信息文件,后缀为.mobileprovision。打包或者在真机上运行一个APP,一般要验证以下几个信息:

  Provisioning Profile作为打包必备的一份文件,其中包含以下信息:

  选择左上角的钥匙串访问--证书助理--从证书颁发机构请求证书,输入自己的邮箱,选择存储到磁盘,继续。

  在开发者账户中配置Devices的地方点击右上角“+”可以增加某个Identifier的设备,注册后的该设备可供调试使用。

  在Devices里可以查看注册过的所有可用于开发和测试的设备,普通个人开发账号每年累计最多只能注册100个设备。用户可在网站上启用/禁用已注册的Device。但是Disable 一台设备也不会增加名额,只能在membership year 开始的时候才能通过删除设备来增加名额。

  选择开发或发布证书配置文件,这里以开发为例,点击iOS App Development,继续

  选择之前注册过的,用于调试安装的设备(最多100台设备),如果是生产证书配置文件,则不会出现该页面(生产证书用于发布,不能进行开发调试),继续看到以下界面

  找了好几篇帖子,发现其实问题跟人家的不太一样 ,所以结合前辈的方法自己总结了一下。     参考资料:                 系统安装:

  极速时时彩源码出售Q1157880099前言优先队列 PriorityQueue 的实现其实就是数据结构堆的实现。对数据结构堆比较熟悉的,看 PriorityQueue 的源码会十分容易,...

  快彩网源码下载 完整搭建教程详解PHP+MYSQL完整源码搭建无错测试图片源码地址分享 快彩网源码下载

  如果时时彩网站搭建【大神源码论坛】布丁源码论坛】 企娥3393756370要创建一个新的Core Web API项目的话,只需要打开...

  1 探索式测试基础系列 1.1 背景 初恋时时彩源码 php【大神源码论坛】 【布丁源码论坛】 企娥3393756370 是甜蜜的,与众不同的,...

  Mask R-CNN是基于Faster R-CNN的基于上演进改良而来,FasterR-CNN并不是为了输入输出之间进行像素对齐的目标而设计的,为了弥补这个不足,我们提出了一个简洁非量化的层,名叫Ro...

  收集了一些菠菜源码开发的网站源代码,从实践中学习,希望对大家有用。资料名称下载地址微信公众号版澳娱国际 【迪士尼彩乐园】...