iOS签名证书

增删Provisioning Profiles

清空所有的Provisioning Profiles

  • cd ~/Library/MobileDevice/Provisioning\ Profiles/
  • rm *.mobileprovision

恢复需要的账号里的Provisioning Profiles

  • 访问XCodePreferences>Accounts
  • Apple IDs里面找到你的帐号,选中后,在右侧,在Team Name下面会有一行信息 双击(或者单击右下角的View Details...)
  • 在弹出窗口里面,有个Download All,点击之后,属于这个帐号的provisioning profile就会再次出现

生成签名

大致介绍

本地生成证书 –> 进行签名 + 添加项目id + 添加测试设备 –> 生成项目所需的Provisioning Profiles

  • 生成签名证书常用两个 开发证书发布(测试)证书
  • 项目ID测试设备ID 只需添加一次
  • Provisioning Profiles是和项目一一对应,但可以共用同一证书,它是根据证书 项目ID 测试设备生成的
  • 一个项目常用三个Provisioning Profiles 分别为开发配置(iOS App Development)发布配置(App Store)测试配置(Ad Hoc)

生成证书

  • 电脑打开钥匙串访问
  • 钥匙串访问->证书助理->从证书颁发机构请求证书
  • 填写相关信息后,选择存储到磁盘,进行保存
  • 暂命名为文件1

生成签名

  • 打开开发者中心
  • 进入Certificates, Identifiers & Profiles
  • 选择Certificates
  • 一直下一步即可
  • 选择文件时 上传生成证书那一步的文件(文件1)
  • 暂命名为文件2

项目ID(Identifiers)和设备(Devices)

这一步没啥注意的

生成项目配置(Provisioning Profiles)

就是选择签名证书 项目ID 和 测试设备 生成一个配置文件 暂命名为文件3

下载文件2文件3 双击倒入即可

报错解决

1
Your build settings specify a provisioning

以上步骤都没错 运行报上述错误时,解决方法如下

  • 找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容)
  • 打开后找到project.pbxproj文件,用文本编辑器打开。其实就是右键,点击open就好了。
  • 打开这个文件后,按command+F,在这个文件中查找PROVISIONING_PROFILE,找到类似下面的配置的都删除
1
PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
  • 然后保存文件,重新打开项目。倒入Provisioning Profiles即可

推送证书

推送证书和之前的证书生成步骤有一点不一样
推送证书生成前 必须先添加Identifiers
生成的过程中要选择项目的Identifiers

生成p12文件

生成签名证书(上文的文件2)
下载 双击 倒入电脑
打开钥匙串访问
我的证书 找到导入的证书 右键导出p12文件即可

生成pem文件

生成

1
openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

检查是否可用

有效期

openssl x509 -in xxx.pem -noout -dates

连接APNS测试证书是否合法

开发环境
1
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert xxx.pem -key xxx.pem
生产环境
1
openssl s_client -connect gateway.push.apple.com:2195 -cert xxx.pem -key xxx.pem

更换开发电脑

换电脑后以前的证书都不能用了,解决方法有两个

1) 访问XCodePreferences>Accounts 左下角有个齿轮的标志点击导出 在另一台电脑导入即可(推荐方式)

2) 原电脑不在 那就删除原有的证书 在新电脑上生成 证书删除是没事的 他只在发布应用时用 发布后 删除是不会有影响的(推送证书除外)