某些计算机上的Mac自定义协议失败

时间:2013-03-30 16:54:50

标签: objective-c macos cocoa custom-protocol

Mac OS 10.8.3。这个简单的应用程序在单击浏览器中的链接时从自定义协议运行,例如运行。

使用xCode编译.app,无符号。

适用于大多数机器但不适用于某些机器。一个不起作用的是Mac OS 10.8.2,网守关闭。它给出了错误“因为奇怪的原因(13)而失败”。我想这与许可或安全有关。我尝试将内容/ MacOS / Binary chmod到777,但仍然是相同的。

我是否必须签署Apple开发证书以使其正常工作,或者在代码或plist中执行其他操作以使其在所有计算机上运行?

的plist

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>protocoltest</string>
            </array>
            <key>CFBundleURLName</key>
            <string>com.TestWebLauncher</string>
        </dict>
    </array>

AppDelegate.m

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    if ([invokeUrl length] == 0)
    {
        invokeUrl = @"no url";
    }

    [txt setStringValue:invokeUrl];


}

- (id)init
{
    [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self andSelector:@selector(handleURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
    return [super init];
}

- (BOOL)handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    NSLog(@"%@", url);
    invokeUrl = url;
    return YES;
}


@end

0 个答案:

没有答案