Unity
升级后再导入到原有的 Xcode
项目工程会报版本不匹配的错误,Replace
会直接把之前的库、部分修改的代码覆盖掉,我们项目工程涉及到的主要有以下几个点,记录一下:
-
info.plist
增加几个常用的key-value
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
</array>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>是否允许此APP访问你的媒体资料库?</string>
-
SDK
:
- 重新导入
AlipaySDKFramework
及其依赖库(Xcode 11
要移除AlipaySDK
里面i386
和x86_64
架构) - 重新导入
wechat
依赖库 -
Wechat
要在UnityAppController.mm
里面注册AppId
(didFinishLaunchingWithOptions
),并在handleOpenURL
openURL
里面调用handleOpenURL
回调
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
::printf("-> applicationDidFinishLaunching()\n");
...body...
[WechatApiManager registerApp];
return YES;
}
// UIApplicationOpenURLOptionsKey was added only in ios10 sdk, while we still support ios9 sdk
- (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary<NSString*, id>*)options
{
id sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey], annotation = options[UIApplicationOpenURLOptionsAnnotationKey];
NSMutableDictionary<NSString*, id>* notifData = [NSMutableDictionary dictionaryWithCapacity: 3];
if (url) notifData[@"url"] = url;
if (sourceApplication) notifData[@"sourceApplication"] = sourceApplication;
if (annotation) notifData[@"annotation"] = annotation;
AppController_SendNotificationWithArg(kUnityOnOpenURL, notifData);
return [WechatApiManager handleOpenURL:url];
//return YES;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WechatApiManager handleOpenURL:url];
}
-
BitCode
设置为No
- 由于使用了
CocoaPod
载入第三方插件,因此pod
需要重新intsall
一下,也很简单,terminal
cd
到对应的Pods
文件夹所在路径,重新pod install
一下即可