iOS開發 The executable was signed with invalid entitlements.

The executable was signed with invalid entitlements.app

The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).ide



image-1

昨天下午想要打包,忽然發現企業證書沒法簽入,xocde Run 也會報錯,報錯信息如上圖。讓我很費解,明明沒有作什麼事情,只是換了個Bundle iD  換了個證書爲了打包而已,怎麼連真機運行都不能夠。ui

而後度娘、google 各類查,大部分解決方案都是以下兩種:google

第一種:Project - TARGETS - 項目目標名稱 - Build Settings - Code Signing Entitlements 將其值置爲空。
code

(我項目配置中自己就是空的,因此這個解決方案對我不適用);cdn

第二種:blog

提示The executable was signed with invalid entitlements.(The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.)錯誤,沒有發佈成功。在網上查詢資料後,按照其中一個方法成功解決了此問題,具體以下:
ci

(1):在工程中添加文件new file,選擇Resource 中的Property List,添加後名稱爲Entitlements.plist。get

(2):點擊Entitlements.plist進行編輯,刪除全部Root下的Key,而後添加一個Boolean類型,名稱爲get-task-allow的Key,狀態爲TRUEit

(3):在Targets中的Info中的Build選項卡中的Code Signing Entitlements的值設爲Entitlements.plist,從新Build便可解決

(我按照這種方法,添加了plist 文件,可是並不起做用);

後來通過兩個小時的排查終於發現了問題:

是由於同事製做的 FrameWork 包進行了簽名, 因此換了證書,換了簽名,Run 就會報錯;



image-2 項目名敏感打碼不要介意

(由於咱們作的不是動態的framework,因此必需要添加到Embedded Binaries ,而正是由於添加到這裏面,framework.的簽名證書,和我要項目要打包的證書籤名不同,因此就會彈出image-1的錯誤);

最後說下解決方法:

第一種: 從新打包一個去掉簽名的 .framework  ,導入工程;

第二種:對已有的 .framework 進行重簽名;(打開終端,輸入命令)

(1)查看framework的簽名證書,確認是否被簽名,或者簽名不一致。

   命令:codesign -d -vv XX.framework

(2)刪除原有的簽名

 進入到XX.framwork文件夾內,刪除_CodeSignature文件夾。

(3)查看本機可用的簽名文件

  命令:/usr/bin/security find-identity -v -p codesigning

(4)使用簽名文件簽名

   命令:codesign -fs  「iPhone Developer: xxxx (XXXX)」  XX.framework

而後把重簽名過的XX.framework 導入工程,就不會再報錯了。

相關文章
相關標籤/搜索