AnySDK Framework
Cocos Creator built-in Cocos engine includes AnySDK Framework libraries. The platform project that built by developer already includes AnySDK Framework. The chapter introduces how to use AnySDK selectivity.
Use AnySDK
Native
- According to AnySDK Official Documentation integrates AnySDK's relevant interface directly
H5
Check the AnySDK option when you built web-mobile project
According to AnySDK H5 Integrated Documentation integrates AnySDK H5's relevant interface directly
No need to use AnySDK
If developers do not need to use AnySDK, currently only support to delete the relevant files manually. Steps:
Delete the following from the
frameworks/runtime-src/Classesdirectory:jsb_anysdk_basic_conversions.cpp manualanysdkbindings.cpp jsb_anysdk_protocols_auto.cpp SDKManager.cpp jsb_anysdk_basic_conversions.h manualanysdkbindings.hpp jsb_anysdk_protocols_auto.hpp SDKManager.hDelete the following from the
main.jsfile:// anysdk scripts if (cc.sys.isNative && cc.sys.isMobile) { jsList = jsList.concat(['jsb_anysdk.js', 'jsb_anysdk_constants.js']); }
Need to add a folder build-templates in the project path, the sub-folder in build-templates should named with platform. Copy main.js that deleted code to sub-folder
Folder Structure:
```
project-folder
|--assets
|--build
|--build-templates
|--web-mobile
|--main.js
|--jsb-binary
|--main.js
|--jsb-default
|--main.js
```
Eclipse project
Delete
libsdirectory‘slibPluginProtocol.jarfileDelete the following from the
resdirectory:drawable/plugin_btn_close.png drawable/plugin_ui_ad.png values-en/plugin_string.xml values/plugin_string.xml layout/plugin_ads.xml layout/plugin_login.xmlDelete
LOCAL_WHOLE_STATIC_LIBRARIES := PluginProtocolStaticfrom theAndroid.mkfile in thejnidirectory.Delete the following from the
Android.mkfile in thejnifolder:LOCAL_SRC_FILES := ../../Classes/SDKManager.cpp \ ../../Classes/jsb_anysdk_basic_conversions.cpp \ ../../Classes/manualanysdkbindings.cpp \ ../../Classes/jsb_anysdk_protocols_auto.cppDelete the macro definition
APP_CPPFLAGS := -DPACKAGE_ASfrom theApplication.mkfile under thejnidirectory.Modify
src/org/cocos2dx/javascript/SDKWrapper.javafile'sprivate final static boolean PACKAGE_AS = true;,truechanges tofalse
Android Studio project
Delete
libsdirectory'slibPluginProtocol.jarfileDelete the following from the
resdirectory:mipmap/plugin_btn_close.png mipmap/plugin_ui_ad.png values-en/plugin_string.xml values/plugin_string.xml layout/plugin_ads.xml layout/plugin_login.xmlDelete the following from the
Android.mkfile in thejnifolder:LOCAL_WHOLE_STATIC_LIBRARIES := PluginProtocolStaticDelete the following from the
Android.mkfile in thejnifolder:LOCAL_SRC_FILES := ../../Classes/SDKManager.cpp \ ../../Classes/jsb_anysdk_basic_conversions.cpp \ ../../Classes/manualanysdkbindings.cpp \ ../../Classes/jsb_anysdk_protocols_auto.cppDelete the macro definition
APP_CPPFLAGS := -DPACKAGE_ASfrom theApplication.mkfile under thejnidirectory.Modify
src/org/cocos2dx/javascript/SDKWrapper.javafile'sprivate final static boolean PACKAGE_AS = true;,truechanges tofalse
Xcode project
Delete
libPluginProtocol.alibraryXcode delete
libPluginProtocol.areferenceXcode delete
Classesfile reference:jsb_anysdk_basic_conversions.cpp manualanysdkbindings.cpp jsb_anysdk_protocols_auto.cpp SDKManager.cpp jsb_anysdk_basic_conversions.h manualanysdkbindings.hpp jsb_anysdk_protocols_auto.hppDelete preprocessor
PACKAGE_AS
Web project
Manual: delete
index.htmlfile<script charset="utf-8" id="protocols" type="text/javascript"> var protocols = document.createElement("script"); protocols.onload = function () { anysdk.agentManager.init(); anysdk.agentManager.loadAllPlugins(function (code, msg) { }); }; protocols.src = "http://statics.h5.anysdk.com/protocols/protocols.js"; document.body.appendChild(protocols); </script>Auto: no check
AnySDKoption when built-in
After the delete AnySDK still need to use
Use Cocos Console command to call cocos package import -b anysdk -p project-path --anysdk.
Update AnySDK Framework
Use Cocos Console command to call cocos package update -p project-path --anysdk, updates can be realized.
FAQ
Q: Crash in channel package
Reason:
frameworks/runtime-src/Classes/SDKManager.cppfile'sloadAllPluginsfunction has been invokedinitfunction in built-in Creator project,it has been unable to be taken effect that developers invoked in JS codeSolution: No need to invoke initialize interface, but the developer need to modify the
loadAllPluginsfunction offrameworks/runtime-src/Classes/SDKManager.cppfile and add appKey, appSecret, privateKey, oauthLoginServer parameters.