《快速集成指南》

Android 接入

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

获取 AnySDK Framework

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

下载页面

说明: libAnySDKForUnity.unitypackage AnySDK 插件包文

导入 AnySDK framework for unity

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

下载页面

下载页面

下载页面

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

注意事项

若开发者需要使用自己的 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) 框架进行下载,打开以后可以得到如下图的目录结构:

下载页面

说明: 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)导入到工程里面

下载页面

下载页面.

下载页面

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

下载页面

框架依赖库

导出 Xcode 工程后需要添加以下依赖库

CFNetwork.framework
CoreFoundation.framework
MobileCoreServices.framework
SystemConfiguration.framework
libz.dylib(Xcode7:libz.tbd)
Security.framework

添加工程配置

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

下载页面

客户端接入代码

一、对 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 参数是游戏服务提供的用来做登陆验证转发的接口地址,在此处配置的接口地址仅用于 SIMSDK 测试模式下(即直接运行母包时)做登录时框架请求的地址,而在正式打出渠道包的时候会被替换成相应渠道在打包工具中配置的地址参数。

注意事项

  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”。(已知 Unity 4.3.3、4.5.1 会出现这样的问题。)

【评论区】