affisto

SDK 문서

Fabre SDK 설치

앱에 Flutter, Android 또는 iOS SDK를 설치하세요. SDK 다운로드에는 로그인이나 저장소 접근 권한이 필요하지 않습니다.

공개 베타 Android 0.1.0-beta.1 · iOS 0.1.0-beta.1 · Flutter 0.1.0-beta.1

플랫폼설치 방식공개 상태
AndroidGradle공개 베타
iOSSPM공개 베타
Flutterpub.dev공개 베타
React Native / Exponpm공개 패키지 준비 중
UnityUPM공개 패키지 준비 중

Android

Android 8.0(API 26) 이상에서 사용합니다. 검증한 빌드 환경은 JDK 17, Kotlin 2.2.20, AGP 8.11.1, compileSdk 36입니다.

1. SDK 저장소 등록

settings.gradle.kts의 기존 dependencyResolutionManagement.repositories 안에 Fabre 저장소를 추가하세요. 기존 저장소와 프로젝트 설정은 유지합니다.

settings.gradle.kts
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        exclusiveContent {
            forRepository {
                maven {
                    url = uri("https://sdk.affisto.com/fabre/maven")
                }
            }
            filter { includeGroup("com.affisto.fabre") }
        }
    }
}

2. SDK 의존성 추가

앱 모듈의 build.gradle.kts에 의존성을 추가하세요. 앱에서 minSdk를 이미 26보다 높게 설정했다면 기존 값을 유지합니다.

app/build.gradle.kts
android {
    defaultConfig { minSdk = 26 }
}

dependencies {
    implementation("com.affisto.fabre:android:0.1.0-beta.1")
}

3. 동기화하고 빌드

Android Studio에서 Sync Project with Gradle Files를 실행한 뒤 앱을 빌드하세요. 버전은 “+” 대신 정확한 번호로 지정합니다.

선택 사항: OkHttp 연동

OkHttp 네트워크 진단을 연동하려면 다음 모듈을 추가하세요. 설치 후 앱의 OkHttp 클라이언트에 연결하는 설정이 필요합니다.

app/build.gradle.kts · OkHttp
dependencies {
    implementation("com.affisto.fabre:android-okhttp:0.1.0-beta.1")
}

iOS

iOS 14 이상에서 사용합니다. 기기용 arm64와 시뮬레이터용 arm64·x86_64 바이너리가 포함됩니다. Xcode 26.1.1에서 검증했으며, 다른 도구 버전 조합은 아직 호환성 검증 범위에 포함되지 않습니다.

  1. Xcode에서 File → Add Package Dependencies를 선택합니다.
  2. 아래 공개 저장소 주소를 입력합니다.
  3. Exact Version: 0.1.0-beta.1을 선택합니다.
  4. 앱 타깃에 Fabre 제품을 추가합니다.
공개 Swift 패키지
https://github.com/affisto/fabre-ios.git

설치 제품명은 Fabre입니다. Swift에서는 import ScreenReporter를 사용합니다. 기존 코드와의 호환성을 위해 모듈 이름을 유지합니다.

Swift
import UIKit
import ScreenReporter

Flutter

pub.dev에서 fabre 패키지를 설치합니다. 공개된 Android AAR과 iOS XCFramework가 포함되어 있어 Flutter 앱에서 Fabre Maven 저장소나 Swift 패키지를 따로 추가할 필요가 없습니다.

Flutter 3.32·Dart 3.8 이상, Android API 26 이상, iOS 14 이상이 필요합니다. 이 베타의 iOS 연동은 CocoaPods로 빌드합니다. 웹·데스크톱은 지원하지 않습니다.

fabre 0.1.0-beta.1 · pub.dev

1. 패키지 설치

Terminal
flutter pub add fabre:^0.1.0-beta.1

2. 플랫폼 최소 버전 설정

android/app/build.gradle.kts의 minSdk를 26으로 설정합니다. 이미 더 높다면 기존 값을 유지하세요. ios/Podfile에는 iOS 14.0을 지정하고, Xcode의 Runner 배포 대상도 14.0 이상으로 맞추세요. 나머지 기존 설정은 유지합니다.

android/app/build.gradle.kts
android {
    defaultConfig { minSdk = 26 }
}
ios/Podfile
platform :ios, '14.0'

3. Fabre 프로젝트 연결

프로젝트의 SDK 수신 키와 서비스 주소로 초기화합니다. package:fabre/fabre.dart를 가져오며, 기존 ScreenReporter·ReporterConfig API 이름을 그대로 사용합니다. 아래 예제는 캡처 영역·실행 버튼·화면 전환 관찰자를 MaterialApp에 연결합니다.

