是否有可能通过cocoa'自动'编码捆绑包,而无需用户每次都输入管理员用户名和密码?
如果有某种方法可以实现这一点,那么可以理解某种类型的工作示例。这是我正在使用的代码,它在执行时要求管理员信用:
- (void)codeSignature:(NSData *)privateKey {
NSString* signSomething = @"file";
NSString* homeDir = [NSHomeDirectory() stringByAppendingPathComponent:@"/Users/Rufote"];
NSString* homePath = [homeDir stringByAppendingPathComponent:signSomething];
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/codesign"];
NSArray *args;
args = [NSArray arrayWithObjects: @"-s", @"certificate", @"-vvvv", @"-f", homePath, nil];
[task setArguments: args];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
[string release];
[task release];
return;
}
@end
答案 0 :(得分:0)
无法访问Keychain的数据。
但是既然你想对你的Bundle进行编码,那么你可以使用xcodebuild和xcrun命令编写Apple / Shell脚本,这将有助于自动化你的编码过程。
答案 1 :(得分:0)
在您的系统钥匙串上,您会找到与您的代码签名相关的3件事: - 你的证书 - 您的私钥(与您的证书同名) - 您的公钥(与证书相同的名称)
如果双击密钥,在访问控制上,您可以选择“允许所有应用程序访问此项”。然后您不必再输入管理员密码来进行代码签名,但要注意安全风险 !!!