사용자 입력 → 앱이 Supabase Function 호출 → Supabase가 gardenList 호출 → Supabase가 XML 파싱 → 앱에 목록 반환 → 사용자가 선택 → 앱이 Supabase Function 호출 → Supabase가 gardenDtl 호출 → Supabase가 XML 파싱 → 앱에 상세 반환 → 상세 정보 표시
앱은 농사로 API, API 키를 모르고 Supabase만 호출함
[사용자 입력] 식물 이름 검색어 입력
→ [iOS 앱]Supabase Function에 sText 전달
→ [Supabase]gardenList 호출 (농사로 API 키 사용)
→ [Supabase]XML 파싱(cntntsNo, 식물명 추출)
→ [iOS 앱]목록 표시
→ [사용자 선택]선택한 cntntsNo 전달
→ [iOS 앱]Supabase Function에 cntntsNo 전달
→ [Supabase]gardenDtl 호출 (농사로 API 키 사용)
→ [Supabase]XML 파싱 → 상세 정보 정리
→ [iOS 앱]상세 정보 표시
사실상 iOS 앱 내에서는 농사로 API 말고 supabase URL 호출
API_KEY = your_real_api_key
실제 키는 이 파일에만 저장
Secrets.xcconfig
Git에 절대 올라가지 않도록 차단
<key>API_KEY</key>
<string>$(API_KEY)</string>
빌드 시 xcconfig 값이 주입됨
struct AppConfig {
static let apiKey = Bundle.main.object(forInfoDictionaryKey: "API_KEY") as? String
}
런타임에서 키 사용
배포 시 따로 코드 수정 없음
내 맥에 있는 키 그대로 빌드된다는데 사실 잘 이해가 안간다.. 더 찾아봐야지