plist中的URL方案,用于使用OAuth2

时间:2015-01-14 20:22:10

标签: ios xcode oauth-2.0 soundcloud

我正在构建iOS应用并尝试使用SoundCloud API。我注册了我的应用并创建了一个redirectURI:APP_NAME:// soundcloud。然后,在Xcode中,我添加了一个URL方案作为APP_NAME,URL标识符添加为com.BUNDLE_IDENTIFIER,并在我的AppDelegate中执行以下操作:

[SCSoundCloud setClientID:@"CLIENT_ID"
                   secret:@"SECRET"
              redirectURL:[NSURL URLWithString:@"APP_NAME://soundcloud"]];

如果我在模拟器上启动应用,然后在Safari的地址栏中输入APP_NAME:// soundcloud,它会成功将我反弹回我的应用。但是,在应用程序中,我不断收到以下错误:

*** Assertion failure in +[SCRequest performMethod:onResource:usingParameters:withAccount:sendingProgressHandler:responseHandler:]

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Resource '(null)' is invalid because the scheme is not 'https'.'

为什么资源'(null)'和计划' https'?我在哪里更改此更改以及如何解决此错误?

1 个答案:

答案 0 :(得分:0)

该方法调用SCRequest performMethod方法并需要一个https链接,这意味着不支持深度链接到其他应用程序。

NSAssert1([[aResource scheme] isEqualToString:@"https"], @"Resource '%@' is invalid because the scheme is not 'https'.", aResource);

要解决此问题,请在您的应用程序中实现通用链接,如果该链接已安装在设备上,则会将https链接重定向到您的应用程序。