ipa使用企业账号重签名并支持推送
2015-04-07 22:30
513 查看
Apple对APP的严格管理,导致我们TM案子iOS app们如果在app store上上线面临很大的技术问题。和CP的协调以及商务上的折衷后,打算用企业签名的方案,为嵌入我们sdk的app们建立一个专门的下载渠道。
假设要重新签名的应用为iCPApp.ipa, bundleid为iCPApp,包名为cn.186.iCPApp。这个时候我们要用自己的企业账号为这个ipa重新进行一次签名,同时还要能够支持消息推送服务。如下步骤:
1. 在自己的企业账号里建立一个APP IDs,假设为com.cnc.iCPAppTMD
2. 创建一个Certificates,勾选Apple Push Notification service SSL, 然后选择刚才创建的APP IDs (com.cnc.iCPAppTMD)
3.创建一个Distribution Provisioning Profiles, 使用com.cnc.iCPAppTMD包名,这样这个distribution provisioning 才能够支持消息推送, 并下载,保存做iCPAppTMD.mobileprovision。
接下来就是进行重新签名了,
1. 将ipa改名zip,并解压缩
#mv iCPApp.ipa iCPApp.zip
#unzip iCPApp.ipa
2. 删除_CodeSignature 文件
#rm -R Payload/iCPApp.app/_CodeSignature
3.用iCPAppTMD.mobileprovision覆盖embedded.mobileprovision
#cp iCPAppTMD.mobileprovision Payload/iCPApp.app/embedded.mobileprovision
4.编辑Entitlements.plist 文件,注意:一开始我也没有设置这个文件,签名可以,但是推送依然不成功。下面标记红色的地方可以cat iCPApp TMD.mobileprovision 文件得到。
<!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>XXXXXXXXXX.com.cnc.iCPAppTMD</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>XXXXXXXXXX.*</string>
</array>
</dict>
</plist>
5. 重新签名,下文标示红色为iCPAppTMD.mobileprovision对应的Certificates
/usr/bin/codesign -f -s "iPhone Distribution: XXXXX Science & Technology Co., Ltd." --entitlements Entitlements.plist --resource-rules Payload/iCPApp.app/ResourceRules.plist
Payload/iCPApp.app
Q&A:
1. 如果提示找不到resource file, 则可以从iPhoneOS SDK目录中拷贝ResourceRules.plist文件到iCPApp.app中
Ref:
http://www.cocoachina.com/bbs/read.php?tid-282106.html
假设要重新签名的应用为iCPApp.ipa, bundleid为iCPApp,包名为cn.186.iCPApp。这个时候我们要用自己的企业账号为这个ipa重新进行一次签名,同时还要能够支持消息推送服务。如下步骤:
1. 在自己的企业账号里建立一个APP IDs,假设为com.cnc.iCPAppTMD
2. 创建一个Certificates,勾选Apple Push Notification service SSL, 然后选择刚才创建的APP IDs (com.cnc.iCPAppTMD)
3.创建一个Distribution Provisioning Profiles, 使用com.cnc.iCPAppTMD包名,这样这个distribution provisioning 才能够支持消息推送, 并下载,保存做iCPAppTMD.mobileprovision。
接下来就是进行重新签名了,
1. 将ipa改名zip,并解压缩
#mv iCPApp.ipa iCPApp.zip
#unzip iCPApp.ipa
2. 删除_CodeSignature 文件
#rm -R Payload/iCPApp.app/_CodeSignature
3.用iCPAppTMD.mobileprovision覆盖embedded.mobileprovision
#cp iCPAppTMD.mobileprovision Payload/iCPApp.app/embedded.mobileprovision
4.编辑Entitlements.plist 文件,注意:一开始我也没有设置这个文件,签名可以,但是推送依然不成功。下面标记红色的地方可以cat iCPApp TMD.mobileprovision 文件得到。
<!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>XXXXXXXXXX.com.cnc.iCPAppTMD</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>XXXXXXXXXX.*</string>
</array>
</dict>
</plist>
5. 重新签名,下文标示红色为iCPAppTMD.mobileprovision对应的Certificates
/usr/bin/codesign -f -s "iPhone Distribution: XXXXX Science & Technology Co., Ltd." --entitlements Entitlements.plist --resource-rules Payload/iCPApp.app/ResourceRules.plist
Payload/iCPApp.app
Q&A:
1. 如果提示找不到resource file, 则可以从iPhoneOS SDK目录中拷贝ResourceRules.plist文件到iCPApp.app中
Ref:
http://www.cocoachina.com/bbs/read.php?tid-282106.html
相关文章推荐
- ASP.NET企业开发框架IsLine FrameWork系列之十二--使用Session、Cookie与安全支持
- 企业账号的消息推送(证书整理)
- 一行代码不用敲,15分钟轻松搞定GIS开发,GISer福音,教你如何从下载到使用webappbuilder创建第一个应用程序(不用申请有使用期限的企业账号哦!)
- 企业证书重签名发布APP(支持APNS)
- iOS企业帐号对ipa重新签名流程
- 签名反对日本成常任理事国网站集(另附支持日本歪曲历史教科书编撰的日本企业名单)
- iOS 企业账号申请证书和打包ipa
- 开发者账号和.ipa文件重新签名
- [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
- 企业证书重签名发布APP(支持APNS)
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本) .
- XE7 & IOS开发之开发账号(3):证书、AppID、设备、授权profile的申请使用,附Debug真机调试、Ad hoc下iPA文件生成演示(XCode5或以上版本推荐,有图有真相)
- XE7 & IOS开发之开发账号(2):发布证书、发布授权profile的申请使用,附Ad hoc真机调试、生成ipa文件演示(XCode所有版本通用,有图有真相)
- 如何使用Shell脚本编译生成Archive文件并导出签名IPA文件。
- 织梦注册企业与个人账号分别使用不同模板
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)
- ios企业账号in-house分发ipa的步骤
- 小胖说事21------如何利用开发者账号重签ipa文件,并部署到IOS设备做测试(ipa重新签名)
- 【IOS 开发】企业账号将.ipa包放置网页供用户下载的实现方式 —— 伊禾媛