這篇文章將為大家詳細(xì)講解有關(guān)如何在iOS中實(shí)現(xiàn)一個(gè)ipa重簽名功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
景德鎮(zhèn)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
一、重簽名準(zhǔn)備工作:
?找到開(kāi)發(fā)者證書(shū)和配置文件:
列出所有開(kāi)發(fā)者證書(shū)文件:
security find-identity -p codesigning -v
?找一個(gè)開(kāi)發(fā)環(huán)境配置文件生成entitlements.plist文件,后面簽名要用到:
security cms -D -i XX.mobileprovision > profile.plist /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist cat entitlements.plist
?把準(zhǔn)備好的開(kāi)發(fā)環(huán)境配置文件復(fù)制到XX.app文件夾下:
cp XX.mobileprovision Payload/XX.app/embedded.mobileprovision
?修改包Info.plist中的Bundle Identifier與配置文件中的Bundle Identifier保持一致:
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.XX.XX" Payload/XX.app/Info.plist
?移除之前的簽名文件夾:
rm -rf Payload/XX.app/_CodeSignature
二、iOS重簽名:
?重簽名framework:
/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist /Payload/XX.app/Frameworks/JSONModel.framework
?重簽名app執(zhí)行文件:
/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist Payload/XX.app/XX
?查看app簽名信息:
codesign -vv -d Payload/XX.app
注意:重簽名有順序,先把framework和dylib簽名,最后再簽名:XX.app/XX,順序弄錯(cuò)了,就算簽名成功也可能會(huì)安裝失敗!
三、調(diào)試和打包:
?ios-deploy 安裝與調(diào)試:
ios-deploy -d -b Payload/XX.app
出現(xiàn)如下success字樣,就證明成功了!
過(guò)程中如果遇到錯(cuò)誤提示:“Error 0xe8000067: There was an internal API error. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)”
錯(cuò)誤原因:可能存在有framework或者dylib未簽名的情況。
解決方案:把a(bǔ)pp文件夾下面的framework全部簽名。
?打包(package):
zip -qry ppdest.ipa Payload rm -rf Payload/
關(guān)于如何在iOS中實(shí)現(xiàn)一個(gè)ipa重簽名功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。