Flutter Android端Apple OAuth登录后无法返回应用问题求助
Android端Supabase Apple登录无法返回应用问题
我正在开发一个基于Supabase的非自托管Flutter应用,目前所有原生、Web端登录,以及通过Google实现的Apple登录都正常,但Android端的Apple登录存在异常:
- 能正常进入Apple登录页面,但配置深度链接后无法返回应用
- 确认Apple ID后,Supabase始终尝试连接默认站点URL,而非指定的重定向URL
- 若将站点URL设为网站地址(如
http://localhost:3000),能获取到成功码(https://localhost:3000/?code=XXXXXXXXXX),但模拟器不会返回应用 - 若将深度链接信息(如
com.example.supabaselogin)设为站点URL,Apple会返回错误
代码实现
ElevatedButton( onPressed: () async { if (!kIsWeb && Platform.isIOS) { return signInWithApple(); // 这部分原生逻辑正常工作 } else if (!kIsWeb && Platform.isAndroid) { await supabase.auth.signInWithOAuth(OAuthProvider.apple, redirectTo: "com.example.mobileAppTemplate://login-callback/"); // 这部分无法正常工作 } await supabase.auth.signInWithOAuth(OAuthProvider.apple, redirectTo: redirectTo); // Web端逻辑正常工作 }, child: const Text('Sign in with Apple')),
AndroidManifest配置
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="com.example.mobileAppTemplate" android:host="login-callback" /> </intent-filter>
已尝试的解决方案
- 成功实现其他登录方式,尝试使用
supasocialsauth库,更换不同的scheme和host,问题依旧 - 使用
app_links库手动实现深度链接,终端测试有效,但Apple登录时无法通过URL返回应用
更新内容
我认为配置无误,但:
- 使用应用返回深度链接(如
com.example.mobileAppTemplate://login-callback)时,Apple报错且无法返回应用 - 使用基于URL的深度链接(如
http://localhost/foo)时,Apple会重定向到该URL,问题仍未解决
内容的提问来源于stack exchange,提问作者Abdurrahim Yılmaz
相关产品推荐
相关产品推荐

