uni-app iOS打自定义基座无通知功能权限
uni-app iOS打自定义基座无通知功能权限
操作步骤:
- iOS自定义基座云打包
预期结果:
- 有通知功能
实际结果:
- 无通知功能
bug描述:
- iOS打自定义基座, 有勾选unipush1.0; app没有通知功能和权限, 之前都是有的
| 信息类别 | 内容 |
|----------------|----------------------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Mac |
| PC操作系统版本 | M1 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.99 |
| 手机系统 | iOS |
| 手机系统版本 | iOS 15 |
| 手机厂商 | 苹果 |
| 手机机型 | iPhone11 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
4 回复
是因为加了这个导致的、https://ask.dcloud.net.cn/question/166521
在使用 uni-app 开发 iOS 应用时,如果你自定义基座(即使用自定义的 .mobileprovision
文件和 .p12
证书)时,发现通知功能无法正常工作,可能是由于以下原因导致的:
1. 证书未开启推送通知功能
- 在 Apple Developer 后台,检查你的 App ID 是否启用了推送通知(Push Notifications)功能。
- 如果没有启用,你需要编辑 App ID,勾选推送通知功能,并重新生成
.mobileprovision
文件。
2. 推送通知证书未配置
- 确保你已经为 App ID 生成了推送通知证书(APNs 证书)。这个证书可以是开发环境或生产环境的。
- 推送通知证书需要与你的
.mobileprovision
文件匹配。
3. 自定义基座未包含推送通知权限
- 确保你的自定义基座中包含了推送通知的权限。你可以在
manifest.json
文件中配置推送通知权限:{ "app-plus": { "distribute": { "ios": { "UIBackgroundModes": ["remote-notification"] } } } }
- 这个配置会在 Info.plist 文件中添加
UIBackgroundModes
键,允许应用在后台接收推送通知。
4. 自定义基座的 .mobileprovision
文件问题
- 确保你使用的
.mobileprovision
文件与你的 App ID 和推送通知证书匹配。 - 如果
.mobileprovision
文件不包含推送通知权限,通知功能将无法正常工作。
5. 设备未授权推送通知
- 在 iOS 设备上,确保用户已经授权应用发送通知。你可以在应用启动时请求通知权限:
uni.authorize({ scope: 'scope.userNotification', success() { console.log('通知权限已授权'); }, fail() { console.log('通知权限未授权'); } });