크라우니AI iOS — Xcode 프로젝트 래핑 + 시뮬레이터 빌드 실증
개요
지금까지 clang 직빌드(시뮬레이터 전용,
아이폰-패키징.sh)만 있어 앱스토어 제출이 불가능했다.
xcodebuild archive까지 갈 수 있는 정식 Xcode 프로젝트가 필요해, xcodegen/tuist 없이
project.pbxproj를 직접 작성해 만들었다.
무엇을 했는지
/Users/ef/CrownyBrowser/ios/xcode/ 신규 디렉토리에 단일 타깃 "CrownyAI" Xcode 프로젝트 생성:
-
CrownyAI.xcodeproj/project.pbxproj — 24-hex UUID 전부 수기 발급, objectVersion 56, PBXProject/PBXNativeTarget/Build Phases(Sources·Frameworks·Resources)/XCConfigurationList 전체 수기 작성.
-
CrownyAI.xcodeproj/xcshareddata/xcschemes/CrownyAI.xcscheme — 공유 스킴(Run+Archive 둘 다 지원).
-
CrownyAI/CrownyAI.m,
Info.plist,
앱카드-iOS.psv — 기존
ios/크라우니AI-iOS.m 등 원본을
무수정 복사(한글 파일명 빌드 함정 회피 위해 소스만 ASCII로 리네임).
-
CrownyAI/Assets.xcassets/AppIcon.appiconset/ —
ios/배포/appicon/AppIcon.appiconset(PNG 13 + Contents.json) 통째 복사.
- 빌드 설정:
PRODUCT_BUNDLE_IDENTIFIER=org.crowny.crownyai, MARKETING_VERSION=0.1.0, IPHONEOS_DEPLOYMENT_TARGET=16.0, TARGETED_DEVICE_FAMILY=1, SDKROOT=iphoneos, ASSETCATALOG_COMPILER_APPICON_NAME=AppIcon, DEVELOPMENT_TEAM=LQ83M5TL9S, CODE_SIGN_STYLE=Automatic, UIKit/WebKit/Foundation 프레임워크 링크.
- 실제 xcodebuild 실행으로 검증(날조 없이):
-
xcodebuild -list → 타깃/스킴 "CrownyAI" 정상 노출.
-
xcodebuild ... -sdk iphonesimulator -configuration Debug ... build CODE_SIGNING_ALLOWED=NO →
** BUILD SUCCEEDED **.
- 산출
.app(DerivedData)에서
Assets.car·
앱카드-iOS.psv 존재 확인, 실행바이너리 Mach-O universal(x86_64+arm64),
Info.plist에
CFBundleIconName=AppIcon 자동 생성 확인(에셋 카탈로그가 채움, Info.plist 수동 수정 불요).
-
아카이브(Release, 서명) 시도 → 실패:
error: Communication with Apple failed: Your team has no devices from which to generate a provisioning profile. +
No profiles for 'org.crowny.crownyai' were found. 근본원인 확인: 이 Mac의 Xcode Accounts에 Apple ID가 한 번도 등록되지 않음(
defaults read com.apple.dt.Xcode IDEProvisioningTeams 없음,
~/Library/MobileDevice/Provisioning Profiles/ 디렉토리 자체 없음). 키체인엔 서명 인증서(Distribution 포함)는 있지만 Automatic signing이 프로파일을 관리하려면 Xcode에 로그인된 계정이 필요.
관련 파일
/Users/ef/CrownyBrowser/ios/xcode/CrownyAI.xcodeproj/project.pbxproj
/Users/ef/CrownyBrowser/ios/xcode/CrownyAI.xcodeproj/xcshareddata/xcschemes/CrownyAI.xcscheme
/Users/ef/CrownyBrowser/ios/xcode/CrownyAI/CrownyAI.m · Info.plist · 앱카드-iOS.psv · Assets.xcassets/
/Users/ef/CrownyBrowser/ios/배포런북.md — "## 2. Xcode 프로젝트 래핑" 섹션 전면 갱신(검증된 명령·결과·잔여 수동단계 반영)
잔여 이슈
- 사장님/어드민 단계: Xcode → Settings → Accounts에 Apple ID(sunkyung kim) 로그인 필요 — 현재 이 항목이 없어 archive의 automatic signing이 프로비저닝 프로파일을 못 만듦(App Store 배포는 디바이스 등록 불요이므로 로그인만 되면 재시도로 해결될 가능성 높음).
- 로그인 후:
xcodebuild ... -configuration Release -destination 'generic/platform=iOS' -archivePath ... archive -allowProvisioningUpdates 재실행 → 성공 시 -exportArchive(ExportOptions.plist 기존 보유)로 .ipa 추출 → TestFlight 업로드.
- 실기기 스모크 테스트 미실시(이번 범위=시뮬레이터 정합성 증명).
- 원본 소스(
ios/크라우니AI-iOS.m 등)는 절대 수정하지 않았음 — 향후 앱 로직 변경 시 원본과 ios/xcode/CrownyAI/CrownyAI.m 양쪽 동기화 필요(현재는 단순 복사본, sync 스크립트 없음).