비동기 코딩 에이전트와 Xcode cloud

#iOS#reject#claude code#xcode cloud#KIRA

오늘 아침 출근 길에 맥앱스토어에 심사 제출한 'SnowOnMac' 심사에 관한 메일이 드디어 왔다.

"App Store Connect: Your app has been rejected."

하지만 내가 원하는 내용은 아니었다.

이유는 메타데이터와 앱 이름에 관한 것이었다.

맥용 앱 SnowOnMac에 'Mac'이라는 단어가 포함되어 있어 사용자에게 오해를 줄 수 있으니, 이를 변경해 달라는 요청.

이전까지 보통 이런 경우라면 한숨을 한 번 쉬고,

맥북을 열어 Xcode를 실행하고,

프로젝트 설정을 뒤져가며 Bundle Display Name을 수정하고 다시 아카이빙을 해야 했을건데,

왠지 이건 될 것 같았다. Xcode 켜지 않고 수정해서 다시 심사제출하는게.

결과부터 말하자면, 웹 브라우저 몇 개 오가며 10여분 만에 앱 이름을 Snow Focus로 변경하고, 빌드 배포와 심사 제출까지 완료.


1. 문제 정의: bundle display name을 바꾸기 Snow On Mac에서 무언가로.


2. 해결 과정: AI와 클라우드의 티키타카

Step 1. Claude.ai와 GitHub 연동

Claude의 웹 인터페이스에서 제 GitHub 저장소를 연결했다.

그런뒤 gemini에게 내 앱에 관한 설명을 붙여넣고, 리젝 사유를 알려주며 또다른 어떤 이름이 좋을지 물어봤다.

gemini가 알려준 이름을 가지고 claude code web으로 들어가서 snowonmac 레파지토리를 선택한뒤, 이렇게 명령했다.

"snowonmac 이란 앱명이 문제가 되어서 애플스토어 심사가 리젝되엇어.
그래서 앱 이름을 "Snow Focus" 바꾸려고 해.
bundle id나 폴더명은 그대로 두고, 앱 이름과 관련된 부분만 찾아서 "Snow Focus"로 변경해줘."

폴더 명 바뀌면 귀찮아질 수 있다. 예외처리를 해두는게 낫겠다는 1X년 경력의 아이폰 개발자의 경험적인 느낌.

Claude가 뭐했는지 모른다. 다만, 프로젝트 내부의 설정 파일들을 분석해 변경 사항을 수행했다는걸 마지막에 정리해주었다.

분석이 완료되었습니다. 다음 부분들을 변경하겠습니다:

변경할 항목:

  • Info.plist: CFBundleDisplayName, CFBundleName

  • project.yml: CFBundleDisplayName, CFBundleName (info.properties)

  • AppDelegate.swift: 사용자에게 보이는 메시지

  • README.md, CLAUDE.md: 문서 내 앱 이름

유지할 항목:

  • 번들 ID (com.appgalpi.SnowOnMac)

  • 폴더명/타겟명 (SnowOnMac)

  • 빌드 스크립트 경로

수정한 내역을 담아 새로운 브랜치를 생성하고 Push까지 완료했다는 내용을 본뒤 github으로 이동.

Step 2. GitHub PR 및 Merge

GitHub 모바일 웹으로 이동하니 이번엔 github이 알아서 PR꺼리가 있다는 알림을 노출해주었다.

Claude가 올린 브랜치로 Pull Request를 생성.

변경된 코드를 눈으로 쓱 훑어보고(Code Review), 문제가 없음을 확인한 뒤 Merge.

Step 3. Xcode Cloud의 자동화

Main 브랜치에 변동 사항(Merge)이 감지되자, 미리 설정해 둔 Xcode Cloud가 반응했다.

(아마도)애플의 서버에서 자동으로 빌드가 돌아가고, 아카이빙 된 앱이 App Store Connect로 전송.

Step 4. 메타데이터 수정 및 재제출

빌드가 올라가는 동안 App Store Connect 웹페이지에 접속해 앱 이름과 설명을 수정했다. 이것은 새 이름을 작명해준 gemini의 도움을 받았다.

잠시 후 Xcode Cloud의 배포 완료 메일이 도착했고, 바로 해당 빌드를 선택해 다시 심사를 제출.


3. 결론: 장소와 장비로부터의 해방
이 모든 과정이 단 30분 만에 끝났다.

과거에는 '개발 = 컴퓨터 앞에 앉아 있는 것'이었다면, 이제는 '의사결정 후 조율하는 것'으로 패러다임이 바뀌고 있다는 걸 몸소 느낄 수 있었다.

설령 또다시 리젝을 당하더라도 가벼운 수정 사항들은 사무실에 도착하거나, 내 맥북을 열지 않아도 가능할 것 같다.


덧.

claude도 slack과 연동할 수 있다며 끊임없이 알림을 보여주고 있는데,

크래프톤ai에서 만들고 공유한 KIRA를 써보려고 하고 있다.

내 생각대로 연동이 된다면,

KIRA는 이메일을 받아 내게 알려주고,

내가 작업을 지시하면,

kira가 claude를 사용해서 작업 후 push한뒤, PR review까지 마치고 다시 나에게 알림을 줄 것이다.

그럼 앱스토어 커넥트에 들어가 재심사 넣으면 되는...

꿈같은 그림도 가능할 것 같다.

맥북은 정말로 아이폰의 보조배터리로 전락하겠는걸?

Discussion

Loading comments...