2017-02-09 236 views
0

我目前正在進行名爲「LockWatch」的iOS調整,該調整應該在鎖定屏幕上顯示類似watchOS的錶盤。這個調整涉及到一個基本的插件系統,該系統從一個指定的目錄加載一個包(name.watchface),目前正在工作。iOS:代碼簽名無效/所需的代碼簽名缺失

但問題是,由於缺少或無效的代碼簽名,這些軟件包無法在設備上執行,但在iOS模擬器中,軟件包已加載並執行得很好。

我通過添加「com.apple.backboard.client」權利(因爲日誌說這個特定的權利丟失,因此SpringBoard崩潰)在iOS9上工作。

bundle項目本身是一個簡單的Xcode項目,它使用來自macOS選項卡的「Bundle」目標創建,Base SDK設置爲「Latest iOS(10.2)」。

我試過下面的簽名方法:

  • 在所有
  • Xcode的管理簽約
  • 的Xcode手動簽署不簽署(用於調試和發佈)
  • 與LDID不簽約應享權利
  • 使用帶權利的ldid簽名

這兩個文本之間改變的日誌:

SpringBoard(CoreFoundation)[PID] <Notice>: Error loading /var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: dlopen(/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype, 265): no suitable image found. Did Find: 
/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: required code signature missing for '/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype' 

SpringBoard(CoreFoundation)[PID] <Notice>: Error loading /var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: dlopen(/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype, 265): no suitable image found. Did Find: 
/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: code signature invalid for '/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype' 

由於二進制不能被執行,它的主要的類實例不能被添加到陣列和跳板崩潰。

回答

0

看來我終於自己解決了。

事實證明,表面組合尚未被簽名(因此required code signature missing消息)。

我加了Run Script階段包含以下腳本包:

/usr/bin/codesign --force --sign - --timestamp=none $CODESIGNING_FOLDER_PATH/$PRODUCT_NAME

我時,我正在研究有關代碼簽名一個不同的問題的想法,其中有人建議清除_CodeSignature的內容夾。這在我的構建輸出中顯然是不存在的。