2

ユーザーが毎回管理者のユーザー名とパスワードを入力しなくても、ココア経由でバンドルを「自動的に」コード署名することは可能ですか?
これを実装する方法があれば、いくつかの種類の実用的な例をいただければ幸いです。私が現在使用しているコードは次のとおりです。実行時に管理者クレジットを要求します。

- (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
4

2 に答える 2

1

システム キーチェーンには、コード署名に関連する 3 つの要素があります。 - 証明書 - 秘密鍵 (証明書と同じ名前) - 公開鍵 (証明書と同じ名前)

キーをダブルクリックすると、アクセス制御で「すべてのアプリケーションがこのアイテムにアクセスできるようにする」を選択できます。その後、コード署名を行うために管理者パスワードを入力する必要はなくなりますが、セキュリティ リスクには注意してください!!!

于 2013-08-17T23:49:53.067 に答える
0

キーチェーンのデータにアクセスできません。

しかし、バンドルをコード署名したいので、コード署名プロセスを自動化するのに役立つxcodebuildxcrunコマンドを使用して Apple/Shell スクリプトを書くことができます。

于 2012-08-10T17:18:55.470 に答える