這篇文章以目標(biāo)為:
實(shí)現(xiàn)安裝兩個(gè)app,也就是修改info.plist中的Bundle identifier
對(duì)app重簽名推薦使用iOS_resign_scripts鳍怨,下載下來(lái)之后會(huì)有三個(gè)命令臣咖,對(duì)應(yīng)不同的場(chǎng)景跨琳,接下里以第一個(gè)為例近顷。
1.準(zhǔn)備材料
開(kāi)始之前需要準(zhǔn)備:
有效的證書(shū)(可以在鑰匙串中查找)
-
mobileprovision 文件诈唬,可以在xcode中找一個(gè)有效的韩脏,
右鍵show in finder
,將文件復(fù)制出來(lái)铸磅,重命名為embedded.mobileprovision
赡矢,備用
-
ipa包
ipa包可以通過(guò)itunes下載,下載之后在這個(gè)路徑下
脫殼的二進(jìn)制文件阅仔,
decrypted
文件吹散,ipa脫殼看這里,脫殼得到的是一個(gè).decrypted
的文件八酒,需要去掉后綴空民。
現(xiàn)在我們已經(jīng)得到了所有想要的東西。
如果你的二進(jìn)制文件看起來(lái)跟我的不一樣羞迷?沒(méi)關(guān)系界轩,只是權(quán)限問(wèn)題画饥,想改的話可以試試用修改下權(quán)限
chmod 777 WeChat
2.開(kāi)始修改內(nèi)容并重簽名
既然想要安裝兩個(gè)同樣的app,那就修改Bundle identifier浊猾,接下來(lái)的步驟就沒(méi)什么好說(shuō)的了
解壓ipa -> 找到APP文件荒澡,右鍵顯示包內(nèi)容 -> 找到info.plist文件 -> 修改Bundle identifier
再將脫殼的二進(jìn)制文件復(fù)制進(jìn)來(lái),替換原來(lái)的二進(jìn)制文件与殃。修改工作就做好了单山,可以簽名了!
接下來(lái)用iOS_resign_scripts 進(jìn)行重新簽名幅疼。
$ ios_resign_from_app_to_ipa app-extracted $Developer_code_sign $mobileprovision $target_ipa_related_path
app-extracted 是個(gè)文件夾米奸,可以直接把解壓的到的文件夾重命名成app-extracted
$ ls app-extracted
META-INF Payload iTunesArtwork iTunesMetadata.plist
簽名完成之后會(huì)得到一個(gè)ipa文件,這個(gè)就是破解重簽名的ipa了爽篷,可以用itools等工具進(jìn)行安裝測(cè)試悴晰。
這里會(huì)有一個(gè)問(wèn)題,如果app中包含了擴(kuò)展之類的東西就需要注意了逐工,每個(gè)插件包里都會(huì)有一個(gè)info.plist文件铡溪,里面的Bundle identifier
也需要做相應(yīng)的修改,不然后導(dǎo)致安裝失敗泪喊。
另外即使改了所有相關(guān)的Bundle identifier
棕硫,還需要對(duì)擴(kuò)展插件進(jìn)行砸殼才行。所以為了方便袒啼,我就把所有插件相關(guān)的東西都刪了哈扮!
再次打包重簽名,安裝測(cè)試蚓再。終于可以了滑肉!