invertase / react-native-apple-authentication

A React Native library providing support for Apple Authentication on iOS and Android.
Other
1.39k stars 220 forks source link

Sign Up Not Completed for reviewer #93

Closed porzioj closed 4 years ago

porzioj commented 4 years ago

Hi guys,

First please take in count it is not the same case as issue #83 :-) Apple's reviewer is saying Sign in does not works attachment-11786310053490606996Screenshot-0614-062117

But on my side it works on many devices via TestFlight but not on Apple's reviewer phone so my point would be more to know if you already faced that with reviewers and if you have any idea on how I could solve that. It looks like it is coming from Apple Sign In system and would like to reproduce it. Do you have any idea on how to reproduce ? And if anyone already faced this problem which is blocking he review ?

Thanks

mikehardy commented 4 years ago

It's working for me, app review passed as recently as last Monday (6 days ago)

porzioj commented 4 years ago

Hi @mikehardy thanks for your answer, Could the problem be related to internet connection ? On my first attempt apple team was coming back with screenshot like this attachment-5587714687021205720Screenshot-0612-155741_copy (1) I don't understand how they test but seems like they have connection problems...

mikehardy commented 4 years ago

I have no idea, sorry

gonjitti commented 4 years ago

I also faced same issue with react-native-firebase(https://github.com/invertase/react-native-firebase). I try to find out what happen in review. image

For your information, below is my part of package.json.

    "@invertase/react-native-apple-authentication": "^1.1.0",
    "@react-native-firebase/admob": "^7.1.4",
    "@react-native-firebase/analytics": "^7.1.4",
    "@react-native-firebase/app": "^7.2.1",
    "@react-native-firebase/auth": "^8.0.5",
    "@react-native-firebase/crashlytics": "^7.1.5",
    "@react-native-firebase/firestore": "^7.1.7",
    "@react-native-firebase/functions": "^7.1.4",
    "@react-native-firebase/messaging": "^7.1.5",

react-native-info

System:
    OS: macOS 10.15.5
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    Memory: 684.93 MB / 16.00 GB
    Shell: 3.1.0 - /usr/local/bin/fish
  Binaries:
    Node: 10.15.3 - ~/.anyenv/envs/nodenv/versions/10.15.3/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.5 - ~/.anyenv/envs/nodenv/versions/10.15.3/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: Not Found
  SDKs:
    iOS SDK:
      Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK:
      API Levels: 23, 26, 27, 28
      Build Tools: 26.0.2, 27.0.3, 28.0.3
      System Images: android-26 | Google Play Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom_64
      Android NDK: Not Found
  IDEs:
    Android Studio: 3.2 AI-181.5540.7.32.5014246
    Xcode: 11.5/11E608c - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_171 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: ^16.13.1 => 16.13.1 
    react-native: 0.62.2 => 0.62.2 
  npmGlobalPackages:
    *react-native*: Not Found
Ehesp commented 4 years ago

Screenshots don't really help sorry. Can you try building a release app and checking out logs etc.

gonjitti commented 4 years ago

@Ehesp here is part of logs related RNAppleAuthentication. Start with Build target RNAppleAuthentication of project Pods with configuration Release (Sorry, I am not Swift Engineer so I cannot find out how to fix fro these logs.) Build Target RNAppleAuthentication.txt

Build target RNAppleAuthentication of project Pods with configuration Release
....
mikehardy commented 4 years ago

What is the goal of that text file? It just looks like normal compilation to me. Is there some build error we are looking for? How could you have submitted an app if it did not build?

If the auth failed for the reviewer you need to add lots of logging to the app and hopefully they can give you the execution logs?

gonjitti commented 4 years ago

What is the goal of that text file? It just looks like normal compilation to me. Is there some build error we are looking for? How could you have submitted an app if it did not build?

Yes. these are normal compilation file logs. These are not related this issue, sorry.

If the auth failed for the reviewer you need to add lots of logging to the app and hopefully they can give you the execution logs?

Now I try to log from reviewer action. I upload these later.

Below is my app code(I hope logging from Firebase Crashlytics).

import React from 'react';
import auth from '@react-native-firebase/auth';
import appleAuth, {
  AppleAuthRequestScope,
  AppleAuthRequestOperation,
  AppleAuthError,
  AppleButton } from '@invertase/react-native-apple-authentication';
import crashlytics from '@react-native-firebase/crashlytics';
import FirebaseEventTracker from '../../../lib/FirebaseEventTracker';

// from app
// import Colors from '../../constants/Colors';
// import styles from './styles';

async function onAppleButtonPress() {
  // Start the sign-in request
  const appleAuthRequestResponse = await appleAuth.performRequest({
    requestedOperation: AppleAuthRequestOperation.LOGIN,
    requestedScopes: [AppleAuthRequestScope.EMAIL],
  });

  // Ensure Apple returned a user identityToken
  if (!appleAuthRequestResponse.identityToken) {
    throw new Error({
      message: 'Apple Sign-In failed - no identify token returned',
      code: 'no identityToken'
    });
  }

  // Create a Firebase credential from the response
  const { identityToken, nonce } = appleAuthRequestResponse;
  const appleCredential = auth.AppleAuthProvider.credential(identityToken, nonce);

  // Sign the user in with the credential
  return auth().signInWithCredential(appleCredential);
}

export default function AppleLoginButton() {
  return (
    <AppleButton
      buttonStyle={AppleButton.Style.WHITE}
      buttonType={AppleButton.Type.SIGN_IN}
      style={{
        shadowColor: 'rgba(0,0,0, .4)',
        shadowOffset: { height: 1, width: 1 },
        shadowOpacity: 1,
        shadowRadius: 1,
        paddingTop: 14,
        paddingBottom: 14,
        height: 52,
        margin: 7,
        justifyContent: 'center',
        alignItems: 'center',
        fontWeight: 'bold',
        flexDirection: 'row',
      }}
      onPress={() => onAppleButtonPress().then(() => {
        FirebaseEventTracker.loginSuccess('apple');
      }).catch((error) => {
        if (error.code === AppleAuthError.CANCELED) {
          crashlytics().log('Apple sign-in cancelled');
        }
        FirebaseEventTracker.loginFailed('apple', error.code);
        crashlytics().recordError(error);
      })}
    />
  );
}
porzioj commented 4 years ago

Hi guys,

Just to update you on my problem, I sent the same build 4 time and as suspected problem was on Apple's reviewer side besause the 4th time it passed without knowing why. Will close this, hope it will helps if someone got this problem?

mikehardy commented 4 years ago

That is crazy. I have similar non-deterministic pass/fail with Apple review, but so far not because of sign-in! Pretty frustrating as a dev. Glad you're moving forward, good luck with your project

porzioj commented 4 years ago

Yes really frustrating when Apple reviewers are not able to make working their own signing system.. Anyway hope you will solve your problems for review too! Good luck @mikehardy

gonjitti commented 4 years ago

I think so too. Thank you for your help. It is not related to this repository so I continue to solve this problem with Apple reviewer, thank you.

brooklyntronic commented 4 years ago

Am currently facing same issue in review. Works on all devices, all login flows (touch, password, face-id) but reviewer keeps rejecting my app. I cannot replicate the bug.

mikehardy commented 4 years ago

I would be so frustrated in your situation, I really understand. But without something reproducible here I'm not sure what we can do. I've seen cases of other types of rejections where phone logs could be had from the reviewer, perhaps if you worked with them and shipped a build with as much logging as possible we could get to the bottom of it? Or perhaps the reviewer just needs to use a VPN (I believe some of that work is offshored, maybe it's as simple as the reviewer having a constrained network)

AliRehman7141 commented 2 years ago

Hello there I'm also facing this issue I'm getting [Error: The operation couldn’t be completed. (com.apple.AuthenticationServices.AuthorizationError error 1001.)] in catch

AliRehman7141 commented 2 years ago

Hello there I'm also facing this issue I'm getting [Error: The operation couldn’t be completed. (com.apple.AuthenticationServices.AuthorizationError error 1001.)] in catch

Okay found the solution in Troubleshooting 😁

aminosman commented 1 year ago

We are facing this issue, After years of sign in with Apple live in production we randomly got hit with non-stop rejections over this issue. We are unable to reproduce and unsure how to proceed. We have no reports of this issue in production, its a reviewer only issue at the moment. We are running the latest stable version 2.2.2. We have had at least 10 submissions rejected. Any help on how this was reproduced or resolved would be much appreciated.

"error": {
  "code": "1000",
  "domain": "com.apple.AuthenticationServices.AuthorizationError",
  "message": "The operation couldn’t be completed. (com.apple.AuthenticationServices.AuthorizationError error 1000.)",
  "nativeStackIOS": [
    "0   Minder                              0x00000001010decb8 _ZN8facebook5react11JSIExecutor21defaultTimeoutInvokerERKNSt3__18functionIFvvEEENS3_IFNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEEE + 357472",
    "1   Minder                              0x00000001010b5f84 _ZN8facebook5react11JSIExecutor21defaultTimeoutInvokerERKNSt3__18functionIFvvEEENS3_IFNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEEE + 190252",
    "2   Minder                              0x0000000100fb2bf4 _ZN5folly6detail15str_to_integralIxEENS_8ExpectedIT_NS_14ConversionCodeEEEPNS_5RangeIPKcEE + 66040",
    "3   Minder                              0x0000000100fb10d0 _ZN5folly6detail15str_to_integralIxEENS_8ExpectedIT_NS_14ConversionCodeEEEPNS_5RangeIPKcEE + 59092",
    "4   libdispatch.dylib                   0x00000001d59a3460 DED4D0A5-1420-32AE-83A6-C31D938A1C9A + 9312",
    "5   libdispatch.dylib                   0x00000001d59a4f88 DED4D0A5-1420-32AE-83A6-C31D938A1C9A + 16264",
    "6   libdispatch.dylib                   0x00000001d59b37f4 DED4D0A5-1420-32AE-83A6-C31D938A1C9A + 75764",
    "7   libdispatch.dylib                   0x00000001d59b3444 _dispatch_main_queue_callback_4CF + 44",
    "8   CoreFoundation                      0x00000001ce41d6c8 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 632520",
    "9   CoreFoundation                      0x00000001ce3ff02c 42CCFC7B-FF32-3D25-8F01-CCB2AD843A8B + 507948",
    "10  CoreFoundation                      0x00000001ce403eb0 CFRunLoopRunSpecific + 612",
    "11  GraphicsServices                    0x00000002085f9368 GSEventRunModal + 164",
    "12  UIKitCore                           0x00000001d08f9668 CF21AD9C-EFBF-3961-A7C0-54BD30CEFEA9 + 3806824",
    "13  UIKitCore                           0x00000001d08f92cc UIApplicationMain + 340",
    "14  Minder                              0x0000000100c6ca9c Minder + 35484",
    "15  dyld                                0x00000001eccfc960 4B042F28-0D14-30EC-A1DE-3DBB10866AD7 + 88416"
  ],
  "userInfo": {}
}

This is the trace we have from the error triggered by the reviewer.

mikehardy commented 1 year ago

I love it when there is an easy answer for these sorts of things, and I can just type it up and help someone, but the 1000 error has lots of sources, and as you note, there has not been a software change here in forever. I'm not aware of the need to do a change here either. I'm stumped. Perhaps the reviewer is on a VPN or some sort of network issue similar to that where the Apple servers don't like the reviewer's network? Something else going on? I really don't know. As you mention "you have no reports of this in production"... that is...the code is working. Very confusing 🤔