證書過期導致的0xe8008016/0xE8008018與no identity found錯誤問題

下午打開手機上的測試App發現一打開就閃退,在Xcode中看Device Log顯示下面的錯誤:

app.app/app not valid: 0xe8008016: The executable was signed with invalid entitlements.

之前都好好的,一看就是證書出了問題,聯想到之前剛剛給開發者賬號續過費,猜測是證書過期了。

去鑰匙串里一看,果然是證書過期了。于是去開發者中心重新生成了證書,下載安裝。同時重新下載了對應的mobileprovision文件并安裝。

不知道為什么再運行的時候出現了一個下面的錯誤:

The identity used to sign the executable is no longer valid.
Please verify that your device’s clock is properly set, and that your signing certificate is not expired. (0xE8008018).

先是檢查了一下 General中的Team發現信息不對改成了正確的,然后在Build Setting中更新了Code Sign Identity設置和Provisioning Profile設置。

然后倒好,編譯時就直接出錯,提示no identity found。

這就頭痛了,證書明明已經更新為最新了,然后是Provisioning Profile的問題?根據更新xcode6 運行報錯 Command /usr/bin/codesign failed with exit code 1這篇文章的說法,我以為是Provisioning Profile過期的問題,因為這個app的profile更新過很多次,有的的確過期了,而且生成了很多同名的mobileprovision文件。

在“iphone配置使用工具”中,確實能找到同名的profile,把舊的同名profile文件都刪掉,只保留掉最新的,編譯也還是報錯。——原文里沒說怎么在“iphone配置使用工具”中刪除profile文件,剛開始找不到刪掉的辦法,強行打開~/Library/MobileDevice/Provisioning Profiles文件夾刪掉,后來還是找到了方法,是按Backspace鍵來刪除profile文件。

試過重啟Xcode,Clean所有Build,依然不能解決。

突然就想,原來的證書過期了,對應的Provisioning Profile是不是要重新生成才行?在開發者中心里刪掉舊的profile文件再重新生成,指定新的證書,下載安裝后測試果然就可以了。

現在再回顧一下,覺得問題的根源應該是mobileprovision文件綁定了證書的ID。如果證書過期,對應的mobileprovision文件也全部失效,但是你在文件預覽或者“iphone配置使用工具”中看到它沒有過期,以為還能用,這就是坑爹的地方。

no such provisioning profile was found錯誤

后來有一次做archive版本后再聯機調試安裝,Xcode報下面的錯誤:
Your build settings specify a provisioning profile with the UUID “xxxxx”, however, no such provisioning profile was found.

其中的xxxxx是provisioning profile的序列號,我檢查了一下這個profile是已經在我的Mac上安裝了,但是編譯時就是會提示上面的錯誤,按照《更新證書錯誤:No matching provisioning profiles found》上的步驟操作了一遍沒有解決問題,然后看ios - Xcode 7.2 no matching provisioning profiles found - Stack Overflow里說要重啟Xcode,這樣做了一遍,果然就好了。看來就是Xcode抽風。

your account already has a valid iOS Distribution certificate問題

以上錯誤是在用Xcode做Archive后提交AppStore遇到的錯誤,并有以下具體的說明:
you have a valid iOS Distribution certificate in the Member Center, but it is not installed locally. If your signing identity is installed on another Mac, you can export a developer profile on that Mac and import it on this Mac. You can also reset your current certificates.

但是做企業版就沒有這個問題。
搜了一下網上說有要撤銷證書再重新生成下載安裝的,還有把電腦上的證書刪掉,再從別人那里拿p12文件安裝。不排除上面的辦法對有些人有用,但是對我完全沒有效果。

其實真正的核心點在于為什么做企業版就沒有這個問題?后來我想明白了,其實是因為上次做企業版ipa包的時候,在Scheme里的Archive中將Build Configuration設置為了Enterprise,這意味著做出來的ipa包只能適用于企業版的簽名,而不能用于Appstore Distribution版。

