废言
这算是Unity接入微信开放平台的第二篇了,第一篇在这:
在完成微信SDK接入的过程中,查看过网络上不少的文章,不过似乎没有哪一篇是能文章能够一气呵成解决问题的,因此自己有了斗胆一试的想法,所以才有了这两篇文章的诞生,希望能够后面接触的小伙伴节约一些时间。
本文的亮点
最后的完成品,不需要在Xcode中修改、添加任何内容,直接Unity编译到Xcode然后安装到真机
一、开始 Universal Links的配置
这部分的内容我就不细讲了,相对比较简单,主要是苹果开发者和微信开发者后台的设置,然后把apple-app-site-association这个文件放到域名根目录即可(域名必须支持HTTPS) apple-app-site-association 这个文件的内容类似下面这样:
{
"applinks": {
"apps": [],
"details": [{
"appID": "TeamID.com.yourapp.bundleID",
"paths": ["*"]
}
]
}
}
二、微信SDK的导入SDK包含4个文件: libWeChatSDK.a,WXApi.h,WXApiObject.h, WechatAuthSDK.h
将这四个文件放入Unity项目的 Assets/Plugins/iOS 目录下,这个目录下的文件会自动打包至Xcode项目的Libraries目录下。
在Unity的Inspector中设置libWeChatSDK.a,勾选 Framework dependencies/Security 和 Rarely used frameworks/Webkit,如下图:
设置完之后记得点 Apply 。
三、扩展UnityAppController
扩展UnityAppController的目的很简单,这样就不需要每次导出Xcode项目之后,都去修改UnityAppController.mm中的代码。 这个我主要参考了这篇博文:https://blog.mutoo.im/2015/09/make-subclass-from-unityappcontroller/ 但是最终我用的代码版本 ,是在他的基础上去掉了一部分。 创建MyAppController.m文件 ,代码如下:
//
// MyAppController.m
// Unity-iPhone
//
// Created by Jooki Tsui on 2020/11/13.
//
#import "WXApi.h"
#import "UnityAppController.h"
@interface MyAppController : UnityAppController
@end
IMPL_APP_CONTROLLER_SUBCLASS (MyAppController)
@implementation MyAppController
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity
#if defined(__IPHONE_12_0) || defined(__TVOS_12_0)
restorationHandler:(void (^)(NSArray > * _Nullable restorableObjects))restorationHandler
#else
restorationHandler:(void (^)(NSArray * _Nu