30 ios ios9 google-signin
在iOS 9 SDK上测试Google登录2.1.0时,调用GIDSignIn.sharedInstance().signInSilently()最终会导致内部Google Sign-In SDK调用崩溃canOpenURL.
-canOpenURL: failed for URL: "com.googleusercontent.apps.1234567890-abcdefghijklmnopqrstuvwxyz://a" - error: "This app is not allowed to query for scheme com.googleusercontent.apps.1234567890-abcdefghijklmnopqrstuvwxyz"
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Your app must support the following URL schemes: com.example.foo, com.googleusercontent.apps.1234567890-abcdefghijklmnopqrstuvwxyz'
-canOpenURL: failed for URL: "com-google-gidconsent-google://" - error: "This app is not allowed to query for scheme com-google-gidconsent-google"
-canOpenURL: failed for URL: "com-google-gidconsent-youtube://" - error: "This app is not allowed to query for scheme com-google-gidconsent-youtube"
-canOpenURL: failed for URL: "com-google-gidconsent://" - error: "This app is not allowed to query for scheme com-google-gidconsent"
-canOpenURL: failed for URL: "com.google.gppconsent.2.4.1://" - error: "This app is not allowed to query for scheme com.google.gppconsent.2.4.1"
-canOpenURL: failed for URL: "com.google.gppconsent.2.4.0://" - error: "This app is not allowed to query for scheme com.google.gppconsent.2.4.0"
-canOpenURL: failed for URL: "googlechrome:" - error: "This app is not allowed to query for scheme googlechrome"
-canOpenURL: failed for URL: "googlechrome-x-callback:" - error: "This app is not allowed to query for scheme googlechrome-x-callback"
-canOpenURL: failed for URL: "googlechrome-x-callback:" - error: "This app is not allowed to query for scheme googlechrome-x-callback"
-canOpenURL: failed for URL: "googlechrome:" - error: "This app is not allowed to query for scheme googlechrome"
Run Code Online (Sandbox Code Playgroud)
小智 46
iOS 9引入了新的变化,canOpenURL要求应用程序将所有需要查询的方案列入白名单.
关于快速获取iOS 9 URL方案更改的这篇文章解释了原因.
您至少需要加入白名单,你自己的应用程序的标识和您的谷歌应用程式的OAuth在ID Info.plist下LSApplicationQueriesSchemes.您还可以将Google登录查询的其他方案列入白名单,以消除其他警告.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>com.example.foo</string>
<string>com.googleusercontent.apps.1234567890-abcdefghijklmnopqrstuvwxyz</string>
<string>com-google-gidconsent-google</string>
<string>com-google-gidconsent-youtube</string>
<string>com-google-gidconsent</string>
<string>com.google.gppconsent.2.4.1</string>
<string>com.google.gppconsent.2.4.0</string>
<string>googlechrome</string>
<string>googlechrome-x-callback</string>
</array>
Run Code Online (Sandbox Code Playgroud)
eme*_*mem 13
只需按照以下步骤操作:https://developers.google.com/identity/sign-in/ios/start-integrating#add_url_schemes_to_your_project(包括添加方案),它应该可以正常工作.
并且,根据以下评论的要求,我将强调问题可能是由于未按上述链接中所述添加URL方案而发生的.
引自上面的链接:
Google登录需要将两个自定义网址架构添加到您的项目中.
要添加自定义方案:
- 打开项目配置:双击左侧树视图中的项目名称.从TARGETS部分选择您的应用,然后选择Info选项卡,并展开URL Types部分.
- 单击+按钮,然后为反向客户端ID添加URL方案.要查找此值,请打开GoogleService-Info.plist配置文件,然后查找REVERSED_CLIENT_ID项.复制该键的值,并将其粘贴到配置页面上的URL Schemes框中.将其他字段留空.
- 单击+按钮,然后添加第二个URL方案.这个与您的应用的捆绑ID相同.例如,如果您的包ID是com.example.app,请在"URL方案"框中键入该值.您可以在项目配置的"常规"选项卡中找到应用程序的包ID("标识">"包标识符").
Sou*_*rma 11
针对XCode 7.0和Google plus Sdk 1.7.1进行了更新
<key>LSApplicationQueriesSchemes</key>
<array>
<string>com-google-gidconsent-google</string>
<string>com-google-gidconsent-youtube</string>
<string>com-google-gidconsent</string>
<string>com.google.gppconsent.2.4.1</string>
<string>com.google.gppconsent.2.4.0</string>
<string>googlechrome</string>
<string>googlechrome-x-callback</string>
<string>hasgplus4</string>
<string>com.google.gppconsent.2.3.0</string>
<string>com.google.gppconsent.2.2.0</string>
<string>com.google.gppconsent</string>
</array>
Run Code Online (Sandbox Code Playgroud)
对于早期版本的Google登录库,Josh的回答是正确的.但是,它似乎从版本2.2.0开始,不再需要此步骤(万岁!).
因此,如果您仍然遇到此问题,我的建议可能是更新您的Google登录库.
将GoogleService-Info.plist添加到我的项目后,我将以下内容添加到Info.plist文件中,错误消失了.
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1413410832299369</string>
<string>com.my.app</string> <!-- My app bundle ID -->
<string>com.googleusercontent.apps.1111111111-6jcxxxxxxxikgnso524xxxxxxxx5o9</string> <!-- Reverssed client ID -->
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22847 次 |
| 最近记录: |