★★★★★
#시작·빌드·환경 · claude-code
iOS 26+ cloud_functions SIGABRT 우회
증상: iOS 26.x 실기기에서 `HTTPSCallable.call()` 호출 시 즉시 SIGABRT
#iOS 26#Swift Concurrency#cloud_functions
변수 3개 — 여기 채우면 아래 프롬프트에 바로 들어가요
증상: iOS 26.x 실기기에서 `HTTPSCallable.call()` 호출 시 즉시 SIGABRT
원인: `cloud_functions` Flutter 플러그인의 Swift Concurrency 버그
해결 (글로벌 #17):
**방법 1: cloud_functions 제거 → http 패키지로 대체 (권장)**
1. pubspec.yaml에서 `cloud_functions` 제거, `http` 추가:
```yaml
dependencies:
http: ^1.1.0
```
2. Cloud Function 호출 패턴:
```dart
Future<T> callCloudFunction<T>(
String functionName,
Map<String, dynamic> data,
) async {
final idToken = await FirebaseAuth.instance.currentUser?.getIdToken();
final response = await http.post(
Uri.parse('https://{{region}}-{{projectId}}.cloudfunctions.net/{{functionName}}'),
headers: {'Authorization': 'Bearer $idToken', 'Content-Type': 'application/json'},
body: jsonEncode({'data': data}),
);
final result = jsonDecode(response.body);
if (result['error'] != null) throw result['error'];
return result['result'] as T;
}
```
3. 응답 형식: `{result: ...} | {error: ...}`
**방법 2: 새 프로젝트는 처음부터 http 패턴 사용**
참조 구현: `maum_ai/lib/services/cloud_fn_client.dart`
검증: iOS 26+ 실기기에서 Cloud Function 호출 성공
쓰는 법 — 위 칸에 본인 값을 채우면 아래 프롬프트에 바로 반영돼요. 복사 버튼을 누르면 채워진 그대로 클립보드에 담기니까, claude-code(또는 본인이 쓰는 AI)에 붙여넣기만 하면 됩니다. 변수가 없으면 그냥 복사해서 쓰세요.

