Flutter SDK
블럭스 Flutter SDK 를 설치하고 메서드를 사용하는 방법을 알아봅니다.
* blux_flutter의 iOS Swift Package Manager 경로는 Flutter 3.44 이상에서 지원됩니다. Flutter 3.44 미만에서는 CocoaPods 경로를 사용하세요.
푸시 메시지 연동
[iOS] Xcode 설정
Notification Capability 추가
Xcode 프로젝트 설정의 Signing & Capabilities 탭에서 + Capabilities를 클릭하세요.

Push Notifications와 Background Modes를 추가하세요.


Background Modes에서 Remote notifications를 활성화하세요.

Service Extension 설정
Xcode 프로젝트 상단
File > New > Target을 클릭하고 아래와 같이 Notification Service Extension을 선택하세요.

아래와 같이 알맞는 이름을 입력 후 Finish를 클릭하세요.

표시되는 팝업에서 Don't Activate를 클릭하여 별도의 Scheme을 활성화하지 않도록 합니다.

이후 Notification Service Extension Target의 Minimum Deployments 버전을 현재 사용 중인 메인 앱 Target의 버전과 동일하게 설정합니다.

App Group 설정
Xcode 프 로젝트 설정의 Signing & Capabilities 탭에서 + Capability > App Groups 를 선택하여 추가합니다.

group.[Bundle ID].blux이라는 이름의 그룹을 추가합니다. Bundle ID는 메인 앱의 Bundle Identifier와 일치해야 합니다.
추가 후 해당 App Group을 활성화하고, 이전 단계에서 만든 Notification Service Extension에도 동일한 App Group을 추가하고 활성화합니다.

Custom iOS Target Properties 설정
Xcode 프로젝트 설정의 Info 탭에서 Custom iOS Target Properties의 마지막 열을 클릭하고 오른쪽에 표시되는 + 버튼을 클릭합니다.

Key는
BluxAppGroupName, Type은String, Value는 이전 단계에서 만든 App Group의 ID를 입 력합니다.- App Group ID가 변경되는 경우 해당 값도 같이 변경해야 합니다.

BluxClient 의존성 연결
앱에서 blux_flutter를 연결한 방식에 따라 Notification Service Extension에도
BluxClient를 연결하세요. Flutter 3.44 이상은 Swift Package Manager를 기본으로
사용합니다. 앱을 빌드한 뒤 ios/Podfile.lock에 blux_flutter가 남아 있으면
CocoaPods, 없으면 Swift Package Manager 경로입니다.
- Swift Package Manager
- CocoaPods
앱을 빌드할 때 Flutter가 Swift Package Manager 연동을 자동으로 추가합니다. 이전에 전역 설정으로 비활성화했다면 아래 명령어로 다시 활성화하세요.
flutter config --enable-swift-package-manager
ios/Podfile의 Notification Service Extension 타깃에서pod 'BluxClient'를 삭제하세요. 해당 타깃에 다른 pod이 없다면 타깃 블록 전체를 삭제해도 됩니다.ios디렉터리에서pod install을 실행하세요. 다른 Flutter 플러그인이 CocoaPods를 사용할 수 있으므로Podfile자체는 삭제하지 마세요.- Notification Service Extension의 사용자 지정
.xcconfig파일에서 CocoaPods가 생성한.xcconfig를 직접#include한다면 해당 줄을 삭제하거나#include?로 바꾸세요. - Xcode 프로젝트 상단
File > Add Package Dependencies...를 클릭하고 저장소 주소https://github.com/zaikorea/Blux-iOS-SDK.git를 입력하세요. - Dependency Rule에서 Up to Next Major Version을 선택하고 최소 버전에
0.6.24를 입력하세요. Xcode가 이 칸을 최신 버전으로 채워 두는데,blux_flutter가 고정한 버전보다 높으면 의존성 해석에 실패합니다. - Add to Target