Unity接入微信SDK——iOS(一 接入微信SDK)


下载微信SDK

下载地址:微信开放平台

导出Unity Xcode项目

导出Unity Xcode项目,并打开

微信SDK导入Xcode项目

将 SDK 文件中包含的 libWeChatSDK.a,WXApi.h,WXApiObject.h 三个文件添加到你所建的工程中(如下图所示,在 Unity-iPhone 工程的目录下创建 /Platform/WxAPI)。

配置Xocde相关属性

1.微信开放平台新增了微信模块用户统计功能,便于开发者统计微信功能模块的用户使用和活跃情况。开发者需要在工程中链接上:

  • SystemConfiguration.framework
  • libz.tbd
  • libsqlite3.0.tbd
  • libc++.tbd
  • Security.framework
  • CoreTelephony.framework
  • CFNetwork.framework。

2.在你的工程文件中选择 Build Setting ,在”Other Linker Flags”中加入”-Objc -all_load”

注: 如果导出 Xcode 项目中包含其他静态库(如tolua.a)的话, 会出现其他静态库 需要将 -Objc -all_load修改成
-Objc -force_load $(SRCROOT)/Platform/WxAPI/WeChatSdk.a

3.在 Xcode 中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。

4.在 Xcode 中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin wechat(如下图所示)。

5.在 Platform 目录下创建 xxx.h 文件,增加 WXApiDelegate 协议

xxx.h文件

#import <Foundation/Foundation.h>
#import "WXApi.h"@interface WXApiManager : UIResponder<UIApplicationDelegate,WXApiDelegate>/*WXApiManager 实例化*/
+ (instancetype)sharedManager;
@end

6.在 Platform 目录下创建 xxx.mm 文件,并实现和微信终端交互的具体请求与回应

要实现和微信终端交互的具体请求与回应,因此需要实现 WXApiDelegate 协议的两个方法

-(void) onReq:(BaseReq*)req
onReq是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时,会切回到微信终端程序界面。-(void) onResp:(BaseResp*)resp
如果第三方程序向微信发送了sendReq的请求,那么onResp会被回调。sendReq请求调用后,会切到微信终端程序界面。

xxx.mm文件

#import "WXApiManager.h"
@implementation WXApiManagerextern "C"
{//检测是否安装客户端bool RegisterWx(){return [WXApi isWXAppInstalled];}//获取授权void AuthorizeWx(){//构造SendAuthReq结构体SendAuthReq* req =[[SendAuthReq alloc ] init ];req.scope = @"snsapi_userinfo" ;req.state = @"wechat_sdk" ;//参数随意//第三方向微信终端发送一个SendAuthReq消息结构[WXApi sendReq:req];}
}#pragma mark - LifeCycle+(instancetype)sharedManager {static dispatch_once_t onceToken;static WXApiManager *instance;dispatch_once(&onceToken, ^{instance = [[WXApiManager alloc] init];});return instance;
}#pragma mark - WXApiDelegate
- (void)onResp:(BaseResp *)resp {if ([resp isKindOfClass:[SendAuthResp class]]){SendAuthResp *temp = (SendAuthResp*)resp;if(temp.code!=nil)UnitySendMessage("GameManager", "AuthorizeToWx", [temp.code  UTF8String]);//将Code信息返回给Unity}
}- (void)onReq:(BaseReq *)req {}@end

7.要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。
在 Classes 目录下找到 UnityAppController.mm 文件,在 UnityAppController 的 didFinishLaunchingWithOptions 函数中向微信注册id)。

8.重写 UnityAppController 的 handleOpenURL 和 openURL 方法

常见的一些报错

1、编译报错 “does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64”
低版本的unity(5.3.2以下)是不支持bitcode的,但是高版本的Xcode(7.0以上)默认是支持bitcode,这样他们就有冲突 设置一下bitcode = no 即可


2.
报错:

解决方案:


3.
报错:

解决方案1:在项目中移除Libraries的引用,重新添加并删除libil2cpp文件夹的引用

解决方案2: 把library那一行的双引号去掉即可… 当然如果放在其他目录的话, 需要自己添加目录路径

