diff --git a/CLAUDE.md b/CLAUDE.md index cc154d8c..31fb5023 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,6 +9,25 @@ - **패키지 관리**: CocoaPods - **앱스토어**: 배포 중 +## ⚠️ 보안 — public GitHub 저장소 + +본 레포는 **public** 저장소. 아래 파일은 **절대 commit / push 금지**: + +| 파일 | 포함 secret | +|---|---| +| `Runnect-iOS/Network/Foundation/Config.swift` | 서버 baseURL, kakaoRestAPIKey, tmapAPIKey, kakaoNativeAppKey, naverMapClientId, 개발자 패스워드 | +| `Runnect-iOS/Network/Foundation/AdConfig.swift` | AdMob 광고 단위 ID | + +**관리 흐름**: +- 두 파일 모두 `.gitignore` 등록 + 메인 레포에서 추적 해제됨 +- 실제 값은 **별도 private 레포** `thingineeer/thingineeer-env` 의 `Runnect-env` 에서 관리 +- 클론 후 private 레포에서 두 파일을 가져와 동일 경로에 배치해야 빌드 가능 + +**작업 시 주의**: +- `git status --ignored` 가 아닌 일반 status 에는 안 보이지만, 실수로라도 **`git add -f` / staged 처리 / commit 금지** +- 신규 secret 추가 시 위 패턴 따를 것 (gitignore 등록 + private 레포 보관) +- AI 도구(Claude 등) 사용 시에도 이 규칙 적용 — Config/AdConfig 변경분이 PR diff 에 절대 포함되면 안 됨 + ## 주요 라이브러리 | 라이브러리 | 버전 | 용도 | |-----------|------|------| diff --git a/Runnect-iOS/Runnect-iOS/Network/Foundation/Config.swift b/Runnect-iOS/Runnect-iOS/Network/Foundation/Config.swift deleted file mode 100644 index cc53aa76..00000000 --- a/Runnect-iOS/Runnect-iOS/Network/Foundation/Config.swift +++ /dev/null @@ -1,94 +0,0 @@ -// -// Config.swift -// Runnect-iOS -// -// Created by sejin on 2023/01/06. -// - -import UIKit - -struct Config { - private init() {} - - // node -// static var baseURL: String { -// return "http://3.35.184.0:3000/api" -// } - - // spring server - static var baseURL: String { - return "http://43.201.179.83/api" - - } - - // test server -// static var baseURL: String { -// return "http://54.180.15.23/api" -// } - - static var kakaoAddressBaseURL: String { - return "https://dapi.kakao.com/v2/local/search" - } - - static var kakaoRestAPIKey: String { - return "f06398327f27f68dee975d91ade34bcd" - } - - static var tmapAddressBaseURL: String { - return "https://apis.openapi.sk.com/tmap/geo" - } - - static var tmapAPIKey: String { - return "l7xx26325307e8dc401eb8c7490ea62829c3" - } - - static var kakaoNativeAppKey: String { - return "27d01e20b51e5925bf386a6c5465849f" - } - -// static var deviceId: String { -// return KeychainManager.shared.getDeviceId() -// } - - static var naverMapClientId: String { - return "ldgt4i6s7l" - } - - static var adMobNativeAdUnitId: String { - return AdConfig.nativeAdUnitId - } - - static var adMobCarouselNativeAdUnitId: String { - return AdConfig.carouselNativeAdUnitId - } - - static var accessToken: String { - return UserManager.shared.accessToken ?? "" - } - - static var refreshToken: String { - return UserManager.shared.refreshToken ?? "" - } - - static var defaultHeader: [String: String] { - return ["Content-Type": "application/json"] - } - - static var headerWithAccessToken: [String: String] { - return ["Content-Type": "application/json", - "accessToken": Config.accessToken, - "refreshToken": Config.refreshToken] - } - - static var kakaoDeveloperName: String { - return "띵진" - } - - static var appleDeveloperName: String { - return "이명진" - } - - static var developerPassword: String { - return "970821" - } -}