因此,我正在开发一个带有iCloud功能的Mac应用程序。在Xcode中,一切都很好。我使用Mac证书与配对(代码签名标识,来自构建设置)。当我编译和运行时,我可以从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团队配置文件已经在我的系统配置文件中了。
顺便说一句,当我在构建机器上构建时,.app文件夹中出现了一个.app文件夹,还有一个embedded.provisioningprofile文件。一切似乎都在那里。我想知道是否必须将代码签名标识添加到项目的所有目标中?现在我只签了申请目标。
谢谢
发布于 2012-02-14 18:12:28
我终于找到了我的问题所在!
问题是,在我的codesign命令之后,我用change_name_tool修改了二进制文件。因此,由于二进制更改,签名不再有效!
发布于 2012-02-14 02:49:42
我需要更改我的entitlement.plist,以便拥有应用配置文件id而不是$(TEAMID).appid,因此,请使用开发中心,查看应用程序id,在应用程序id的dns部分之前获取字母和数字,并将entitlement.plist中的$(TEAMID)替换为此。我做了这个和你已经停止的同样的错误,但是我只需要用一个应用程序,而不是我拥有的另外两个iCloud应用程序。我还删除了icloud中的所有文档,以便从干净的存储开始。
- (NSURL *)iCloudURL
{
return [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
}
NSError *error = nil;
[[NSFileManager defaultManager] removeItemAtURL:[self iCloudURL] error:&error];
https://stackoverflow.com/questions/9268102
复制相似问题