我在我的应用程序中添加了Facebook和Google注册,但我有这个问题
无法完成操作。 -10814
在Facebook登录中我不知道如何解决它,这是openUrl
的我的应用代理代码:
func application(_ application: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any])
-> Bool {
if let fbSDKAppId = FBSDKSettings.appID(), url.scheme!.hasPrefix("fb\(fbSDKAppId)"), url.host == "authorize" {
var shouldOpen :Bool = FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!,annotation:options[UIApplicationOpenURLOptionsKey.annotation])
return shouldOpen
}
else {
return GIDSignIn.sharedInstance().handle(url,
sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
annotation: [:])
}
}
我能做什么?
答案 0 :(得分:6)
现在我使用从here下载的最新SDK v4.26.0 ,然后按照link的步骤安装FB。我的代码是
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
if ([[[UIDevice currentDevice] systemVersion] floatValue] <= 9) {
// After iOS9 we can not use it anymore
login.loginBehavior = FBSDKLoginBehaviorSystemAccount;
} else {
login.loginBehavior = FBSDKLoginBehaviorWeb;
}
NSArray *permission = [[NSArray alloc] initWithObjects:@"email",@"public_profile",@"user_friends", nil];
NSLog( @"### running FB sdk version: %@", [FBSDKSettings sdkVersion] );
[login logInWithReadPermissions:permission fromViewController:(UIViewController *)self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
[self removeActivityIndicatorWithBg:activityIndicator];
if (error) {
NSLog(@"Process error");
} else if (result.isCancelled) {
NSLog(@"Cancelled");
} else {
NSLog(@"Logged in%@",result.grantedPermissions);
}
}];
这里我使用登录行为FBSDKLoginBehaviorSystemAccount
,我得到错误
( - 错误:“操作无法完成。-10814)
所以在我的模拟器或设备中没有在Facebook的系统设置中设置帐户。然后它出现在下面的块
if (error) {
NSLog(@"Process error");
}
如果我打印错误,
没有Facebook帐号。 没有配置Facebook帐户。您可以在“设置”中添加或创建Facebook帐户。
所以我将loginBehavior从FBSDKLoginBehaviorSystemAccount
更改为FBSDKLoginBehaviorWeb
,我得到了所有OP而没有错误
答案 1 :(得分:1)
在为openUrl
添加选项之后工作了
请注意,application:openURL:options:
仅在iOS 9
及更高版本中可用。如果您使用的是iOS SDK
的旧版本,则可以使用:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation
];
// Add any custom logic here.
return handled;
}
答案 2 :(得分:0)
info.plist
中设置的 <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>1.8</version>
<vendor>oracle</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
属性为我解决了问题
查看附带的屏幕截图:
答案 3 :(得分:0)
在此thread中,您可以找到问题以及此类错误的临时解决方法。