把Build Configuration設置修改為對應Appstore Distribution版的Release,再重新試了一遍,就解決問題了。

應該還是有辦法避免這個問題的,比如用腳本進行編譯,一些參數應該是寫死的,就不會有這個問題了。

20161101更新:
昨天又遇到這個問題了,查了半天發現是我在公司開發者賬號上創建的證書被別人給刪了,對應的provision profile出現了invalid提示。更新證書和provision profile文件才解決問題

No matching provisioning profiles found問題

在Xcode中當你在更新了你得證書而再重新編譯你的程序,真機調試會出現“Your build settings specify a provisioning profile with the UUID‘XXX’, however, no such provisioning profile was found. Xcode can resolve this issue by downloading a new provisioning profile from the Member Center.”。
解決辦法:

1.關閉項目,找到項目文件XXXX.xcodeproj,在文件上點擊右鍵,選擇“顯示包內容”(Show Package Contents)。會新打開一個Finder。 
2.在新打開的Finder中找到project.pbxproj,并且打開,找到你所有包含報錯的UUID‘XXX’的行,刪除。 
3.保存,重新啟動項目,再編譯,就OK了。

No codesigning identities found問題

2016-12-01 15:32:20
這個是在同事的機器上發現的,不知道他做了一個怎么操作出現了一個Reset按鈕,他就點了,然后就出現類似的問題:
Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“iOS Team Provisioning Profile: *”) were found.

因為賬號在我手里,我對證書和provision profile都沒有做操作,相信這兩項都是沒有問題的,然而教他做了各種操作,包括檢查證書私鑰,重啟Xcode等都沒有解決問題。這之中我最大的疑惑是他點的這個Reset按鈕到底做了什么事情,查了一下,根據這里,在Xcode的帳戶setting中點Reset操作,結果是這樣的: If you click the Reset button, Xcode revokes and re-creates the corresponding certificate.

但是我同事應該不是在帳戶設置里點的Reset按鈕,而是在Archive打包時點的Reset按鈕。另外一個理由是賬戶里的證書過期日期不是一年后的今天,我感覺應該是沒有創建。但是保險起見,我還是把自己電腦上的證書刪掉,然后重新下載開發者賬戶上的證書并安裝(先在鑰匙串中刪除之前的證書)。似乎并沒有解決問題。接著對相關的provision profile點擊edit按鈕,并點擊Generate按鈕重新生成(沒有刪除過),然后下載雙擊安裝(安裝之前先在iPhone配置實用工具中刪除了舊的)。。在Xcode中重新創建了一個Demo工程,用上面的證書和profile測試并無問題。

接著發給同事測試,仍然不行,待我在他的電腦上操作之后,發現他的Xcode開發者賬戶選項里有兩個相同app id的profile文件,刪除了一個舊的,重啟Xcode,再操作就沒有這樣的問題了。

我的一個使用相同證書的工程在Archive打包時出現的卻不是上述的錯誤,而是前面的"your account already has a valid iOS Distribution certificate問題",懷疑也主要是profile invalid的問題。后續再進行測試吧。

參考:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容

  • 引言 關于開發證書配置(Certificates & Identifiers & Provisioning Pro...
    奮斗的蝸牛閱讀 7,469評論 2 20
  • 引言關于開發證書配置(Certificates & Identifiers & Provisioning Prof...
    molake閱讀 48,430評論 7 62
  • 轉發自:http://www.cnblogs.com/CoderAlex/p/5033852.html 引言 關于...
    Remover閱讀 21,606評論 6 33
  • 讀書可以是一種使人心平氣和的消遣。一杯茶,一本書,累了就閑庭信步,淡看云卷云舒。這是一個令人向往的場景,就像不少女...
    半瓶六紳閱讀 313評論 0 0
  • 讀過太多的故事,不再相信故事,卻愛上了講故事。 故事發生在我二十歲大二那一年,至今我還清楚的記得那天之前下了好大...
    別念閱讀 215評論 1 0