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),并在handleOpenURLopenURL里面调用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一下,也很简单,terminalcd到对应的Pods文件夹所在路径,重新pod install一下即可