lib/main.dart
import 'package:fabre/fabre.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final reporter = ScreenReporter(ReporterConfig(
    apiKey: const String.fromEnvironment('FABRE_INGEST_KEY'),
    endpoint: Uri.parse(const String.fromEnvironment('FABRE_ENDPOINT')),
    recipient: 'Mobile QA',
    appVersion: '1.0.0',
    environment: 'staging',
  ));
  await reporter.initialize();
  runApp(MaterialApp(
    navigatorKey: reporter.navigatorKey,
    navigatorObservers: [ReporterNavigatorObserver(reporter)],
    builder: (context, child) => Stack(children: [
      ReporterBoundary(reporter: reporter, child: child!),
      Positioned.fill(child: ReporterLauncher(reporter: reporter)),
    ]),
    home: const Scaffold(body: Center(child: Text('My app'))),
  ));
}

앱을 실행할 때 프로젝트 설정을 전달하세요. 아래 자리표시자는 발급받은 프로젝트 값으로 바꿉니다.

Terminal
flutter run --dart-define=FABRE_INGEST_KEY=YOUR_PROJECT_INGEST_KEY --dart-define=FABRE_ENDPOINT=https://YOUR_FABRE_SERVER

4. 기기 승인 후 리포트 확인

Fabre 실행 버튼을 열어 테스트 기기를 등록한 뒤 Fabre 콘솔에서 승인합니다. 리포트를 열어 이미지에 그리거나 민감 정보를 가리고, 두 손가락으로 확대해 확인한 후 제출하세요. 민감한 위젯은 ReporterPrivate로 감싸 SDK 캡처에서 제외할 수 있습니다.

Flutter 3.41.4·Dart 3.11.1에서 Android API 34·iOS 18.3.1 시뮬레이터의 편집기 실행, Android 릴리스 APK, 서명 없는 iOS 기기용 릴리스 빌드를 검증했습니다. 최소 버전 전체 조합이나 실기기 호환성 검증을 의미하지는 않습니다.

패키지 업데이트

지정한 버전 범위 안에서 새 버전을 받으려면 flutter pub upgrade fabre를 실행합니다. 허용 범위를 바꾸려면 의존성 버전을 수정하고 앱을 다시 검증하세요. 기존 앱의 잠금 버전은 의존성을 업데이트하기 전까지 유지됩니다.

Terminal
flutter pub upgrade fabre

직접 다운로드

일반적인 앱에서는 Gradle 또는 SPM 설치를 권장합니다. 바이너리를 직접 관리해야 하는 환경에서는 아래 파일을 내려받을 수 있습니다.

AAR을 수동 설치하면 필요한 의존성을 별도로 설정해야 합니다. iOS는 ZIP을 풀어 ScreenReporter.xcframework를 추가하고 Embed & Sign을 선택합니다. 같은 앱 타깃에 SPM 패키지와 수동 프레임워크를 중복 설치하지 마세요.

설치 후 설정

SDK를 내려받는 것만으로 프로젝트에 연결되지는 않습니다. 실제 리포트를 전송하려면 프로젝트 수신 키와 서버 주소로 초기화한 뒤 Fabre 콘솔에서 테스트 기기를 승인해야 합니다. 계정·관리자·MCP 토큰은 앱에 포함하지 마세요.

적용 전에 앱에 맞게 수집 동의와 민감 화면 처리를 설정하세요. SDK 사용·재배포에는 SDK 라이선스가 적용되며, Fabre 서비스 접근 권한과 이용 요금은 별도입니다.

프로젝트 연동 문의

설치 도움말

pub.dev 검색에서 베타가 보이지 않으면 어떻게 하나요?

현재 버전은 정식 출시 전 베타입니다. 위의 pub.dev 직접 링크나 버전을 지정한 설치 명령을 사용하면 패키지를 확인하고 설치할 수 있습니다.

저장소 주소를 브라우저로 열면 왜 404가 나오나요?

Gradle 저장소의 기준 주소는 웹 디렉터리 목록 페이지가 아닙니다. 이 주소의 404 응답은 SDK 파일이 없다는 뜻이 아닙니다. 위의 직접 다운로드 링크나 버전별 배포 명세에서 실제 파일을 확인할 수 있습니다.

Gradle에서 SDK를 찾지 못하면 무엇을 확인하나요?

저장소 주소에 /fabre/maven이 포함됐는지, 그룹이 com.affisto.fabre인지, 버전 번호가 정확한지 확인하세요. 저장소를 중앙 관리하는 프로젝트라면 settings.gradle.kts에 추가해야 합니다. 회사 네트워크에서는 sdk.affisto.com의 접근 허용이 필요할 수 있습니다.

React Native·Expo·Unity도 설치할 수 있나요?

공개 npm·Unity 패키지는 준비 중입니다. Flutter는 pub.dev의 fabre 패키지로 지금 설치할 수 있습니다.