問題場景
外包公司開發(fā)并提供了ipa文件撑蚌,證書簽名用的是他們公司自己的(證書和描述文件都是上遥,bundle id用的是我們指定的id),然后我們公司用自己的發(fā)布證書重新簽名并提交appstore
步驟和遇到的問題
1争涌、在自己的電腦上安裝發(fā)布證書(這里不介紹粉楚,需要的請自行百度),安裝后在鑰匙串訪問-登錄-我的證書下面會看到這個證書亮垫,類似 iPhone Distribution:xxxxxxx(xxxxxx) 模软,選中后查看簡介,設(shè)置信任為使用系統(tǒng)默認(rèn)饮潦,注意不要設(shè)置為始終信任燃异,若設(shè)置為始終信任,在使用重簽名命令時會提示錯誤(后面會介紹這個錯誤)
2害晦、安裝homebrew(已經(jīng)安裝的請略過這步)特铝,命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3、安裝sigh壹瘟,命令:
sudo gem install sigh
4鲫剿、準(zhǔn)備好需要重新簽名的ipa(外包公司提供的那個ipa包)
5、準(zhǔn)備好描述文件embedd.mobileprovision,問題來了稻轨,去哪里弄到這embedd.mobileprovision文件呢灵莲?不能用外包公司提供的ipa里面的那個embedded.mobileprovison,而要用自己生成的殴俱。自己用Xcode新建一個工程政冻,指定bundle id枚抵、發(fā)布證書,描述文件等信息明场,然后archive汽摹,查看生成的ipa包里面的那個embedd.mobileprovision,就是我們要的描述文件
6、把需要重簽名的ipa包和embbedd.mobileprovison放在同一個目錄下面苦锨,然后cd這個目錄逼泣,執(zhí)行sigh resign,它會先顯示Available identities:(你電腦上當(dāng)前安裝的開發(fā)證書舟舒、發(fā)布證書等證書信息,若為空拉庶,可能是你的證書安裝有問題),然后要求你輸入Signing Identity:你輸入發(fā)布證書對應(yīng)的那個16進(jìn)制字符串秃励,回車即可氏仗。當(dāng)出現(xiàn)Successfully signed 路徑/xxx.ipa!時,原來文件夾中的.ipa已經(jīng)被重簽名了夺鲜。
7皆尔、第6步可能會出現(xiàn)的問題,
(1)Warning: unable to build chain to self-signed root for signer
解決辦法:將鑰匙串訪問-登錄-我的證書下面的發(fā)布證書谣旁,從始終信任改為使用系統(tǒng)默認(rèn)(若發(fā)現(xiàn)修改成使用系統(tǒng)默認(rèn)后顯示紅色床佳,請更新蘋果根證書);也有一種說法榄审,要將鑰匙串訪問-系統(tǒng)-證書下面的Apple Worldwide Developer Relations Certification Authority刪除后重新安裝新版本的(https://www.apple.com/certificateauthority/)
參考文章:
ipa重簽名最直接的教程