iOS QQ分享报错--错误码:25105

问题及解决

问题:更换QQ分享相关配置。
APPID、APP Key、universalLink。
更换之后测试QQ分享唤起功能。QQ是拉起来了,但是报错了。
如下错误信息:
请添加图片描述
解决:
1、重新配置apple-app-site-association的json文件。
因为微信分享的时候也创建了该文件,现在QQ分享也需要配置该文件。
在原有的微信配置文件里面增加

{
               "appID": "appTeamID.bundleID",
              "paths": [ "*","/qq_conn/QQ申请下来的APPID/*" ]
         }

下面的就是微信、QQ分享所需要的文件。和之前微信分享配置一样,放在域名的根目录下或者子目录.well-known中,如果.well-known不存在,新建一下。
注意:必须支持https访问。
在这里插入图片描述
2、QQ开发者配置。
需要填写如下信息。
URL schema:不能超过30个字符
bundle Id: 就是项目的ID,这个是要和上面配置文件里面的bundle ID保持一致的。
appstore ID :需要登录进去appstore账号,找到该项目的APP信息,里面有AppleID。
universallink: 不需要填写域名的全连接,只需要填写host就可以。
例如:https://www.baidu.com/
填写的时候就可以:www.baidu.com
这个地方一定要按照要求填写 ,否则会造成验证不通过,从而造成QQ分享失败。

这两个地方重新配置完成之后,项目就可以正常调用分享了。

在这里插入图片描述

QQ分享完整配置流程

QQ开放平台配置

QQ开发平台链接
具体配置与上面的一样-----2、QQ开发者配置。

项目配置

在这里插入图片描述

下面👇🏻的配置如果有相同的域名只配置一个就可以了。
比如我的微信和QQ都需要配置link,我就可以配置这一个,让两者的link一样就可以了。
在这里插入图片描述

服务器配置

主要就是创建一个apple-app-site-association的文本。里面填写需要的配置信息。如下:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "appTeamID.bundleID",
                "paths": [ "*"]
            },{
               "appID": "appTeamID.bundleID",
              "paths": [ "*","/qq_conn/QQ申请的appid/*" ]
         }
        ]
    }
}

因为我的项目里面同事存在微信分享,所以该文件是有两个appid的值。如果你们的项目只需要QQ分享,就可以将第一个删除。

之后在遇到关于QQ分享的问题还会在这里补充。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Objective-C 中,使用 `std::string` 会报错的原因是 Objective-C 和 C++ 是两种不同的编程语言,它们的语法和特性不完全兼容。 Objective-C 是一种面向对象的编程语言,它是在 C 语言的基础上发展而来的,并且主要用于开发 macOS 和 iOS 平台的应用程序。Objective-C 的字符串类型是 `NSString`,它是 Foundation 框架提供的一个类,具有很多方便的字符串操作方法。 而 `std::string` 是 C++ 标准库提供的一个类,用于处理字符串。C++ 是一种支持面向对象编程的通用编程语言,与 C 语言相比,具有更多的高级特性和功能。 在 Objective-C 中,如果想要使用 `std::string`,需要进行一些额外的工作。首先,需要在文件的开头添加 `#import <string>` 语句来引入 C++ 的标准库。然后,需要使用 `[[NSString stringWithCString:stdString.c_str() encoding:NSUTF8StringEncoding]]` 这样的方法将 `std::string` 转换成 `NSString` 对象。 如果没有正确导入 C++ 的标准库或者没有进行正确的类型转换,使用 `std::string` 就会报错。所以,在 Objective-C 中使用 `std::string` 之前,需要确保已经正确导入标准库并进行了适当的类型转换。 总之,Objective-C 和 C++ 是两种不同的编程语言,对应于不同的字符串类型。在 Objective-C 中使用 `std::string` 会报错,需要进行额外的导入和类型转换才能正确使用。 ### 回答2: 在Objective-C中,无法直接使用std::string,因为std::string是C++中的标准库类型,并不是Objective-C的一部分。 如果在Objective-C代码中使用std::string,会导致编译错误,因为Objective-C编译器无法找到std::string的定义。 解决这个问题的一种方法是将std::string转换为NSString。可以使用NSString的initWithUTF8String方法将std::string转换为NSString对象。具体代码如下: ``` std::string cppString = "Hello, World!"; NSString* objcString = [[NSString alloc] initWithUTF8String:cppString.c_str()]; ``` 这样就可以使用objcString来表示相应的字符串了。 另外,如果需要在Objective-C中频繁使用C++的字符串操作,可以考虑将整个文件的后缀名改为.mm,这样文件就会被当做Objective-C++文件处理,这样就可以使用std::string了。 总之,Objective-C中无法直接使用std::string,但可以通过将其转换为NSString来使用。 ### 回答3: 在 Objective-C 中使用 std::string 可能会导致编译错误。这是因为 std::string 是 C++ 标准库中的类,而 Objective-C 是基于 C 的编程语言。虽然 Objective-C 允许使用 C++ 的一些特性,但不支持完全的 C++语法。 如果你在 Objective-C 中使用 std::string,并且遇到了编译错误,可能是因为编译器无法识别 std::string 这个类型。你可以尝试进行以下解决办法: 1. 使用 NSString 类型代替 std::string 类型。NSString 是 Objective-C 中用于处理字符串的类,可以满足大部分的字符串操作需求。 2. 将 std::string 转换为 NSString。可以使用 NSString 的 initWithCString:encoding: 方法将 std::string 转换为 NSString 对象,然后在 Objective-C 中进行操作。 3. 在 Objective-C++ 文件中使用 std::string。如果你的文件后缀为 .mm,那么这个文件实际上是 Objective-C++ 文件,支持 C++ 语法。在这种文件中,可以直接使用 std::string,而不会报错。 需要注意的是,在使用 std::string 时,还要考虑到 Objective-C 的内存管理机制。如果使用了 std::string,可能需要手动管理内存的释放和分配,以避免内存泄漏等问题。 总而言之,当在 Objective-C 中出现 std::string 报错时,可以尝试使用 NSString 类型代替,转换为 NSString 对象,或者将文件后缀改为 .mm 来解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力成为包租婆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值