關於缺少文件、文件無效之類的錯誤,看錯誤日志可以很輕易的定位,所以本文就不再討論。本文主要介紹的是證書配置問題的排查步驟。
最近需要上傳一個更新版本,總是上傳不成功。下面寫一下在碰到問題時的排查步驟。
在碰到問題時總是第一反應,“我沒做過啥啊”,這主觀思想導致了排查問題更加困難。
上傳之後出現如圖錯誤,”error itms-9000 the bundle at bundle path is not signed using an apple submission certificate”
由於最近某些原因,我將keychain給重置了一下,當時申請的CertificateSigningRequest.certSigningRequest文件也已失效,再看錯誤日志,我懷疑是證書的問題。
隨後將所有的證書重新搞了一遍。問題依然存在。
接著用繼續排查,用release證書打包出來一個.app,舉例如AppName.app
然後用命令行來檢測證書
<span class="pln">$codesign </span><span class="pun">-</span><span class="pln">vvvv </span><span class="typ">AppName</span><span class="pun">.</span><span class="pln">app </span><span class="typ">AppName</span><span class="pun">.</span><span class="pln">app</span><span class="pun">:</span><span class="pln"> CSSMERR_TP_NOT_TRUSTED</span>
OK,終於找到了明確的錯誤代碼了。google了一下發現是因為缺少了“Apple Woldwide Developer Relations Certification Authority”這個證書導致。
接著查看keychain,發現證書存在。只不過由於我之前折騰的時候把證書信任權限給改了,接著就出現了問題。
將“使用此證書”改回“使用系統默認”
再次編譯,檢測一下證書
<span class="pln">$codesign </span><span class="pun">-</span><span class="pln">vvvv </span><span class="typ">AppName</span><span class="pun">.</span><span class="pln">app </span><span class="typ">AppName</span><span class="pun">.</span><span class="pln">app</span><span class="pun">:</span><span class="pln"> valid on disk </span><span class="typ">AppName</span><span class="pun">.</span><span class="pln">app</span><span class="pun">:</span><span class="pln"> satisfies its </span><span class="typ">Designated</span> <span class="typ">Requirement</span>
OK,問題解除。