uni-app 苹果授权登录在ipad上为null iphone上正常

uni-app 苹果授权登录在ipad上为null iphone上正常

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:10

HBuilderX类型:正式

HBuilderX版本号:3.2.16

手机系统:iOS

手机系统版本号:iOS 15

手机厂商:苹果

手机机型:ipad

页面类型:vue

vue版本:vue2

打包方式:云端

示例代码:

plus.oauth.getServices(function(services) {
let service = services.find((service) => {
return service.id === 'apple'
})
if (service) {
if (!service.authResult) {
self.getAppinfo(service);  
} else {
console.log('已经登陆认证');
service.logout(res => {
console.log('Apple注销登录成功:' + JSON.stringify(res));
self.getAppinfo(service);
}, err => {
console.log('Apple注销登录失败:' + JSON.stringify(err));
self.getAppinfo(service);
});
}
} else {
uni.showToast({
title: '无法授权',
duration: 1000
})
}

}, function(e) {
console.log("获取服务列表失败:" + JSON.stringify(e));
uni.showToast({
title: e,
duration: 1000
})
})

更多关于uni-app 苹果授权登录在ipad上为null iphone上正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

15 回复

iPad 是什么版本的 Apple 登录是iOS13以后才有的 先确认你的iPad 系统版本

更多关于uni-app 苹果授权登录在ipad上为null iphone上正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


iPad和 iPhone 登录的是 同一个Apple ID吗?

回复 天生DR: 不同

回复 我是大钊: 用同一个账号试一下 排除下你AppleID的问题

楼主您好 请问您解决了这个问题吗?最近我在云打包ipa 发布app审核的时候apple方拒审,说 ipad 版本15.1 点击apple登录无反应

苹果的拒绝原因 发我一下

回复 天生DR: We discovered one or more bugs in your app. Specifically, Sign in With Apple button was unresponsive. Please review the details below and complete the next steps.

Review device details:

回复 xhy_app: 你可以要求苹果 再给你提供一些 是不是他测试人员的账号有问题啊

回复 天生DR: 我自己在本地测试ipad 登录也没有弹出苹果登录,换各种iphone有,使用ipad登录时 plus.oauth.getServices 中没有 service.id为’apple’ uni.login中 provider为 'apple’也没有 manifest.json模块配置中勾选了Oauth中的苹果登录

回复 xhy_app: 是的,我的也是,iphone可以,ipad不行

我也是 说 ipad 版本15.1 点击apple登录无反应. 无解

有解决么 我也遇到同样的问题

这是一个典型的 iOS 设备类型差异导致的授权问题。根据你的代码和描述,问题核心在于 plus.oauth.getServices 在 iPad 上无法获取到 apple 登录服务(servicenull),而在 iPhone 上正常。

主要原因分析:

  1. iOS 设备兼容性差异plus.oauth 模块在部分 iPad 机型或系统版本上可能存在兼容性问题,导致无法正确识别 Apple 登录服务。
  2. 系统设置限制:检查 iPad 的「设置」→「Apple ID」→「密码与安全性」中是否已启用「使用 Apple ID 登录的 App」选项。部分 iPad 可能默认未开启。
  3. HBuilderX 版本或基库问题:云端打包使用的 SDK 版本可能对 iPad 支持不完整。

解决方案:

  1. 检查系统设置:确保 iPad 已登录 Apple ID,并在系统设置中启用 Apple 登录功能。
  2. 更新 HBuilderX 和基库:将 HBuilderX 升级到最新版本(当前为 3.8+),并更新项目基库至最新,重新云端打包。
  3. 代码兼容性处理:在 plus.oauth.getServices 回调中增加设备类型判断,若 iPad 上无法获取服务,可尝试备用方案(如跳转网页授权)。
  4. 真机调试:使用 HBuilderX 的真机调试功能,在 iPad 上直接查看 services 列表内容,确认具体错误信息。

建议调整代码逻辑:services.find() 失败后,增加更详细的错误日志输出,例如:

console.log('所有可用服务:', services.map(s => s.id));
回到顶部