iOS 国内老项目迁移文档
资源模块引用说明
注意:在引入新 SDK 之前需先删除项目中之前存在的老 SDK 以及一些依赖库和模块。以下是需要删除的资源(如果工程中未引入 acces_hoolai 文件夹下一些模块忽略即可)。channel_config.json 同样需要进行删除操作。
图:导入示例
迁移 SDK 资源下载方式
- 资源下载好进行解压导入 access_core 文件夹下的所有资源导入工程中(基础,必引入)
图:导入示例
模块资源说明
- libplatform-account-sdk.a —— 账号模块(必接)
- libplatform-block-account.a —— 国内登录模块(必接)
- libplatform-pay-sdk.a —— 支付模块(选接)
- libplatform-applelogin.a —— 苹果登录模块(选接)
- libplatform-wechatlogin.a —— 微信登录模块(选接)
- libplatform-qqlogin.a —— QQ 登录模块(选接)
- libplatform-crashsight.a —— CrashSight 模块(选接)
- libplatform-bugly.a —— Bugly 模块(选接)
- libplatform-qqshare.a —— QQ 分享模块(选接)
- libplatform-wechatshare.a —— 微信分享模块(选接)
- libplatform-appsflyer.a —— appsflyer 模块(选接)
- libplatform-analysys.a —— 方舟模块(选接)
模块引入及配置说明(必看)
- 在引入模块之前务必在项目 Info->URL Types->URL Schemes 设置 accesssdk+channelId,否则将导致初始化失败!
- channelId 需跟运营获取。
- 注意事项:如果同时接入 QQ 登录模块、QQ 分享模块,对应的模块文件夹 libs 只需引入一个其中一个即可,微信登录与微信分享模块同理。
- 需在 info 里把对应的 View controller-based status bar appearance 权限设置为 YES
SDK 接入环境搭建
系统 framework 引入
- 请在游戏工程中添加以下系统 Framework
- StoreKit.framework
- WebKit.framework
- Network.framework
- SystemConfiguration.framework
- AppTrackingTransparency.framework
- AdSupport.framwork
- CoreTelephony.framework
- iAd.framework
- AdServices.framework
- libz.tbd
- libc++.tbd
注:如果是引入国内登录模块 libplatform-block-account.a 需再次导入 libplatform-block-account_依赖的三方库_
引入通用资源到工程中
引入配置文件
- 文件名:access.config
- 配置文件引入方法: 同引入通用资源
- 资源通过运营获取
项目参数配置
- info.plist 文件中添加如下配置(用来申请获取 IDFA 权限:描述一般为:'游戏名'想访问您的设备标识符(IDFA)用于广告追踪),如图所示:
- 点击项目 target,选择 Build Setting tab 页,搜索 Other Linker Flags,双击后点击加号,添加为-ObjC 即可,已经添加过不用再添加。效果如图 1-2 所示
- 在 Info.plist 中配置 Privacy - Photo Library Additions Usage Description 项,类型选择 String,值为:将要访问您的相册
- 在 Info.plist 中配置 http 网络访问的支持,配置 App Transport Security Settings 项,类型为 Dictoionary,然后配置子项 Allow Arbitrary Loads,类型为 Boolean,值为 Yes
SDK 初始化
导入 SDK 头文件
objective-c
#import <AccessSDK/AccessAppDelegate.h>
#import <AccessSDK/AccessSDK.h>
#import <AccessSDK/UserExtDataKeys.h>
objective-c
#import <UIKit/UIKit.h>
#import <AccessSDK/AccessAppDelegate.h>
@interface AppDelegate :AccessAppDelegate
@property (nonatomic, strong) UIWindow *window;
@end
objective-c
@interface AppDelegate ()<InitCallback,UserCallback,PayCallback,ShareCallback>
@end
@implementation AppDelegate
@synthesize window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = [[ViewController alloc]init];
[self.window makeKeyAndVisible];
[[AccessSDK sharedInstance]initSDK];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
[super application:application supportedInterfaceOrientationsForWindow:window];
return UIInterfaceOrientationMaskLandscape;
}