You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Objective-C iOS集成Azure B2C遇scheme无注册处理器及重定向问题求助

Azure B2C iOS集成:scheme does not have a registered handler 及重定向问题排查

1. 检查Xcode中URL Scheme配置

  • 打开项目的Info标签页,找到URL Types区域
  • 添加新的URL Type:
    • Identifier填写与Bundle ID一致的com.bacd.mobilexyz
    • URL Schemes填写msauth.com.bacd.mobilexyz(必须和重定向URL的前缀完全匹配)
    • 无需修改Role字段,保持默认即可

2. 验证Azure B2C应用注册配置

  • 登录Azure门户,进入目标B2C租户的应用注册页面
  • 进入Authentication选项卡:
    • 确认Redirect URIs已添加msauth.com.bacd.mobilexyz://auth,且平台选择为iOS/macOS
    • 检查Implicit grant and hybrid flows下的ID tokens和Access tokens是否已勾选(根据你的应用需求选择,登录流程至少需要勾选ID tokens)
    • 确认Supported account types设置符合你的业务场景

3. 确保代码中正确处理回调(Objective-C)

AppDelegate.m(iOS 12及以下)

#import <MSAL/MSAL.h>

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    return [MSALPublicClientApplication handleMSALResponse:url sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}

SceneDelegate.m(iOS 13及以上)

#import <MSAL/MSAL.h>

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
    UIOpenURLContext *context = URLContexts.anyObject;
    [MSALPublicClientApplication handleMSALResponse:context.URL sourceApplication:context.options.sourceApplication];
}

MSAL客户端初始化验证

确认初始化参数与配置一致:

NSString *clientId = @"你的应用Client ID";
NSString *tenantId = @"你的B2C租户ID";
NSString *redirectUri = @"msauth.com.bacd.mobilexyz://auth";

MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc] initWithClientId:clientId
                                                                                            redirectUri:redirectUri
                                                                                              authority:[MSALB2CAuthority authorityWithTenantIdentifier:tenantId]];
MSALPublicClientApplication *application = [[MSALPublicClientApplication alloc] initWithConfiguration:config error:nil];

4. 其他排查点

  • 清理Xcode缓存(Cmd+Shift+K),重启Xcode和测试设备,避免缓存导致配置不生效
  • 确认测试设备上安装的是最新编译的应用包,确保新的URL Scheme已被打包
  • 检查重定向URL的拼写,Azure B2C对URL匹配是严格区分大小写和标点的
  • 如果使用了Universal Links,暂时禁用后测试,排除冲突可能

内容的提问来源于stack exchange,提问作者shubham kamboj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:20:35