chore(android): versionCode 2, eas.json profiles, avatar PNG fix

- app.config.ts: android.versionCode 2 (was 1)
- eas.json: development/preview/production profiles, EXPO_PUBLIC_API_URL=staging,
  appVersionSource=local, autoIncrement=false
- avatars: switch DiceBear endpoint /svg -> /png — RN <Image> can't decode SVG,
  Hero-Avatars rendered transparent/blank on Android

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
chahinebrini 2026-05-11 14:00:02 +02:00
parent dd3d8c6667
commit bcc6e5cba1
4 changed files with 21 additions and 8 deletions

View File

@ -36,6 +36,7 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
android: { android: {
package: "org.rebreak.app", package: "org.rebreak.app",
versionCode: 2,
adaptiveIcon: { adaptiveIcon: {
// Play-Console-Icon (rebreak_android.png) verwenden — wird durch Adaptive-Mask // Play-Console-Icon (rebreak_android.png) verwenden — wird durch Adaptive-Mask
// gecropped (Kreis/Squircle), evtl. Edges leicht beschnitten je nach Design. // gecropped (Kreis/Squircle), evtl. Edges leicht beschnitten je nach Design.

View File

@ -1,12 +1,15 @@
{ {
"cli": { "cli": {
"version": ">= 5.0.0", "version": ">= 5.0.0",
"appVersionSource": "remote" "appVersionSource": "local"
}, },
"build": { "build": {
"development": { "development": {
"developmentClient": true, "developmentClient": true,
"distribution": "internal", "distribution": "internal",
"env": {
"EXPO_PUBLIC_API_URL": "https://staging.rebreak.org"
},
"ios": { "ios": {
"simulator": false "simulator": false
}, },
@ -16,24 +19,30 @@
}, },
"preview": { "preview": {
"distribution": "internal", "distribution": "internal",
"env": {
"EXPO_PUBLIC_API_URL": "https://staging.rebreak.org"
},
"ios": { "ios": {
"resourceClass": "m-medium", "resourceClass": "m-medium",
"autoIncrement": true "autoIncrement": false
}, },
"android": { "android": {
"buildType": "apk", "buildType": "apk",
"autoIncrement": true "autoIncrement": false
}, },
"channel": "preview" "channel": "preview"
}, },
"production": { "production": {
"env": {
"EXPO_PUBLIC_API_URL": "https://staging.rebreak.org"
},
"ios": { "ios": {
"resourceClass": "m-medium", "resourceClass": "m-medium",
"autoIncrement": true "autoIncrement": false
}, },
"android": { "android": {
"buildType": "app-bundle", "buildType": "app-bundle",
"autoIncrement": true "autoIncrement": false
}, },
"channel": "production" "channel": "production"
} }
@ -46,7 +55,7 @@
"appleTeamId": "84BQ7MTFYK" "appleTeamId": "84BQ7MTFYK"
}, },
"android": { "android": {
"serviceAccountKeyPath": "<USER: lokaler Pfad zu Google-Cloud-Service-Account-JSON, z.B. ~/secrets/rebreak-play-service-account.json>", "serviceAccountKeyPath": "<TODO: lokaler Pfad zu Google-Cloud-Service-Account-JSON, z.B. ~/secrets/rebreak-play-service-account.json>",
"track": "internal" "track": "internal"
} }
} }

View File

@ -5,7 +5,9 @@ export interface HeroAvatar {
url: string; url: string;
} }
const DICEBEAR_BASE = 'https://api.dicebear.com/9.x/adventurer/svg'; // PNG, not SVG — React Native's <Image> can't decode SVG (Hero-Avatars rendered
// blank/transparent on Android otherwise). DiceBear serves PNG at the /png path.
const DICEBEAR_BASE = 'https://api.dicebear.com/9.x/adventurer/png';
export const HERO_AVATARS: HeroAvatar[] = [ export const HERO_AVATARS: HeroAvatar[] = [
{ id: 'spider', name: 'Spider', color: 'border-red-500', url: `${DICEBEAR_BASE}?seed=spiderman&backgroundColor=b71c1c` }, { id: 'spider', name: 'Spider', color: 'border-red-500', url: `${DICEBEAR_BASE}?seed=spiderman&backgroundColor=b71c1c` },

View File

@ -1,6 +1,7 @@
import { getAvatarById, getAvatarUrl } from './avatars'; import { getAvatarById, getAvatarUrl } from './avatars';
const DICEBEAR_BASE = 'https://api.dicebear.com/9.x/adventurer/svg'; // PNG, not SVG — RN <Image> can't decode SVG. DiceBear serves PNG at the /png path.
const DICEBEAR_BASE = 'https://api.dicebear.com/9.x/adventurer/png';
/** /**
* Resolves the `profiles.avatar` field zu einer renderbaren URL. * Resolves the `profiles.avatar` field zu einer renderbaren URL.