AppDelegate.m文件中有两个包冲突

Ahm*_*şek 1 objective-c ios react-native react-native-ios

我在我的项目中使用https://github.com/devfd/react-native-google-signinhttps://github.com/luisfcofv/react-native-deep-linking包.我没有解决AppDelegate.m文件的以下部分,以便包可以工作.

对于这个反应原生谷歌登录

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [RNGoogleSignin application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];
}
Run Code Online (Sandbox Code Playgroud)

对于这种反应原生深层连接

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [RCTLinkingManager application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];
}
Run Code Online (Sandbox Code Playgroud)

我不擅长Objective-C.如何使用单个函数返回RNGoogleSignin和RCTLinkingManager?

koe*_*oen 5

由于两种方法都返回BOOL,您可以尝试这样的方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
   BOOL success = [RNGoogleSignin application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation]) 
   if (!success)
       success = [RCTLinkingManager application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];

   return success;
}
Run Code Online (Sandbox Code Playgroud)

根据@rmaddy的评论进行更新.