brainCloud C++ 库
感谢下载 brainCloud C++ 客户端库!以下是一些开始使用时的注意事项。有关 brainCloud API 的更多信息,包括示例教程,可以在以下找到
http://getbraincloud.com/apidocs/
如果您尚未注册或想登录到 brainCloud 门户,可以在此操作
https://portal.braincloudservers.com/
在 Visual Studio 中构建
先决条件
- git 或 brainCloud 下载的 zip 存档
- Visual Studio 17 2022. 但 2013 年以后的版本都应该可以工作。
- CMake https://cmake.com.cn/
步骤(命令行在 PowerShell 中执行)
-
在您的 PC 上某个位置克隆仓库,然后 cd 到它。
git clone https://github.com/getbraincloud/braincloud-cpp.git cd braincloud-cpp
-
更新子模块,以便在构建时包含第三方库。
git submodule update --init --recursive
-
创建一个离源构建文件夹,然后 cd 到它。
mkdir build cd build
-
使用 cmake 生成解决方案。
cmake ..
您可以使用生成器命令指定 Visual Studio 版本
cmake -G"Visual Studio 16 2019" .. cmake -G"Visual Studio 17 2022" ..
或者如果您正在为 UWP 构建,则执行以下操作
cmake -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0" -DCMAKE_GENERATOR_PLATFORM=x64 -DBUILD_TESTS=ON ..
-
从文件资源管理器中,输入
"explorer ."
,在 Visual Studio 中打开brainCloud.sln
文件并使用所需配置构建 brainCloud 项目。发布/调试/静态库或共享库等。 -
您也可以在壳命令行中构建 brainCloud.lib。
cmake .. cmake --build . --target brainCloud
为 Linux 或 Mac 构建
先决条件
- git 或 brainCloud 下载的 zip 存档
- C++ 编译器
- Ninja (可选,以实现更快的构建)
- CMake https://cmake.com.cn/
- libcurl-dev 与 openssl
- pthread
步骤(命令行在 PowerShell 中执行)
- 在您的 PC 上某个位置克隆仓库,然后 cd 到它。
git clone https://github.com/getbraincloud/braincloud-cpp.git cd braincloud-cpp
- 更新子模块,以便在构建时包含第三方库。
git submodule update --init --recursive
- 创建一个离源构建文件夹,然后 cd 到它。
mkdir build cd build
- 使用 cmake 生成解决方案,并指定是调试还是发布。如果你正在为 XCode 生成,请按照以下步骤操作
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_GENERATOR=Xcode ..
- 构建 brainCloud
make
或者,
cmake --build . --config Release
其他 IDE/构建系统支持
使用 cmake --help 查看可用的生成器。然后,使用以下命令:
cmake -G"CodeBlocks" ..
cmake -G Ninja ..
CLion
- 在 CLion 中打开 braincloud-cpp 文件夹。
- 在 Clion 中设置 CMake 选项 > 设置...对于 Windows,设置
-DSSL_ALLOW_SELFSIGNED=ON -DCMAKE_GENERATOR_PLATFORM=x64
- 选择构建 > 构建 'brainCloud' 或者,直接将 brainCloud 添加到你的 cmake 项目中(见下文)。
为 Android 构建
通过直接将 brainCloud 添加到你的 NDK 应用程序的 CMake 项目中执行以下步骤。
将 brainCloud 添加到您的应用程序的 CMake 项目中。
找到 CMakeLists.txt
所在的目录。例如,如果是 Android 项目,请在 YourAppDir/app/src/main/cpp/
内执行以下步骤。
-
将存储库克隆到您的子模块中,例如在
./thirdparty/
路径。mkdir thirdparty cd thirdparty git submodule add https://github.com/getbraincloud/braincloud-cpp.git
-
更新子模块,以便在构建时包含所需库。
cd braincloud-cpp git submodule update --init --recursive
-
将子目录添加到您的
CMakeLists.txt
中,例如add_subdirectory(./thirdparty/braincloud-cpp) target_link_libraries(${PROJECT_NAME} brainCloud) # Note the capital 'C'
或者
add_subdirectory(/path/to/braincloud-cpp ./builddir/braincloud-cpp) list(APPEND includes PUBLIC /path/to/braincloud-cpp/include/) list(APPEND includes PUBLIC /path/to/braincloud-cpp/libs/jsoncpp-1.0.0) list(APPEND libs brainCloud) target_include_directories(${PROJECT_NAME} ${includes}) target_link_libraries(${PROJECT_NAME} ${libs})
-
仅适用于 Android 应用,请别忘了在
AndroidManifest.xml
中添加INTERNET
权限,否则 brainCloud 不会工作。<uses-permission android:name="android.permission.INTERNET" />
Cocoapod 安装
库通过 CocoaPods
分发。为了安装库,只需将以下内容添加到您的 Podfile
中。
pod 'BrainCloudCpp'
或者,
pod 'BrainCloudCpp', '4.xx.y'
如果您是 CocoaPods
新手,您可以在此处找到如何设置 Xcode 项目的文档
https://guides.cocoapods.org.cn/
将内容添加到 Podfile 后,运行以下命令
pod update
故障排除
以下是您可能在尝试首次连接到 brainCloud 时遇到的一些常见错误。
- 未设置 App id:请确认您已在
initialize()
方法中正确设置了 App id 和 App 密钥。 - 平台未启用:请确认您已在门户中启用了您的平台。
如果您仍有问题,请登录门户,并通过帮助系统(右下角的问号和聊天气泡图标)联系我们。
BrainCloud 摘要
BrainCloud 是一个现成的后端平台,用于开发功能丰富的游戏、应用程序和物联网设备。BrainCloud 提供您所需的功能,以及一套全面的工具来支持您的团队在开发、测试和用户支持期间的工作。
BrainCloud 包含以下内容:
- 云服务 - 高级软件即服务(SaaS)后端
- 客户端库 - 本地客户端库(SDKs)
- 设计门户 - 一个允许您设计和调试应用程序的门户
- BrainCloud 架构
BrainCloud 外部包装器和 BrainCloud 客户端之间有什么区别?
包装器包含围绕 BrainCloud 客户端的用户体验改进。它可能包含特定于设备的代码,例如在 Android 或 iOS 设备上序列化用户的登录 ID。建议默认使用包装器。
我该如何初始化 BrainCloud?
如果使用包装器,请使用以下代码。
_bc = new BrainCloudWrapper(); // optionally pass in a _wrapperName
_bc->initialize("https://api.braincloudservers.com/dispatcherv2", _appId, _secret, _appVersion, _companyName, _appName);
您的 _appId, _secret 已经在 BrainCloud 控制台中设置。在“设计 | 核心应用信息” > “应用程序 ID”下。
_wrapperName 前缀将保存包装器将执行的操作。如果您计划运行多个 BrainCloud 实例,请使用 _wrapperName。
升级了吗?
如果您的应用已经开始运行,您不应该指定_wrapperName - 否则,库将在错误的位置查找您的用户的匿名ID和profileID信息。只有当您打算修改保存数据时才添加名称。
_companyName和_appName也用于确定文件名。例如:bitHeads.exampleApp,或者mainWrapper.bitHeads.exampleApp
_appVersion是应用程序的当前版本。_appVersion低于您在brainCloud上定义的最低版本将阻止用户访问服务,直到他们更新到您提供的最新版本。
如何保持brainCloud SDK更新?
在您项目的更新循环中,您需要更新brainCloud客户端,以便它可以检查响应。
为此,您需要调用runCallbacks();
_bc->runCallbacks();
如何使用brainCloud对用户进行认证?
使用brainCloud Wrapper进行认证的最简单形式是匿名认证。
_bc->authenticateAnonymous(_callback);
此方法将创建一个帐户,并继续使用在本地保存的匿名ID。
Your _callback将继承自IServerCallback,并包含处理brainCloud服务器响应所需的函数。
要使用指定的匿名ID登录,请使用brainCloud客户端。
_bc->getBCClient()->getAuthenticationService()->setAnonymousId(_anonymousId); // re-use an Anon id
_bc->getBCClient()->getAuthenticationService()->setAnonymousId(_bc->getBCClient()->getAuthenticationService()->generateAnonymousId().c_str()); // or use brainCloud to generate one
_bc->getBCClient()->getAuthenticationService()->authenticateAnonymous(_forceCreate, _callback);
将_forceCreate设置为false将确保用户只能登录到现有帐户。将其设置为true将允许用户注册新帐户
如何将电子邮件附加到用户的brainCloud个人资料?
用户在brainCloud创建匿名账户后,可能会想要附上电子邮件或用户名,以便他们可以在另一个平台访问账户或当其本地数据被删除时。附加电子邮件验证将类似如下。
_bc->getBCClient()->getIdentityService()->attachEmailIdentity(_email, _password, _callback);
存在许多身份验证类型。您还可以合并配置文件和分离身份。有关更多信息,请参阅brainCloud文档:http://getbraincloud.com/apidocs/apiref/?java#capi-auth
构建和运行测试
请参阅Jenkinsfile了解平台构建和单元测试流程。另请参阅tests/README.md。
要本地运行单元测试,您可以使用autobuild脚本runtests.sh或runtest.bat。流程如下
- 以调试配置运行cmake,并将BUILD_TESTS设置为ON。
- 以调试配置运行cmake构建目标bctests。
- 创建/复制文件ids.txt到将运行测试的文件夹中。输入您的服务器URL、应用ID和密钥。
- 使用所需的测试过滤器执行。
归属
brainCloud C++ Windows库使用libwebsockets v3.0.1。Linux和Mac使用libwebsockets v4.3-stable。也依赖于MBedTLS v2.8。并重新分发公共领域库JsonCpp。
Cocoapod 依赖项
brainCloud库附带SSKeychain,并需要SocketRocket和JsonCpp Cocoapods。
重要的子模块说明
这些内容作为子模块被包含,因此可以使用以下方法检索:
git submodule update --init --recursive
然而,由于已初始化的版本已知能稳定构建和运行,因此不应更新或拉取到其他版本。
JsonCpp最近已经被设置为子模块(自brainCloud 4.15版本起)所以如果拉取或更改分支,应该删除现有的文件夹lib/jsoncpp-1.0.0/,否则将出现git错误。