Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Mac自定义协议在某些计算机上失败_Objective C_Macos_Cocoa_Custom Protocol - Fatal编程技术网

Objective c Mac自定义协议在某些计算机上失败

Objective c Mac自定义协议在某些计算机上失败,objective-c,macos,cocoa,custom-protocol,Objective C,Macos,Cocoa,Custom Protocol,MacOS10.8.3。这个简单的应用程序在点击浏览器中的链接(例如run)时根据自定义协议运行 使用xCode编译.app,未签名 在大多数机器上工作,但在某些机器上不工作。一个不起作用的是关闭了网关守卫的MacOS10.8.2。它给出了错误“由于奇怪的原因失败(13)”。我想这与许可或安全有关。我尝试将Contents/MacOS/Binary修改为777,但还是一样 我是否必须签署苹果开发人员证书才能使其工作,或者在代码或plist中执行其他操作才能使其在所有机器上工作 普利斯特 你的应用

MacOS10.8.3。这个简单的应用程序在点击浏览器中的链接(例如run)时根据自定义协议运行

使用xCode编译.app,未签名

在大多数机器上工作,但在某些机器上不工作。一个不起作用的是关闭了网关守卫的MacOS10.8.2。它给出了错误“由于奇怪的原因失败(13)”。我想这与许可或安全有关。我尝试将Contents/MacOS/Binary修改为777,但还是一样

我是否必须签署苹果开发人员证书才能使其工作,或者在代码或plist中执行其他操作才能使其在所有机器上工作

普利斯特


你的应用程序代码并不重要。它还没有达到运行任何代码的程度。权限错误不一定与应用程序的可执行文件有关,它可以是包中或指向包的任何包含目录。它可以与应用程序链接所针对的任何库或框架一起使用。另外,你确定问题系统上只有你的应用程序的一个副本吗?可能有其他应用程序,但不在“应用程序”文件夹中。我正在和用户进行远程测试,所以我无法检查,如果他桌面上也有副本,这有关系吗?为什么iTunes、Spotify和其他应用程序总是能正常工作。如果该协议已在IANA注册,这是否重要?问题是该应用程序的哪个副本将被启动。如果存在用户无法完全访问的副本,系统可能会选择其中一个副本,并在尝试启动它时遇到权限问题。而且,不,注册协议是没有帮助的。我几乎可以肯定事实并非如此。既然我们取消了注册和我的代码,它是否必须用苹果开发者证书签名?虽然案例中的用户禁用了网守。不,它不需要签名。应用程序运行过一次吗?它可能需要隔离删除(与Gatekeeper不完全相同),或者在用户通过运行关联表示信任之前,启动服务可能不会尊重关联。(它与文档类型关联类似。)最后,您应该逐字发布完整的错误消息。例如,它是否显示路径?
<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>protocoltest</string>
            </array>
            <key>CFBundleURLName</key>
            <string>com.TestWebLauncher</string>
        </dict>
    </array>
#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