연동
엔진 생성이 nil을 반환함
licenseToken또는appId+appKey가 설정되어 있는지 확인하세요. 둘 다 있으면 토큰이 우선합니다.- Mac Bundle ID를 바인딩하세요(CLI 도구: 프로세스 이름).
- 온라인 인증에는 App Sandbox의 Outgoing Connections와
/facebetter/v2/auth경로가 필요합니다. createEngineWithConfig:전에 로그를 켜고 이벤트1/101을 확인하세요.- CocoaPods:
pod 'Facebetter', '2.0.0'..xcworkspace를 여세요.
헤더 또는 클래스가 없음
#import <Facebetter/FBBeautyEffectEngine.h>를 임포트하세요.- 수동
.framework: Embed & Sign. - Xcode 15+ CocoaPods 샌드박스:
ENABLE_USER_SCRIPT_SANDBOXING을 No로 설정하세요.
런타임 링크 / dyld 오류
- 아키텍처: x86_64와 arm64.
- 배포 타깃 macOS 10.15+.
인증
licenseToken vs appId / appKey
licenseToken이 비어 있지 않으면 SDK는 해당 토큰 / {token} JSON / .lic를 로컬에서 검증합니다. 그렇지 않으면 온라인 인증을 사용합니다. 자세한 내용: 인증 및 라이선스.
이벤트 1 또는 101
라이선스 또는 초기화가 실패했습니다. Bundle ID, 샌드박스 네트워크, 토큰 만료, 로그를 확인하세요.
뷰티
효과가 너무 약하거나 너무 강함
- 피부 / 메이크업 / 필터:
[0.0, 1.0]. - 리셰이프:
setReshape:intensity:로[-1.0, 1.0]. - 강도
0은 해당 효과를 끕니다. - 피부만:
setBeautySkinOnly:.
필터, 스티커, 가상 배경
.fbd 경로 또는 바이트를 전달하세요. 샌드박스 앱은 해당 경로를 읽을 수 있어야 합니다.
처리
processImage:가 nil을 반환함
잘못된 프레임, 초기화 실패, 또는 externalContext = YES인데 현재 GL 컨텍스트가 없는 경우입니다.
프레임 유형
imageFrame.type을 FBFrameTypeImage(0) 또는 FBFrameTypeVideo(1)로 설정하세요. 처리 모드 인자는 없습니다.
형식 변환
convert:를 사용하세요.
NSImage
카메라
AVCaptureVideoDataOutput→CVPixelBuffer.createWithNV12:...또는createWithBGRA:....type = FBFrameTypeVideo, 선택적으로setMirror:@"horizontal".- AppKit / OpenGL 뷰에서
[output data]또는[output texture]를 표시합니다.
성능
- 라이브에는
FBFrameTypeVideo를 사용하고getStats를 확인하세요. - 엔진은 하나, 직렬 큐입니다.
- 창이 최소화되면 캡처를 일시 중지하세요.
로깅
버전
- macOS 10.15+, x86_64 + arm64.
- CocoaPods:
pod 'Facebetter', '2.0.0'. - Universal Binary: xcframework에 두 슬라이스가 있는지 확인하세요(
lipo -info).
샌드박스와 App Store
- 온라인 인증을 위한 아웃바운드 네트워크.
- 카메라용
NSCameraUsageDescription. - 사용자가 선택한 파일에는 security-scoped bookmark.
- 프라이빗 API를 사용하지 마세요. 라이브 비디오는 메인 스레드에서 엔진을 돌리지 마세요.

