uni-app ios离线打包时 google登陆报错

uni-app ios离线打包时 google登陆报错

开发环境 版本号 项目创建方式
Mac 14 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Mac

HBuilderX类型:正式

HBuilderX版本号:4.13

手机系统:iOS

手机系统版本号:iOS 17

手机厂商:苹果

手机机型:iphone 14

页面类型:vue

vue版本:vue3

打包方式:离线

示例代码:

uni.login({  
    provider: 'google',  
    success: async function (event: any) {  
        console.log("success", event);  
    },  
    fail: async function (err) {  
        console.log("err", err);  
    }  
});

操作步骤:

uni.login({  
    provider: 'google',  
    success: async function (event: any) {  
        console.log("success", event);  
    },  
    fail: async function (err) {  
        console.log("err", err);  
    }  
});

预期结果: 成功登录google账号

实际结果: 返回信息“{“errMsg”:“login:fail Invalid parameter,https://ask.dcloud.net.cn/article/282","code”:-1}”

bug描述: 使用uni.login登录google账号,返回信息“{“errMsg”:“login:fail Invalid parameter,https://ask.dcloud.net.cn/article/282","code”:-1}”,参数错误,5+API传入的参数不正确,我使用的uni.login属于uni-app项目,不属于5+ App项目,且自定义基座正常能登陆。


更多关于uni-app ios离线打包时 google登陆报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app ios离线打包时 google登陆报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uni-app 进行 iOS 离线打包时,如果遇到 Google 登录报错,可能是由于以下原因导致的。以下是一些常见的排查和解决方法:


1. 检查 Google 登录配置

  • Google Sign-In SDK:确保在 Xcode 项目中正确集成了 Google Sign-In SDK。
    • Podfile 中添加 pod 'GoogleSignIn',然后运行 pod install
  • Google 开发者控制台配置
    • 确保在 Google 开发者控制台中创建了 OAuth 2.0 客户端 ID,并配置了 iOS 的 Bundle ID。
    • 下载 GoogleService-Info.plist 文件,并将其添加到 Xcode 项目中。
  • URL Scheme 配置
    • 在 Xcode 中,检查 Info.plist 是否配置了正确的 URL Scheme,格式为 com.googleusercontent.apps.<CLIENT_ID>

2. 检查 uni-app 插件配置

  • 确保在 manifest.json 中正确配置了 Google 登录插件。
    {
      "app-plus": {
        "oauth": {
          "google": {
            "client_id": "YOUR_CLIENT_ID",
            "scope": "email profile"
          }
        }
      }
    }
    
  • 如果使用的是第三方插件(如 uni-id),确保插件版本兼容并正确配置。

3. 检查代码实现

  • 确保调用 Google 登录的代码正确,例如:
    uni.login({
      provider: 'google',
      success: function (res) {
        console.log('Login success:', res);
      },
      fail: function (err) {
        console.log('Login failed:', err);
      }
    });
    
  • 检查错误信息,确认是 SDK 初始化问题、权限问题还是其他问题。

4. 检查 iOS 项目配置

  • Capabilities:在 Xcode 中,确保启用了 Keychain SharingSign In with Apple(如果需要)。
  • Info.plist:检查 Info.plist 是否添加了以下内容:
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>com.googleusercontent.apps.YOUR_CLIENT_ID</string>
        </array>
      </dict>
    </array>
    

5. 检查网络权限

  • 确保在 Info.plist 中添加了网络权限:
    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>
回到顶部