2012-02-13 15 views
1

因此,我正在開發具有iCloud功能的Mac應用程序。在Xcode中,一切都很好。我正在使用與Mac團隊個人資料配對的Mac開發人員證書(代碼簽名身份,來自構建設置)。當我編譯並運行時,我可以從iCloud保存/加載文件。我很開心。在XCode外部測試iCloud:簽名無效

我不開心的時候,這是我創建包併發送給測試人員的時候。該應用程序根本不是開始!我從控制檯輸出如下:

12-02-13 3:50:09.796 PM sandboxd: ([51185]) taskgated-helper(51185) deny mach-lookup com.apple.ocspd 
12-02-13 3:50:09.796 PM sandboxd: ([51185]) taskgated-helper(51185) deny mach-lookup com.apple.ocspd 
12-02-13 3:50:09.796 PM sandboxd: ([51185]) taskgated-helper(51185) deny mach-lookup com.apple.ocspd 
12-02-13 3:50:09.797 PM sandboxd: ([51185]) taskgated-helper(51185) deny mach-lookup com.apple.ocspd 
12-02-13 3:50:09.867 PM ReportCrash: Saved crash report for myAppName[51195] version ??? (???) to /Users/plboily/Library/Logs/DiagnosticReports/myAppName_2012-02-13-155009_Blinky.crash 
12-02-13 3:50:09.870 PM ReportCrash: Removing excessive log: file://localhost/Users/plboily/Library/Logs/DiagnosticReports/myAppName_2012-02-03-113847_Blinky.crash 
12-02-13 3:50:10.000 PM kernel: CODE SIGNING: cs_invalid_page(0x1000): p=51195[myAppName ] honoring CS_KILL, final status 0x10201 
12-02-13 3:50:10.000 PM kernel: CODE SIGNING: cs_invalid_page(0x1000): p=51195[myAppName ] clearing CS_VALID 

以下是崩潰日誌的一個片段:

Exception Type: EXC_CRASH (Code Signature Invalid) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 

Thread 0 Crashed: 
0 dyld       0x8fea9280 dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*) + 526 
1 dyld       0x8fea9063 _dyld_start + 51 

任何想法有什麼不對? 有人知道我爲什麼有這些問題嗎?我已經有我的Mac團隊的個人資料在我的系統配置文件

順便說一句,當我建立我們的構建機器上,有一個_ CodeSignature文件夾出現成的.app文件夾,再加上embedded.provisioningprofile文件。一切似乎都在那裏。我想知道是否必須將代碼簽名標識添加到我的項目的所有目標中?現在,我只簽署了申請目標。

謝謝

回答

0

我終於找到了什麼是我的問題!

問題是,在我的codesign命令後,我用change_name_tool修改了我的二進制文件。所以,因爲二進制文件改變了,簽名無效了!

0

我需要改變我的entitlement.plist有應用程序配置文件ID不是$(TEAMID).appid這樣下去太開發中心看看這款應用ID並獲得DNS之前的字母和數字部分應用ID,並將entitlement.plist中的$(TEAMID)替換爲該值。我做到了這一點,並停止了同樣的錯誤,但我只需要使用一個應用程序而不是其他兩個iCloud應用程序。我還刪除了icloud中的所有文檔,以清潔存儲開始。

- (NSURL *)iCloudURL 
{ 
    return [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 
} 
    NSError *error = nil; 
[[NSFileManager defaultManager] removeItemAtURL:[self iCloudURL] error:&error];