5个版本
0.2.3 | 2022年9月12日 |
---|---|
0.2.2 | 2022年8月30日 |
0.2.1 | 2022年8月25日 |
0.2.0 | 2022年8月16日 |
0.1.9 | 2022年8月10日 |
在游戏开发类别中排名第815
170KB
2.5K SLoC
Crossbow Admob插件
关于
本项目是一个用Rust和Kotlin编写的,针对Google Play游戏服务的Crossbow插件。
支持的功能
功能 | 可用 |
---|---|
登录/登出 | ✅ |
成就 | 🆗 |
排行榜 | 🆗 |
事件 | 🆗 |
玩家统计 | 🆗 |
玩家信息 | 🆗 |
保存的游戏 | 🆗 |
✅ = 正常工作并已测试 — 🆗 = 正常工作但可能存在错误 — 🛠 = 开发中 — 📝 = 计划中 - ❌ = 不实现 - ❗ = 不计划实现
安装
只需像这样添加Rust依赖项
[dependencies]
crossbow = "0.2.3"
[target.'cfg(target_os = "android")'.dependencies]
play-games-services = "0.2.3"
最后,将以下内容添加到您的Crossbow Android配置中
[package.metadata.android]
plugins_remote = ["com.crossbow.play_games_services:play_games_services:0.2.3"]
入门指南
重要:在开始使用此插件之前,请遵循设置Google Play游戏服务官方指南中的说明。
设置AndroidManifest资源
创建您的资源目录,并在您的Cargo.toml
中添加以下内容以导入它
[package.metadata.android]
resources = ["./res/android"]
然后,在您的资源目录中创建文件./res/android/values/games-ids.xml
,内容如下
<?xml version="1.0" encoding="utf-8"?>
<!--Google Play game services IDs. Save this file as res/values/games-ids.xml in your project.-->
<resources>
<!--app_id-->
<string name="app_id" translatable="false">ADD_YOUR_APP_ID</string>
</resources>
重要:您需要将
ADD_YOUR_APP_ID
替换为您的应用程序ID。阅读官方说明以获取更多信息。
接下来,在您的Cargo.toml
中指定应用程序的AndroidManifest.xml的包和meta_data
[package.metadata.android.manifest]
package = "com.crossbow.play_games"
[[package.metadata.android.manifest.application.meta_data]]
name = "com.google.android.gms.games.APP_ID"
value = "@string/app_id"
[[package.metadata.android.manifest.application.meta_data]]
name = "com.google.android.gms.version"
value = "@integer/google_play_services_version"
就是这样,现在您可以开始使用Play Games服务了!
用法
第一步是插件初始化。在您的Rust项目中,您需要初始化Crossbow
实例,然后获取Android
插件
#![cfg(target_os = "android")]
use crossbow::android::*;
let crossbow = CrossbowInstance::new();
let play_games: play_games_services::PlayGamesServicesPlugin = crossbow.get_plugin()?;
// Initialize Google Play Games Services
play_games.init(true)?;
在插件初始化之后,您可以使用支持的功能。例如,要登录用户,您可以使用
play_games.sign_in()?;
读取信号
if let Ok(signal) = play_games.get_receiver().recv().await {
println!("Signal: {:?}", signal);
}
完整的文档您可以在这里找到。
故障排除
- 如果您使用 Android 模拟器 - 请确保您使用支持 Google Play 游戏服务 的模拟器。查看类似的 StackOverflow 问题。
- 如果您一直收到
错误 12501
- 确保指纹、包和资源配置正确。查看类似的 StackOverflow 问题。 - 如果您一直收到
错误 4
- 确保您使用正确的 Play 商店密钥签名您的应用程序。
感谢和灵感
此插件最初是根据 godot-pgsgp 进行改编和受到启发的。
依赖关系
~0.4–0.9MB
~19K SLoC