美文网首页逆向工程
iOS打包后重新签名(亲测:可以安装到手机上)

iOS打包后重新签名(亲测:可以安装到手机上)

作者: 永远都能 | 来源:发表于2016-05-23 15:09 被阅读6619次

http://dantheman827.github.io/ios-app-signer/
------------------以下作废,请下载并使用上面的工具------------------
先用fir随便搞个id和profile打包··
然后重新签名:http://www.jianshu.com/p/441f19fbdc5c
遇到的一个问题:——resource-rules已弃用mac os x > = 10.10
解决问题链接:http://stackoverflow.com/questions/26459911/resource-rules-has-been-deprecated-in-mac-os-x-10-10

http://www.objccn.io/issue-17-2/

----->发现上面的不太好用。可以采用下面的方式:
1.(随便填个id、取消账号、profile选auto)Archive --> 右键生成的Archive文件 --> Show in Finder --> 右键xxx.xcarchive文件 --> 显示包内容 --> 找到真正的xxx.app --> 拖到 itunes中,成成ipa --> 右键,在Finder中显示。

2.将得到的ipa解压
--step1:unzip ipa_path -d (解压后的目录)

--step2:rm -rf YooYoYZL.app/_CodeSignature/ 移除里面的签名文件

--step3:cp (你要签名的mobileprovision路径) 当前.app里面的mobileprovision路径

--step4:/usr/bin/codesign -f -s "发布证书名称" --entitlements entitlements.plist路径 当前的.app路径
//如果提示找不到,则需要另外创建一份entitlements.plist路径
//创建方法:
$security cms -D -i 你要签名的mobileprovision路径 > t_entitlements_full.plist
$/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' t_entitlements_full.plist > t_entitlements.plist
//最终得到t_entitlements.plist 即是需要的plist

//注意:1.如果需要修改identifier的 则进入.app里面的info.plist找到bundleId进行修改
// 2.要id和profile文件里面的id一致,发布证书和profile匹配才是真正的成功.不然提示安装失败。

--step5:提示成功替换后则手动压缩Payload成zip ,然后改为ipa即是最终版本
//在此之前可以执行命令查看是否重签成功:
1:codesign -d --entitlements - Example.app
2:$ security cms -D -i example.mobileprovision
3:codesign -vv -d example.app路径

第三个可以查看id和证书,比较常用,有任何问题的朋友可以留言·。

亲测可以安装到手机上。

相关文章

网友评论

  • 铃兰_900f:安装上面的操作后,还是无法安装。
    永远都能:可能过时了,上面那个工具下载试试。
  • 44ef0dbe9e5a:重签后原Info.plist里面的BundleId跟embedded.mobileprovision文件里的不同,能安装的上?
  • 44ef0dbe9e5a:不改bundle id,info.plist跟profile的id不同,能安装成功?
  • SuperRoot:首先谢谢你的分享,这是我试验的结果给你补充一下:
    从商城下载的ipa,个人的开发者账号,用软件做的重签名
    未破壳的:重签名后,只能安装在已越狱的设备上,但点开后闪退
    已破壳的:重签名后,只能安装在已越狱的设备上,点开后完美运行
    50854e47a81c:我也遇到和你一样的结果 请问你后来是怎么让他们破壳的
    SuperRoot:重签名后两个文件的bundle ID也都换了,越狱设备上可以安装两个同款APP
  • 0271fb6f797c:.app里mobileprovision文件找不到,怎么解决
    永远都能:@dong136279559 直接用那个软件,不要用命令行了。
    0271fb6f797c:@永远都能 没有,就是按着下面的步骤来的
    永远都能:@dong136279559 有没有用那个软件进行签名?
  • 5c2ad94c9daf:App Store下载的ipa可以重签名吗 楼主,如果用你的这篇文章操作的话?
    5c2ad94c9daf:@永远都能 是不是必须先破壳再重签名啊
    永远都能:@zzy0129 bu cheng`
  • MarkJY:你好,我安装上了,但是打开就闪退,可以大概知道什么问题吗?我证书是用的开发证书,bundle ID直接在info.plist改了的,看了重签后的证书和bundle ID都是一样的
    永远都能:@Mark魚 直接用那个工具
  • bb4e58df981a:楼主,您好,mac10.10以后只能使用你介绍那个的工具了是吗
    永远都能:@硪想这辈子都牵着尔走a 是的
  • pingerbufan:Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
    这个怎么破呢????
    永远都能:@平而不凡 最上面有个签名工具
  • 大大的无敌:——resource-rules已弃用mac os x > = 10.10 Payload/: cannot read resources 怎么破
  • 春田花花幼儿园:...大厂的. app没有mobileprovision,那就没啥意义了
  • dacc78ce2429:按照步骤做了 最后codesign -vv -d出来的是pokemongo.app: no signature
    Info.plist=not bound
    TeamIdentifier=not set 不知道哪里出问题了
    永远都能:@JaHov 加我QQ 1003580893
    dacc78ce2429:@永远都能 下面的 t_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&quot;>
    <plist version="1.0">
    <dict>
    <key>application-identifier</key>
    <string>RX7RSHY5KQ.com.nianticlabs.pokemongoo</string>
    <key>com.apple.developer.team-identifier</key>
    <string>RX7RSHY5KQ</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
    <string>RX7RSHY5KQ.*</string>
    </array>
    </dict>
    </plist>
    永远都能:@JaHov 是按照上面的还是下面的呢?重新来试试看
  • 7d754cdff2a4:$security cms 命令通不过,正确的写法是?
    7d754cdff2a4:@永远都能 貌似打包成功了。
    永远都能:@bennet 打包成功了吗?
    7d754cdff2a4:@bennet 提示:-bash: cms: command not found
    谢谢分享。刚好遇到这问题。stackflow 里的解决不了。ipa是人家给的,暂时不能重现设置xcode,重新打包
  • 6c677bdf405d:似乎.app里没有mobileprovision了,还是我理解错了
    6c677bdf405d:@永远都能 我用adhoc的mobileprovision进行的替换,可以安装,但是打开就崩,这是为啥
    6c677bdf405d:@永远都能 原来如此,也就是说重新签名,只适用于不是AppStore上下载的ipa包,对吧
    永远都能:@啊哈哈星人 有的。从APPSTORE下载的没有。自己归档的有。
  • Fang_OSH:先收藏着
    永远都能:@策云曦昱iOS_Swift 谢谢

本文标题:iOS打包后重新签名(亲测:可以安装到手机上)

本文链接:https://www.haomeiwen.com/subject/tdrvrttx.html