Unity接入微信SDK——iOS(接入微信SDK)相关推荐

  1. TradPlus SDK - IOS接入心得

    前言:本文包含Unity接入ios sdk以及原生ios sdk的接入步骤,注意xcode版本的更新 一.后台配置 后台配置参照 TradPlus SDK – Unity-Android接入心得 一文 ...

  2. Taro-RN使用 react-native-wechat-lib 集成微信支付-IOS(从微信注册应用到应用接入微信支付)全*

    组件库版本 "@tarojs/taro": "3.3.9", "@tarojs/taro-rn": "^3.3.9", ...

  3. android微信逆向工程,iOS逆向 - 微信自动添加好友

    相关源码:Github地址 一.前言 本篇主要实现在微信上自动添加好友,从而熟悉 iOS 逆向分析的过程. 二. 工具 2.1 MacBook 软件 制作 Tweak 的工具 端口转发,可以让我们通过 ...

  4. 解决ios在微信内置浏览器中video播放的全屏问题

    video 标签在部分的安卓微信和iOS的微信浏览器上点击播放会默认全屏展示 解决部分安卓默认全屏展示,给video标签加如下属性 x5-video-player-type="h5-page ...

  5. cocos creator接入微信登陆sdk ios篇

    cocos creator接入微信登陆sdk ios篇 背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇 步骤 去微信开放平台下载ios平台所需要的sdk 在" ...

  6. android友盟微信授权登录清除,【转载】Android友盟SDK微信授权登录接入

    微信授权登录接入需要先到微信开放平台申请好应用的APPID,交纳300大洋费用得到授权登录权限后才能使用,此处不再赘述. 接入的两种方式 -- 微信SDK接入:使用微信官方SDK接入,需要分" ...

  7. uni-app 微信小程序接入高德SDK

    uni-app 微信小程序接入高德SDK 参考文档:https://lbs.amap.com/api/wx/gettingstarted 一.获取高德Key 配置高德key 二.获取高德key的操作步 ...

  8. 微信支付以及接入SDK支付

    微信的支付流程分为:用户端和商户系统. 用户端的流程: 商户的流程: 微信的开发步骤分为两个模式,商户可以根据支付场景来选择支付方式: [模式一]:商户后台系统根据微信支付规则链接生成二维码,链接中带 ...

  9. 使用SDK快速接入各大平台快游戏 微信小游戏 QQ小游戏使用方法-附源码下载地址

    使用SDK快速接入各平台快游戏 微信小游戏 QQ小游戏 使用方法 引入SDK文件 // 该方式引入可以直接使用qgsdk<script src="qg-sdk.min.1.0.4.js ...

最新文章

  1. python表白程序-python如何写出表白程序
  2. 人工智能企业云知声首度公开“医疗+AI”战略
  3. 【图表】java 24年发展历史及长期支持jdk版本(up to 2020.04)
  4. git生成秘钥配置SSH公钥的简单方法
  5. 华为杨超斌:5G方面领先同行至少12个月到18个月
  6. PostgreSQL数据库修改sql表的方法汇总
  7. 关于比较两个字节数组是否内容相同
  8. Tomas Mikolov's Recurrent Neural Networks Language Modeling Toolkit
  9. mysql initialsize,单机数据库优化
  10. 计算机启动到安全模式,电脑正常开机会进入安全模式怎么办
  11. 在Unity中实现基于粒子的水模拟
  12. Dev-C++安装OpenCV
  13. 201808月份校招提前批面试总结
  14. 计算机行业就业的发展前景怎么样?
  15. linux 内核 面试,LINUX内核经典面试题
  16. 基于web的HMI / SCADA软件
  17. Mysql多表关联时因关联字段类型不一致导致索引失效及查询错误
  18. (22)UVM 虚拟类序列(virtual sequence)
  19. BLH,xyH,XYZ在坐标系当中各代表什么意思?
  20. 人工智能--生成对抗网络

热门文章

  1. html文档生成pdf离线文件,将Swagger2文档导出为HTML或markdown等格式离线阅读解析.pdf...
  2. 快速模板匹配算法+度量公式要求+旋转坐标公式
  3. 全新的Unity移动游戏优化解决方案
  4. 移动支付新发展:开拓支付领域,不止于支付服务
  5. RD算法及其距离徙动校正(原理及matlab仿真)
  6. 网络系统管理赛项之Debian栏目文章导航
  7. 一本看到技巧又能保持阳光心态励志书(来自苏鹏的推荐)
  8. 区块链中的Merkle树
  9. php授权系统原理,Mysql权限系统工作原理-PHP教程,PHP基础
  10. 业精于勤荒于嬉 行成于思毁于随