本文主要参考自http://www.jianshu.com/p/bfd4abd78f21,感谢作者dimsky.原文不太详细,初学者不容易操作成功.
最终结果:修改微信运动的自己的step.
一. 所需条件和软件
1.你是一名iOS开发者,并且有付费的开发者账号.
2.安装PP助手
3.安装Hopper Disassembler
二. 步骤
1.在苹果开发者中心创建Certificates,Identifiers和Profiles.具体步骤参考http://www.jianshu.com/p/44453886b5f9.
如果成功创建,下载后会得到这些东西.前面两个文件是证书,双击可以安装,安装后你的电脑就有了真机调试和发布APP的能力.后面两个文件是调试和发布的描述文件.
2.使用PP助手下载越狱版的微信,将下载下来的ipa文件后缀改为zip,解压,找到下图中的app文件:
右键显示包内容:找到名为WeChat文件,拖进Hopper Disassembler中进行反编译.因为微信比较大反编译时间可能会很长.完成之后在左侧会有一系列方法,搜索m7,找到如图所示方法:
把光标放在[WCDevicesStepObject m7StepCount] 的第一行汇编代码上,然后选择菜单栏的Modify -> Assemble Instruction,并在弹出的文本框里输入如下图所示指令
修改完成,Shift+command+E 生成新的二进制文件WeChat.
3.将第一步得到的发布描述文件(如下图)复制一份并改名为embedded.mobileprovision
把embedded.mobileprovision 和修改后的WeChat二进制文件拷贝至WeChat.app中替换。接下来使用Xcode新建一个项目,创建plist文件,取名为Entitlements.plist.然后右键选择Source Code.
将下面代码覆盖掉原先plist文件的代码,截图的,去http://www.jianshu.com/p/bfd4abd78f21里复制😆
然后将ABCDEFGHIB.dimsky.MyTest1改为你的distribution证书的Team-id+Bundle Identifier,格式是Team-id.Bundle Identifier.中间有一串ABCDEFGHIB,也要替换成Team-id.不知道Team-id可以在钥匙串中查看,Bundle Identifier是你在开发者中心和distribution证书对应的App ID.改完之后把Entitlements.plist拖进app右键显示包内容的Payload文件夹中.
4.重新签名
接下来我们把WeChat.app 重新签名,
codesign -f -s 证书名字 目标文件
下面是需要重新签名的文件,证书名字在钥匙串中可以找到,注意在这一步需要前面创建的 Entitlements.plist 文件。
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" WeChat.app/Watch/WeChatWatchNative.app/PlugIns/WeChatWatchNativeExtension.appex
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" WeChat.app/Watch/WeChatWatchNative.app
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" WeChat.app/PlugIns/WeChatShareExtensionNew.appex
codesign -f -s "iPhone Developer: Tian Xiao (XXXXXXXX)" --entitlements Entitlements.plist WeChat.app
打包生成ipa
xcrun -sdk iphoneos PackageApplication -v WeChat.app -o ~/WeChat.ipa
然后就可以通过PP助手安装了。