快速集成指南

来自AnySDK 文档
跳转至: 导航搜索

Android接入

本文介绍的是AnySDK Framework For unity 集成流程和注意事项。

获取AnySDK Framework

为了集成AnySDK Framework,请在AnySDK客户端的“安妮市场”里,选择Unity(Android)框架进行下载,打开以后可以得到如下图的目录结构:
AnySDKFrameworkforunity目录结构.png

说明: libAnySDKForUnity.unitypackage AnySDK 插件包文件

导入AnySDK framework for unity

按下图所示,将libAnySDKForUnity.unitypackage导入到工程里面

导入AnySDKFrameworkForUnity 1.png

导入AnySDKFrameworkForUnity 2.png

导入AnySDKFrameworkForUnity 3.png

配置主Activity的方向

<activity
        android:name="com.anysdk.framework.unity.AnySDKActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:screenOrientation="填写相应方向portrait(竖屏) or landscape(横屏)">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

客户端接入代码

一、对AnySDK进行初始化。(建议在游戏前进行初始化)

string appKey = "AEE563E8-C007-DC32-5535-0518D941D6C2";
string appSecret = "b9fada2f86e3f73948f52d9673366610";
string privateKey = "0EE38DB7E37D13EBC50E329483167860";
string oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";
AnySDK.getInstance ().init (appKey, appSecret, privateKey, oauthLoginServer);

注:

1、appKey、appSecret、privateKey这三个参数是在打包工具客户端创建游戏之后生成的游戏唯一参数,可以在AnySDK客户端的游戏管理界面查看到。
2、而oauthLoginServer参数是游戏服务提供的用来做登陆验证转发的接口地址,在此处配置的接口地址仅用于sim sdk测试模式下(即直接运行母包时)做登录时框架请求的地址,而在正式打出渠道包的时候会被替换成相应渠道在打包工具中配置的地址参数。

注意事项

若开发者需要使用自己的Activity做启动项,必须重写Activity的生命周期方法,详见以下代码

import android.content.Intent;
import android.os.Bundle;
import android.content.res.Configuration;

import com.anysdk.framework.PluginWrapper;
import com.anysdk.framework.unity.AnySDKActivity;
static {
    System.loadLibrary("PluginProtocol");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    PluginWrapper.init(this);	
   AnySDKActivity.nativeLoadPlugins();
}

@Override
protected void onDestroy() {
    PluginWrapper.onDestroy();
    super.onDestroy();
}

@Override
protected void onPause() {
    PluginWrapper.onPause();
    super.onPause();
}

@Override
protected void onResume() {
    PluginWrapper.onResume();
    super.onResume();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    PluginWrapper.onActivityResult(requestCode, resultCode, data);
    super.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onNewIntent(Intent intent) {
    PluginWrapper.onNewIntent(intent);
    super.onNewIntent(intent);
}

@Override
protected void onStop() {
    PluginWrapper.onStop();
    super.onStop();
}

@Override
protected void onRestart() {
    PluginWrapper.onRestart();
    super.onRestart();
 }

@Override
public void onBackPressed() {
	PluginWrapper.onBackPressed();
	super.onBackPressed();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
	PluginWrapper.onConfigurationChanged(newConfig);
	super.onConfigurationChanged(newConfig);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
	PluginWrapper.onRestoreInstanceState(savedInstanceState);
	super.onRestoreInstanceState(savedInstanceState);
}

@Override
protected void onSaveInstanceState(Bundle outState) {
	PluginWrapper.onSaveInstanceState(outState);
	super.onSaveInstanceState(outState);
}

@Override
protected void onStart() {
	PluginWrapper.onStart();
	super.onStart();
}

iOS接入

本文介绍的是AnySDK Framework For unity 集成流程和注意事项。

获取AnySDK Framework

为了集成AnySDK Framework,请在AnySDK客户端的“安妮市场”里,选择Unity(iOS)框架进行下载,打开以后可以得到如下图的目录结构:
AnySDKFrameworkForUnity iOS.png

说明: libAnySDKForUnity_libc++.unitypackage和libAnySDKForUnity_libstdc++.unitypackage是两个不同的C++库的AnySDK插件包文件,根据自己需求选择。 目前Unity4.X使用的方式libAnySDKForUnity_libstdc++.unitypackage,Unity5.X使用的是libAnySDKForUnity_libc++.unitypackage

导入AnySDK framework for unity

按下图所示,将libAnySDKForUnity_libc++.unitypackage(或libAnySDKForUnity_libstdc++.unitypackage)导入到工程里面

导入AnySDKFrameworkForUnity 1.png

AnySDKFrameworkForUnity iOS Import.png

删除多余的Targets

目前打包工具只支持单个Target,Unity导出时会带一个Test的Target,直接将该Target和相关文件删除

UnityDel.jpg

若不想在原工程文件上操作,可以在同级目录下拷贝一份.xcodeproj,并且打开其包内容,删除xcuserdata文件夹和project.xcworkspace下的xcuserdata文件夹,修改/project.xcworkspace/contents.xcworkspacedata文件中的location值,为改名后的文件名,再对拷贝后的工程文件进行操作

IOSProcess02.png

框架依赖库

导出Xcode工程后需要添加以下依赖库
CFNetwork.framework
CoreFoundation.framework
MobileCoreServices.framework
SystemConfiguration.framework
libz.dylib(Xcode7:libz.tbd)

添加工程配置

打开项目工程配置,添加库的链接参数,在项目⼯程配置中,找到
Linking中的Linking Other Linker Flags,添加参数: -ObjC

Ios linking.jpg

客户端接入代码

一、对AnySDK进行初始化。(建议在游戏前进行初始化)

string appKey = "AEE563E8-C007-DC32-5535-0518D941D6C2";
string appSecret = "b9fada2f86e3f73948f52d9673366610";
string privateKey = "0EE38DB7E37D13EBC50E329483167860";
string oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";
AnySDK.getInstance ().init (appKey, appSecret, privateKey, oauthLoginServer);

注:

1、appKey、appSecret、privateKey这三个参数是在打包工具客户端创建游戏之后生成的游戏唯一参数,可以在AnySDK客户端的游戏管理界面查看到。
2、而oauthLoginServer参数是游戏服务提供的用来做登陆验证转发的接口地址,在此处配置的接口地址仅用于sim sdk测试模式下(即直接运行母包时)做登录时框架请求的地址,而在正式打出渠道包的时候会被替换成相应渠道在打包工具中配置的地址参数。

注意事项

1、接入AnySDK框架后只支持真机调试。
2、.a的文件名尽量不要修改(不同框架下文件名可能为"libPluginProtocol.a", "libPluginProtocol_libc++.a"或 "libPluginProtocol_libstdc++.a"),否则打包时检测框架版本号时会报错
3、若发现导出的Xcode工程无法打开,弹出“/Unity-iPhone.xcodeproj cannot be opened because the project file cannot be parsed.”错误,请将"libPluginProtocol_libc++.a"或 "libPluginProtocol_libstdc++.a"重命名为"libPluginProtocol.a.(已知Unity4.3.3、4.5.1会出现这样的问题。)
4、Unity更新2.1.1框架,打包后若报错"PluginWrapper.h" file not found,将该文件下载并添加到工程中,也可添加到打包前的工程中重新打包。链接: http://pan.baidu.com/s/1i3SXqO9 密码: a75m