Skip to content

fix(demo): fijar el bundle id de iOS y alinear el magic link - #19

Closed
rndevelo wants to merge 1 commit into
feature/007-apple-scopes-iosfrom
feature/008-demo-bundle-id
Closed

fix(demo): fijar el bundle id de iOS y alinear el magic link#19
rndevelo wants to merge 1 commit into
feature/007-apple-scopes-iosfrom
feature/008-demo-bundle-id

Conversation

@rndevelo

Copy link
Copy Markdown
Collaborator

Sale de #18.

Qué

La plantilla de KMP trae PRODUCT_BUNDLE_IDENTIFIER=com.apptolast.login.Login.$(TEAM_ID). Como
TEAM_ID se rellena en local, rellenarlo cambiaba la identidad de la app y rompía tres cosas a
la vez y en silencio: el registro de la app en Firebase, el cliente OAuth detrás del reversed
client id del Info.plist, y MagicLinkConfig.iosBundleId.

Bundle id fijo en com.apptolast.login.Login, con un comentario en el xcconfig que dice con qué
tres cosas tiene que cuadrar, y MainViewController.kt alineado.

⚠️ Asunción a confirmar

Que la app de iOS esté registrada en Firebase como com.apptolast.login.Login. Si resulta ser
com.apptolast.login, es mover esa cadena en dos sitios: Config.xcconfig y
MainViewController.kt. Está anotado en el spec.

Hallazgo colateral

Al correr :composeApp:assembleDebug para verificar esto salió que google-services.json no
está en el repositorio
, así que el "full check before opening a PR" de CLAUDE.md falla hoy para
cualquiera. Se documenta en el #PREV010.

Verificado en Windows: :custom-login:ktlintCheck + :custom-login:testDebugUnitTest (254 tests, 0 fallos). El Swift de esta rama no se ha compilado nunca: pendiente de Mac.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E41idMYhfgBSz2EeuNUn5Q

El bundle id venía de la plantilla de KMP como com.apptolast.login.Login$(TEAM_ID).
Para un ejemplo de usar y tirar está bien; aquí no, porque esa cadena tiene que
coincidir a la vez con la app de iOS registrada en Firebase, con el cliente OAuth
que emitió el reversed client id del Info.plist y con MagicLinkConfig.iosBundleId.
Con el sufijo, rellenar TEAM_ID en local cambiaba la identidad de la app y rompía
las tres en silencio.

Y aun sin rellenarlo ya había discrepancia: el bundle era com.apptolast.login.Login
y el magic link decía com.apptolast.login, así que el enlace no reabría la app.

Se conserva com.apptolast.login.Login, no el otro candidato, porque es el que está
en el árbol hoy con TEAM_ID vacío y por tanto el único que sabemos que casa con lo
registrado en la consola. El GoogleService-Info.plist está en .gitignore y no se
puede comprobar desde aquí; cambiar la identidad de la app por una corazonada
rompería Google Sign-In sin avisar. Si al validar en Mac resulta que Firebase tiene
com.apptolast.login, el arreglo es una línea en cada uno de los dos sitios y está
escrito en el spec.

Sigue faltando, y queda fuera de este ticket, montar los Universal Links de
apptolast.com: sin eso el magic link no vuelve a la app aunque el bundle id ya sea
correcto.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rkh7MzVRj5iXT2rLiqyW6A
hgarciaalberto pushed a commit that referenced this pull request Aug 19, 2026
…21)

Cierra de una vez la pila 003→010, que estaba encadenada PR sobre PR. Sustituye a #14, #15,
#16, #17, #18, #19 y #20.

- 003 Apple Sign-In de producción en el demo y contrato correcto para Swift
- 004 Cablea GitHub, Microsoft, Twitter, Facebook y teléfono en el demo (+ su spec)
- 005 Revoca el token de Apple antes de borrar la cuenta
- 006 Cierra también la sesión de GoogleSignIn al salir, en iOS
- 007 Pasa los scopes de AppleSignInConfig al handler de iOS
- 008 Fija el bundle id de iOS y alinea el magic link
- 009 Sesión de teléfono completa y testeable en las dos plataformas
- 010 Documenta lo que falta para construir el demo y deprecar código muerto

Las ocho PRs intermedias apuntaban cada una a la rama de la anterior, y el CI solo disparaba
en PRs contra develop/main, así que ninguna había pasado un check. Eso lo arregló #23. Esta
pila se validó entera antes de entrar: ambos jobs en verde.
@hgarciaalberto
hgarciaalberto deleted the branch feature/007-apple-scopes-ios August 19, 2026 22:50
@hgarciaalberto

Copy link
Copy Markdown
Contributor

Integrada en develop vía #21, que agrupó la pila 003→010 en un único squash en vez de encadenar ocho merges con su rebase detrás. El código de esta PR está en develop; se cierra sin mergear porque el commit ya no existe con este SHA.

@rndevelo
rndevelo deleted the feature/008-demo-bundle-id branch August 28, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants