一台 iPhone 上同时挂两个微信,这事我折腾过好几轮。工作号和生活号分不开,消息全堆在一起,后来干脆用本地自签做了个副号。这篇就按我自己的操作顺序,把 ESign 这类本地签名工具从导入 IPA 到改 Bundle ID、注入插件的流程写一遍,顺带把踩过的坑讲清楚。
先说个前提:这里讲的是本机签名安装,证书和 IPA 都不出设备,跟网页代签不是一回事。适合 iOS 16 以上、手里有可用证书、能接受"过一阵要重签"的人。
多开这件事,本质就是换个 Bundle ID
iOS 判断两个 App 是不是同一个,看的不是名字和图标,是 Bundle ID。原版微信用的是 com.tencent.xin,你把副号的改成 com.tencent.xin2 或者 com.tencent.xin.foo,系统就把它当成一个全新的 App,两个可以同时装在桌面上。名字和图标随便换,那只是给人看的。
插件注入是另一条线。dylib 这类动态库被写进 App 的加载列表,启动时跟着一起跑,功能就挂上去了。这两件事可以分开做,也可以一起做,本地签名工具的好处是同一个流程里能一次搞定。
准备条件
- 一台 iPhone 或 iPad,系统版本别太新也别太老
- 一个本地签名工具,我习惯用 ESign(易能签),同类工具逻辑差不多
- 一份有效证书:免费开发者证书、企业证书,或者自己买的个人开发者账号
- 微信的 IPA 安装包,以及你要注入的 dylib 或 deb 插件
- 开发者模式,这个下面单独说
导入 IPA 和改 Bundle ID
- 把 IPA 传进手机,用签名工具打开,导入后会生成一个项目工作区。这一步是本地解包,不会上传任何东西。
- 进项目工作区,先改 Bundle ID。原值一般是
com.tencent.xin,按反域名结构往后加就行,比如com.tencent.xin2。别换成完全不相干的一串,尤其别带连字符或中文,签名校验那步容易报错。 - 顺手改应用名称和图标。名字建议带上"工作""副号"这类字,不然桌面两个一样的微信图标,你自己都会点错。
- 展开包内容看一眼,微信里有分享扩展之类的 PlugIns。这些扩展的 Bundle ID 通常是主 App 的 ID 加后缀,你改了主 App 之后它们不会自动跟着变,得手动同步。不然分享菜单里可能不出现副号,或者一点分享直接崩。
- 确认没问题再进签名,别改一半就急着打包。
插件注入:dylib 和 deb 其实是一回事
大多数微信插件发布出来是 deb 格式,但真正能注入到 IPA 里的是里面的 dylib。如果你手上只有 deb,先解包拆开,找到 .dylib 再注入。
签名工具里一般有"注入插件"或类似入口,把 dylib 加进去,签名时会一起签。几个注意点:
- 插件架构要跟 App 一致,现在基本都是 arm64
- 一次别塞太多插件,功能冲突是闪退的头号原因
- 插件版本要和微信版本对得上,微信大版本更新后,老插件十有八九会崩
- 只注入你知道来源的插件,这类插件权限很高,能读到的东西比你想的多
开发者模式和证书确认
iOS 16 之后,侧载的 App 需要开发者模式才肯跑。路径是设置 → 隐私与安全性 → 开发者模式,打开后设备会重启一次,重启后要再确认一遍。这个开关在没连过 Xcode 的设备上可能是隐藏的,装完第一个自签 App 或者重启一次之后通常就出现了。
证书这块,签名前先确认两件事:证书本身有没有过期,以及你这台设备的 UDID 在不在描述文件里。装完之后去设置 → 通用 → VPN 与设备管理,应该能看到对应的描述文件。如果那里是空的,说明证书压根没装上,App 打不开是必然的。
第一次打开副号会弹"不受信任的开发者",去上面那个页面点信任就行。
装完之后:通知、闪退、掉签
通知是最容易被忽略的一块。副号装上之后,推送不会自动跟过来。先在设置里给副号开通知权限,再检查后台 App 刷新有没有开,低电量模式也会压推送。另外副号的通知横幅如果跟原版长得一模一样,去通知设置里单独改一下,不然分不清哪个号来消息了。
闪退的排查我一般这么走:先把注入的 dylib 全部去掉重新签一次,能开就是插件不兼容;再看 Bundle ID 有没有跟已装的 App 撞;最后才怀疑证书。签名阶段直接报错的话,多半是扩展的 Bundle ID 没同步。
掉签就是证书被吊销,企业证书掉得尤其快,免费开发者证书是七天一签。这里有个细节:重签的时候保持 Bundle ID 不变,可以直接覆盖安装,聊天记录还在;Bundle ID 改了就是新 App,数据从头来。
几种证书怎么选
| 方式 | 有效期 | 稳定性 | 通知能力 | 成本 | 适合谁 |
|---|---|---|---|---|---|
| 免费开发者证书 | 7 天 | 一般,要定期重签 | 正常 | 免费 | 先试试水 |
| 企业证书 | 不确定,可能随时掉 | 看证书状态 | 正常 | 通常要付费 | 不想频繁重签 |
| 个人开发者账号 | 1 年 | 较稳 | 正常 | 99 美元/年 | 长期自用 |
表格里那个"不确定"不是敷衍,企业证书掉不掉真不看你,看证书方。所以重要的账号别只挂在一份企业证书上。
几句实话
微信多开和插件注入都踩在账号协议边上,主号最好别动,副号也别放太要紧的东西。插件能读到的数据远超一般 App,来源不明的别装。还有,聊天记录定期备份,不管是本机还是电脑端,掉签重装那一下是真的会丢东西。
想省事,就先从免费证书加一两个插件开始,跑顺了再考虑长期方案。
