iOS動(dòng)態(tài)庫(kù)重簽名步驟

iOS動(dòng)態(tài)庫(kù)重簽名步驟

https://blog.csdn.net/sinat_26415011/article/details/54017733

原因

1.動(dòng)態(tài)庫(kù)的簽名需與項(xiàng)目的簽名一致才可以真機(jī)調(diào)試?

2.動(dòng)態(tài)庫(kù)打包發(fā)布后有發(fā)布證書(shū),必然與我們code時(shí)候的簽名證書(shū)不一樣,因此需要重簽名?

3.若commit的時(shí)候把個(gè)人用的動(dòng)態(tài)庫(kù)一起push到分支上,那么teammate拉了代碼以后將其本地的動(dòng)態(tài)庫(kù)簽名替換成提交者的簽名,與其本地簽名不一致,就會(huì)導(dǎo)致出現(xiàn)該問(wèn)題-fatal error @#$%^&*..問(wèn)題,只需要重簽名一次即可?


dyld:Librarynotloaded: @rpath/XX.framework/XX? Referencedfrom: /var/containers/Bundle/Application/DF33E1CB-0A69-4303-A22A-686E643DE922/iDoctors.app/iDoctors? Reason: no suitable image found.? Did find:/private/var/containers/Bundle/Application/DF33E1CB-0A69-4303-A22A-686E643DE922/iDoctors.app/XX.framework/XX: code signing blocked mmap()of'/private/var/containers/Bundle/Application/DF33E1CB-0A69-4303-A22A-686E643DE922/iDoctors.app/XX.framework/XX'Messagefromdebugger: Terminated duetosignal6

1

2

3

4

5

6

4.keychain中證書(shū)一般是兩個(gè),一個(gè)個(gè)人的開(kāi)發(fā)者證書(shū),另一個(gè)則是在公司的group中的開(kāi)發(fā)證書(shū)。?

5.如果keychain中有其他的過(guò)期或其他原因引起的重復(fù)失效證書(shū),同樣可能會(huì)導(dǎo)致fatal error問(wèn)題。?

6.如果fatal error,最直接的方法就是重簽名?

7.查看動(dòng)態(tài)庫(kù)的簽名證書(shū) codesign -d -vv XX.framework — (在動(dòng)態(tài)庫(kù)所在目錄下的執(zhí)行該命令 ex.Desktop/iDoctors/iDoctors)

步驟:

注意:此方法適開(kāi)發(fā)人員需要使用框架并在真機(jī)上運(yùn)行調(diào)試所開(kāi)發(fā)的app程序。

問(wèn)題: 從App發(fā)布平臺(tái)上下載的XX.framework是使用公司發(fā)布證書(shū)簽名的,在開(kāi)發(fā)人員沒(méi)有安裝發(fā)布證書(shū)的情況下,這個(gè)庫(kù)是不能用于真機(jī)調(diào)試的 (模擬器不檢查庫(kù)簽名所以可以正常使用)。在真機(jī)上運(yùn)行使用原始XX庫(kù)的程序,會(huì)報(bào)如下錯(cuò)誤?

dyld: Library not loaded: @rpath/XX.framework/XX?

Referenced from: /var/containers/Bundle/Application/DADE6BDC-C7F6-4155-AA57-6C4CA6598BAB/HelloWorld.app/HelloWorld?

Reason: no suitable image found. Did find:?

/private/var/containers/Bundle/Application/DADE6BDC-C7F6-4155-AA57-6C4CA6598BAB/HelloWorld.app/XX.framework/XX: mmap() errno=1 validating first page of ‘/private/var/containers/Bundle/Application/DADE6BDC-C7F6-4155-AA57-6C4CA6598BAB/HelloWorld.app/XX.framework/XX’?

第一步:刪除原有XX.framework母包的簽名信息

刪除_CodeSignature目錄?

刪除前?


刪除后?

第二步:用個(gè)人開(kāi)發(fā)證書(shū)重簽名

列出電腦上可用的簽名。打開(kāi)Mac終端,輸入?

/usr/bin/security find-identity -v -p codesigning?

根據(jù)使用XX的App所使用的簽名,對(duì)XX.framework重簽名。終端輸入?

codesign -fs “iPhone Developer: xxxx (XXXX)” XX.framework

重簽名后的XX即可用于開(kāi)發(fā)人員真機(jī)調(diào)試了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容