简体   繁体   中英

iOS Error: FBSOpenApplicationErrorDomain error 5. What does this mean?

I've seen reports for errors 4 but not for 5. I get this as a console message when I'm trying to use an "openParentApplication:reply" request. There isn't enough information in the log to know if the problem is in the iOS code, the WK code or the Simulator. I've restarted the sim, and cleaned the project. Any ideas?

WK Code:

- (IBAction)sendRequest {

    NSDictionary *request = @{@"request":@"Request1"};

    [InterfaceController openParentApplication:request reply:^(NSDictionary *replyInfo, NSError *error) {

        if (error) {
            NSLog(@"%@", error);
        } else {

            [self.label1 setText:[replyInfo objectForKey:@"response1"]];
            [self.label2 setText:[replyInfo objectForKey:@"response2"]];
            [self.label3 setText:[replyInfo objectForKey:@"response3"]];
        }

    }];
}

iOS Code:

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply{

    NSLog(@"%s", __FUNCTION__);
    //([max intValue] - [min intValue]) + [min intValue]

    int randNum1 = arc4random_uniform(16);
    int randNum2 = arc4random_uniform(16);
    int randNum3 = arc4random_uniform(16);


    NSString *num1 = [NSString stringWithFormat:@"Test%d", randNum1]; 
    NSString *num2 = [NSString stringWithFormat:@"Test%d", randNum2];
    NSString *num3 = [NSString stringWithFormat:@"Test%d", randNum3]; 

    if ([[userInfo objectForKey:@"request"] isEqualToString:@"Request1"]) {

        NSLog(@"containing app received message from watch: Request1");


        NSDictionary *response = @{@"response1" : num1, @"response2" : num2, @"response3" : num3};
        reply(response);
    }

}

The only console log is:

WatchKit Extension[48954:9523373] Error Domain=FBSOpenApplicationErrorDomain Code=5 "The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 5.)

I also faced same issue today.

  • Deleted app from simulator 😂
  • Reset simulator 😟
  • Restarted XCode 😦
  • Made changes in info.plist 😥

But when I ran app in Production , it worked 😃. App was running well in production mode with simulator.

在此处输入图片说明

Next, I deleted existing dev mode scheme and created another dev mode scheme and it worked 😳. Then it reminded me that while implementing background fetch feature in the app, I checked option Launch due to a background fetch event option in that Dev scheme. Later i gave up Background Fetch but forgot to uncheck this option. 😠

在此处输入图片说明

I would suggest you try to simplify. I have answered a very similar problem here that is in Swift. I would simplify the logic to the following:

WK Code

- (IBAction)sendRequest {
    [InterfaceController openParentApplication:request reply:^(NSDictionary *replyInfo, NSError *error) {
        NSLog(@"Reply Info: %@", replyInfo);
        NSLog(@"Error: %@", error);
    }];
}

iOS Code

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {
    NSDictionary *response = @{@"replyKey" : @"replyValue"};
    reply(response);
}

Once you have this working, then start adding the additional parsing one step at a time. You can also attach the debugger to the iOS app to step through the call by following these instructions. You may not be calling the reply block on the iOS app and you don't even know it.

在我的情况下,只有退出模拟器才能解决问题。

Disabling AVX/AVX2 Solved this error for me. if you're running macOS on Virtual Box terminal in

C > Program Files > Oracle > VirtualBox

then write this

VBoxManage setextradata "$vm_name" VBoxInternal/CPUM/IsaExts/AVX 0
VBoxManage setextradata "$vm_name" VBoxInternal/CPUM/IsaExts/AVX2 0

instead of $vm_name write your Virtual Machine Name

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM