szrambo
(szrambo)
2016 年2 月 1 日 02:22
1
受阿凹机器人的启发,也想倒腾下微信机器人
目前砸壳,classdump,theos那套已经跑通了,现在卡在部署到非越狱环境上,现有的resign脚本不支持extension,微信这种带多targets的签名不成功。我现在手动重签名的步骤是这样的:
解压App Store版本ipa
分别生成3个targets的entitlements.plist codesign -d --entitlements :- OUTPUT_FOLDER/Payload/APP_NAME.app > APP_NAME_ENTITLEMENT.plist
更换bundle id
更换provision,cp AD_HOC_PROVISIONING_FILE.mobileprovision OUTPUT_FOLDER/Payload/APP_NAME.app/embedded.mobileprovision
分别对3个target签名codesign -f -s "CERTIFICATE_NAME_IN_KEYCHAIN" --entitlements EXTENSION_NAME_ENTITLEMENT.plist OUTPUT_FOLDER/Payload/APP_NAME.app/PlugIns/EXTENSION_NAME.appex
重新压缩生成ipa
但是这样安装不上去,想请教下,关于微信这种带多targets的如何进行重签名?
3 个赞
szrambo
(szrambo)
2016 年2 月 2 日 02:39
2
问题已经解决,是因为没有把多个targets的bundle id都替换成新的。现在顺利重签名并跑在非越狱环境。
步骤中漏了一点,先砸壳,替换二进制执行文件。
avsama
(avsama)
2016 年2 月 20 日 02:16
6
请问楼主,重签的只能是企业证书吗?个人证书我试了下,签完能安装,打开闪退,求教
问下LZ用什么砸壳的,我用 clutch 提示 com.tencent.xin contains watchOS 2 compatible application. It’s not possible to dump watchOS 2 apps with Clutch 2.0.1 at this moment. 谢谢。
scholar0
(scholar)
2016 年2 月 26 日 08:38
8
楼主这一步
更换provision,cp AD_HOC_PROVISIONING_FILE.mobileprovision OUTPUT_FOLDER/Payload/APP_NAME.app/embedded.mobileprovision
是需要把mobileprovision文件放到3个target文件夹,还是只需要放到.app文件夹一个就可以了
scholar0
(scholar)
2016 年2 月 27 日 06:43
12
楼主我按照你说的 还是失败,我认为主要失败还是第三步更换bundleid这里,可否详细说一下
scholar0
(scholar)
2016 年2 月 27 日 06:46
13
我现在尝试签名别的APP都可以,但是微信始终不成功.望楼主点播
wani828
(豆腐脑的忧伤)
2016 年3 月 1 日 01:51
15
能不能共享下你的目录给我们学习 一下啊~ 我最近也在学习这个… 一直都不行~
chensh
(chensh)
2016 年3 月 1 日 07:50
17
贴主你好:
想请教你一下步骤里面不太明白的地方:
① 更换bundle id 这一步,是如何更换的?
是把 生成好的 entitlement.plist文件里面的bundle id更换为自己企业证书对应的bundle identifier?
还是说把WeChat.app包里面所有的info.plist文件里面的 bundle id 更改为自己企业证书对应的 bundle identifier?
有出现过微信bundle id 的文件有:
/Payload/Entitlements_for_appstore.plist
/Payload/Entitlements_for_jailbreak.plist
/Payload/Entitlements_wc.plist
/Payload/Info.plist
/Payload/MicroMessenger-Info_for_appstore.plist
/Payload/MicroMessenger-Info_wc.plist
/Payload/WeChat.app/Watch/WeChatWatchNative.app/info.plist
/Payload/WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex
/Payload/WeChat.app/PlugIns/WeChatShareExtensionNew.appex/info.plist
/Payload/WeChat.app/PlugIns/WeChatShareExtensionNew.appex/info_wc.plist
② 另外第五步对3个target重签名 ,是否为以下三个target:
/Payload/WeChat.app
./Payload/WeChat.app/Watch/WeChatWatchNative.app
./Payload/WeChat.app/PlugIns/WeChatShareExtensionNew.appex
那在watch里面的pluIns用不用也重签名:
./Payload/WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex
Dylan
(Dylan)
2016 年3 月 2 日 15:22
18
求教,这个entitlements.plist应该怎么写呢?
Zhang
2016 年3 月 2 日 15:52
19
info都改。包含ext的。
应该
entitlement同样要改,这点适用于所有的可执行文件
chensh
(chensh)
2016 年3 月 3 日 01:35
22
我尝试了一直失败,不知道哪个步骤错了。
你有成功过吗?
证书是用个人的还是企业的? Provisioning Profile 是用发布的还是开发的?