企业证书重签名发布APP(支持APNS)

原创 2015年11月20日 11:19:21

企业证书重签名发布APP(支持APNS)   

针对内部企业或者内测用户,我们希望APP测试完成后能立即在小范围内测用户手中进行体验以及相关功能的验证以及反馈。
为了达到目的,一般我们会自己做一套内部发布系统,既然需要做内测发布,那么首先得有可以用的ipa包。并且保证功能不缺少。
苹果的开发者证书只能保证最多100个用户安装,并且还得提供udid,苹果提供的企业证书可以免去udid。但是当我们兴冲冲去申请了企业证书后,问题来了:
每个bundleid只能存在于一个账号,当需要推送APNS时,企业证书也得生成一个跟开发证书一样的bundleid,否则企业证书发布的版本要跟提交APPSTORE的版本不同bundleid,到时无法相互覆盖以及做兼容。

是否有办法使用相同的bundleid,又能使用推送功能呢?
方法是有的,那就是重签名。

重签名方法如下:
假如APPSTORE上的版本bundleid为:com.zalejiang.appstore

1、用企业证书 生成一个其他bundleid的能支持APNS推送的证书。bundleid不限。例如:com.zalejiang.inhouse
2、拿到提交APPSTORE的ipa包,解压:unzip appstore.ipa
3、删除Payload/appstore.app/_CodeSignature
4、更换描述文件:cp inhouse.mobileprovision Payload/appstore.app/embedded.mobileprovision
5、重签名:codesign -f -s "iPhone Distribution: inhouse" --entitlements Entitlements.plist --resource-rules Payload/appstore.app/ResourceRules.plist Payload/appstore.app
Entitlements.plist 是很重要的一个文件,具体格式见后文
6、压缩成ipa包:zip -r New_appstore.ipa Payload

其中Entitlements.plist 格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     <key>application-identifier</key>
     <string>JDL5JS4SKC.com.zalejiang.inhouse</string>
     <key>aps-environment</key>
     <string>production</string>
     <key>get-task-allow</key>
     <false/>
     <key>keychain-access-groups</key>
     <array>
          <string>JDL5JS4SKC.*</string>
     </array>
</dict>
</plist>

标红的地方要跟使用的inhouse.mobileprovision文件里面的信息一致。

压缩后安装的包直接用com.zalejiang.appstore的消息推送证书即可收到消息。
?

相关文章推荐

Swift入门(二)——字符与字符串

Swift入门系列教程Swift字符Swift入门(一)——基本语法Swift入门(三)——元组(Tuple)定义Swift中的字符,与OC有些不同,每一个字符代表了一个可拓展的字母集,可拓展的字母集...

KT学算法(四)——找数组中出现超过一半的数字的优雅解和拓展

问题描述数组中有一个数字出现次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度一半,因此输出2问题分析...

企业证书重签名发布APP(支持APNS)

针对内部企业或者内测用户,我们希望APP测试完成后能立即在小范围内测用户手中进行体验以及相关功能的验证以及反馈。 为了达到目的,一般我们会自己做一套内部发布系统,既然需要做内测发布,那么首先得有可以...

企业证书重签名发布APP(支持APNS)

针对内部企业或者内测用户,我们希望APP测试完成后能立即在小范围内测用户手中进行体验以及相关功能的验证以及反馈。 为了达到目的,一般我们会自己做一套内部发布系统,既然需要做内测发布,那么首先得有可以...
  • sxfcct
  • sxfcct
  • 2015年09月16日 15:58
  • 1464

iOS之企业级证书发布app

企业发布app的 过程比app store 发布的简单多了,没那么多的要求,哈 但是整个工程的要求还是一样,比如各种像素的icon啊 命名规范啊等等。 下面是具体的流程 1、修改你的 bundl...

IOS学习笔记61--299刀企业证书APP的发布

好,走一贯风格,不罗嗦,直接上干货。 前提:你已经有了299刀的企业证书,以及你的APP已经调测没有一点问题了,咱就开始发布 1.打包APP,看图 兄弟们,打包的最后一图,也是最重要的...

iOS企业证书发布app流程

企业发布app的 过程比app store 发布的简单多了,没那么多的要求,哈 但是整个工程的要求还是一样,比如各种像素的icon啊 命名规范啊等等。 下面是具体的流程 1、修改你的...

用企业版证书,发布in house app

苹果企业版证书,虽然不能上app store,但是可以实现在网页上直接点击下载,而且不需要知道设备的UDID,合理使用的话还是很方便的。昨天用这种方式发布成功了,本文总结一下步骤 首先,在xcode...
  • kyfxbl
  • kyfxbl
  • 2015年02月07日 23:31
  • 1004

iOS 企业证书发布app 流程

企业发布app的 过程比app store 发布的简单多了,没那么多的要求,哈 但是整个工程的要求还是一样,比如各种像素的icon啊 命名规范啊等等。 下面是具体的流程 1、修改你的...

iOS 企业证书发布app 流程

iOS 企业证书发布app 流程  企业发布app的 过程比app store 发布的简单多了,没那么多的要求,哈 但是整个工程的要求还是一样,比如各种像素的icon啊 命名规...
  • hgy2011
  • hgy2011
  • 2013年08月01日 19:35
  • 33787
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:企业证书重签名发布APP(支持APNS)
举报原因:
原因补充:

(最多只允许输入30个字)