我有一個非常奇怪的代碼簽名問題。之前的幾乎相同的版本已通過驗證並已提交到App Store,因此我的代碼簽名不會中斷。使用插件和iTunesLibrary對OS X應用程序進行簽名
最近我一直在嘗試使用iTunesLibrary框架。這個框架只適用於你的應用程序是經過編碼的。我越來越想初始化指示代碼簽名失敗的框架時一個常見的錯誤:
錯誤域= NSPOSIXErrorDomain代碼= 100001「無法加載。」的UserInfo = {0x100329d80 = NSLocalizedDescription無法加載,NSUnderlyingError = 0x10031a430 「操作無法完成。(OSStatus錯誤100005.)」}
我的應用程序被組織成多個框架,以此來動態鏈接和插件。我一直在使用--deep
標誌對我的應用程序進行遞歸簽名,但顯然這是wrong。現在我正在使用run script
構建階段來簽署我的每個框架和插件。這似乎工作爲codesign
告訴我的應用程序已簽署。
我已經在調試模式下構建了應用程序,並將其歸檔並導出爲開發人員ID簽名程序並檢查了簽名 - 兩種構建模式均通過。當我運行它時,我從iTunesLibrary
得到上述錯誤。真正怪異的部分是,如果我出口的應用程序,如下面重新簽署它自己,然後iTunesLibrary
功能正常:
codesign --force --sign "MyIdentity" --deep MyApp.app
如果我使用spctl --assess
儘量多給我講這個,我得知這個應用程序儘管正常工作受到嚴重簽署:
/Users/me/Desktop/MyApp.app: rejected
的應用程序,iTunesLibrary
不從另一方面想通過spctl
檢查:
/Users/me/Desktop/MyApp.app: accepted
source=Developer ID
origin=Developer ID Application: Me
是的,一切都完成了。問題是iTunesLibrary的代碼簽名檢查似乎要求框架鏈接到主要可執行文件,而不是動態庫或插件。 – Tim