iOS App 签名流程

发布时间:2018-06-29 21:29:01   来源:文档文库   
字号:

iOS App 签名流程

1. 证书申请文件(CSR文件)

该文件主要用于证书的申请,在增加证书的过程中需要上传该文件。这里需要用到一个苹果自带的KeyAccess(钥匙串访问)的软件,用来生成证书的申请文件。

      点击从证书颁发机构请求证书后,会出现下图:

      

      这里就是输入邮箱,名字,在请求是下我们选择存储到磁盘,把申请文件存在硬盘上,后面需要上传这个文件到苹果后台。

2. 申请证书

      准备好证书的申请文件后,就应该是申请证书了。

    证书分成开发证书和发布证书,其中有没有推送功能又是不同的,根据实际应用的功能选择证书的种类:

     

      选择好需要的证书后,上传刚刚生成的CSR文件,按下Generate后,稍等一会,证书就生成了,你可以下载后,双击安装到本机,安装完后可以到钥匙串访问中查看。

3. AppID

在证书生成后,接下来需要生成AppID,相当于帮你想开发的应用生成一张身份证。 AppID需要你起一个名字以方便描述,不能输入特殊字符。

1AppIDAppleID的区别:

      AppleID是用户在苹果的账号,在AppStore上下载应用时,需要使用的就是这个账号。

AppID则是应用的身份证,用来表明应用的ID

    2 AppID分类:

带通配符,在除了上架应用时除外,其他很多时候,为了方便多个应用共用,我们往往使用带通配符的AppID,比如:com.uf-tobacco.*,即匹配以com.uf-tobacco.开头的AppID

不带通配符,在AppStore上正式发布应用时,应用必须有唯一的名字,所以需要使用不带通配符的AppID,比如:com.uf-tobacco.iphonemp

      最后一步是选择应用的服务,这个需要根据应用的实际情况选择,如果你还不清楚应用具体的情况,那么这些选项后面是可以更改的,选默认即可。

4. 注册设备

针对在开发过程中的苹果应用不可能在AppStore上发布,也就没办法安装在设备上的问题,为了调试和测试,苹果推出了Adhoc版本,这是属于在发布前的测试版,只有在后台注册过并被签名文件引入的设备才能安装运行。   

      注册设备时需要输入设备的UDID,根据账号的类型,可以注册100台或者更多的设备。

5. 生成签名文件(Provision Profile

      签名文件是应用签名的核心文件。

1、签名文件分类:

1) 开发签名文件

2) 发布签名文件

1. Adhoc(发布测试版签名文件)

2. AppStore签名文件      

      2、签名文件需要和一个AppID捆绑,这个根据实际情况选择,一般开发用的签名文件,会捆绑一个带通配符的AppID,这样可以在一系列的应用中通用;而发布AppStore的签名文件,必须捆绑一个不带通配符的AppID

    3、选择证书

      4、选择设备

如果是Adhoc的签名文件需要指定设备,只有选中的设备才能安装应用。当然,如果是AppStore的签名文件则没有这步。

      5、输入签名文件的名字,按下Generate按钮,签名文件就生成了。

6. App进行签名前提

证书必须有密钥,首先.cer文件是公钥。私钥是在生成.cer文件是提前生成.csr文件时生成的,只在生成.cer的机器上存在。在其他机器上使用的时候,需要导出.p12文件。这个文件一般是包括私钥和公钥的。所以在其他机器上安装p12文件后,可以看到配对的公钥和私钥。

a) 当一个Apple ID已经在A电脑上生成并安装了证书后,如果在B电脑上下载证书进行安装时,安装的证书不带密钥,这样的证书,无法进行签名。

b) 解决的办法只能将A电脑下的证书导出成.p12文件后,B电脑安装.p12文件

2、证书和provision profile文件不能过期

3、证书和provision profile文件必须相对应

证书与provision profile文件不一致时,会出现找不到provison profile文件的错误。

4、provision profile 文件的AppID必须和应用的bundleID一致。

AppIDbundleID不一致时,出现没有匹配的AppID

7. 自动打包APP注意点

打包出错时处理办法

手工执行命令进行打包:

xcodebuild -project $projectfolder/MobilePortalMobilePortalIphone.xcodeproj -configuration $configuration clean build CODE_SIGN_IDENTITY="$certname"

Xcrun -sdk iphoneos PackageApplication -v $projectfolder/build/$configuration-iphoneos/MobilePortal.app -o $outputpath --sign $certdes --embed $provisionfilepath -verbose

$projectfolder :生成的临时目录

$certname:根据打包的app的目录下的.properties查看-wl-cert-desc的值

$configuration Release

$certdes :通过双击使用的证书

根据命令执行的结果和报的错误修改证书和provision profile文件

如果打包的前提得到保证,基本能完成应用的打包。

8. 不建议这样做

Xcode能根据你使用的Apple ID 获取帐号下的证书及provision profile文件,如下图:

如果你的帐号不存在开发者证书,则有Create按钮可以创建证书。点击Create之后Member Center会增加一个开发者证书:

同时钥匙串中也会增加一个证书:

当没有provision profile文件时出现下图:

点击 Fix Issue。在Member Center中会增加几个文件。

以上的操作基本都由Xcode自动处理,虽然操作简单,但是所生成的文件及使用的文件比较不确定,在进行签名的时候可能出现错误。

在此建议证书和provison profile文件还是通过手动管理。

常见问题

1、没有私钥时错误:

需要导入.p12文件。

本文来源:https://www.2haoxitong.net/k/doc/997f583805087632301212bb.html

《iOS App 签名流程.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式