阿里云 SDK 配置 请依官方为主 毕竟已经很详细了
https://help.aliyun.com/document_detail/30072.html
SDK 配置流程 :
1、导入下载好的 OneSDK
引入 Framework 在 Xcode 中,直接把下载 SDK 目录中的 framework 拖入对应 Target 下即可,在弹出框勾选 Copy items if needed。
oneSDK 目录结构:
- CloudPushSDK.framework
- AlicloudUtils.framework
- UTDID.framework
- UTMini.framework
- AlicloudSender.framework
- EMASRest.framework
2、添加公共包依赖 在 Build Phases -> Link Binary With Libraries 中,引入下列的公共包:
- libz.tbd
- libresolv.tbd
- CoreTelephony.framework
- SystemConfiguration.framework
- UserNotifications.framework(iOS 10+)
- ibsqlite3.tbd
3、特殊要求
- 应用的 targets -> Build Settings -> Linking -> Other Linker Flags,请加上 -ObjC 这个属性,否则推送服务无法正常使用。
- 移动推送 iOS SDK 已经完成 ATS 适配,请求都以 HTTPS 发出,无需在 Info.plist 中进行 ATS 配置。
4、在AppDelegate.m 里面完成配置
- 工程引入头文件
# import <CloudPushSDK/CloudPushSDK.h>
5、Xcode 设置
- 在 TARGET 下 Capabilities 勾选 Backgroud Modes -> Remote notifications,
- 主要是 iOS7 之后,苹果支持后台运行,如果这里打开后,当接收到远程推送后,程序在后台也可以做一些处理。
6、常遇见的问题:
- 在项目 target 中,打开 Capabilitie —> Push Notifications,并会自动在项目中生成 .entitlement(ɪn'taɪt(ə)lmənt 权利 )文件。(很多同学升级后,获取不到 deviceToken,大概率是由于没开这个选项)
Capabilitie —> Push Notifications 自动生成 .entitlement 文件 - 确保添加了 UserNotifications.framework,并 import 到 AppDelegate,记得实现 UNUserNotificationCenterDelegate 。
# import <UserNotifications/UserNotifications.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate>