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.
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.