手动集成Tencent SDK遇到的坑!!!

2023-11-08 22:30
文章标签 sdk 遇到 集成 手动 tencent

本文主要是介绍手动集成Tencent SDK遇到的坑!!!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

手动集成的原因

由于腾讯未把Tencent SDK上传到Github中,所以我们不能通过Cocoapods的方式集成,只能通过官方下载其SDK手动集成。

Tencent SDK手动集成步骤

1.访问腾讯开放平台SDK下载界面,找到并下载iOS_SDK_V3.5.1。(目前最新)

2.解压该压缩包,会看到TencentOpenApi(Lite)_3文件夹,里面的两个文件(TencentOpenApi_IOS_Bundle.bundle、TencentOpenAPI.framework)就是我们要集成进行的;

3.将以上两个文件导入到项目中,如图所示:

导入TencentOpenAPI框架

4.项目添加QQ白名单(把以下schemes添加到项目的info.plist,以源码的方式打开即可):

<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV4</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
</array>

5.添加URL Type,登录腾讯开放平台,获取已经注册好的应用ID,来注册URL Schemes,为tencent+APP ID

6.在腾讯开放平台验证Universal Link。(举例:https://m.mojidict.com/qq_conn/APPID,这一步很重要,涉及到跳转回第三方APP事件)

7.导入依赖框架:

Foundation.framework
UIKit.framework
libc++.tbd
libsqlite3.tbd
Security.framework
libz.tbd
libiconv.tbd
CoreTelephony.framework
CoreGraphics.framework
SystemConfiguration.framework
libz.1.1.3.tbd

8.最后,编译并运行项目,Xcode未报错。So easy的感觉,看似集成成功了!

 

但是…

当导入以下框架并初始化SDK时,

#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>


[[TencentOAuth alloc] initWithAppId:MOJiQQAppID andUniversalLink:MOJiQQAppUniversalLink delegate:self];

报错如图所示:

 

 

 

网上查了各种资料都不好使!!!!真的,什么都查过了。试了,还是无解!

突然想到腾讯技术客服…要不问问???

我TM放弃了!!

腾讯没有客服啊…

后面尝试运行官方提供的demo,编译是可以通过的。但是为什么我这里创建的项目就不好使了呢??

一度怀疑人生…

此时经过一番折腾…

然后直盯盯地看着这些错误警告,不知怎滴,突然发现:

上面几张图中,其中错误1、错误3,这两张图,反馈的错误是不能构建模块TencentOpenApi,奇怪了,为什么腾讯的SDK开放给我们的头文件,会有如下导入操作:

#import "sdkdef.h"
#import "QQApiInterfaceObject.h"


注意,我们在自定义框架的时候,都会有这么一段话:

// In this header, you should import all the public headers of your framework using statements like #import <XXX/PublicHeader.h>

然后给外部使用的头文件中,也需要以这这种方式导入头文件,这时候找到对应的头文件,手动分别修改为:


#import <TencentOpenAPI/sdkdef.h>
#import <TencentOpenAPI/QQApiInterfaceObject.h>

 

修改后图示:

把#import “sdkdef.h”改为#import <TencentOpenAPI/sdkdef.h>

把#import “QQApiInterfaceObject.h”改为#import <TencentOpenAPI/QQApiInterfaceObject.h>

继续步骤8…

9.再次编译运行项目,成功!!!(没办法,只能手动在框架里面修改了)



总结:

1.腾讯的SDK文档老旧,很多操作步骤都是多余的,不建议大家看,直接看这里即可;
坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

这篇关于手动集成Tencent SDK遇到的坑!!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/372882

相关文章

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项