mattermost-push-plugin/agent-ops/rules/project/domain/apple-stubs/rules.md

2.1 KiB

domain last_rule_review_commit last_rule_updated_at
apple-stubs 678302bc3e 2026-05-25

apple-stubs

목적 / 책임

iOS와 macOS plugin 등록 scaffold를 유지하고, 아직 구현되지 않은 Mattermost push 기능의 플랫폼 경계를 명확히 둔다.

포함 경로

  • ios/ — iOS Swift plugin scaffold, podspec, privacy manifest, assets placeholder를 포함한다.
  • macos/ — macOS Swift plugin scaffold, podspec, privacy manifest를 포함한다.

제외 경로

  • android/ — production-ready push runtime 도메인이다.
  • lib/ — cross-platform Dart public API 도메인이다.
  • example/ — host app integration 예제 도메인이다.

주요 구성 요소

  • ios/Classes/MattermostPushPlugin.swift — iOS FlutterPlugin 등록과 getPlatformVersion stub을 제공한다.
  • macos/Classes/MattermostPushPlugin.swift — macOS FlutterPlugin 등록과 getPlatformVersion stub을 제공한다.
  • PrivacyInfo.xcprivacy — Apple platform privacy manifest scaffold를 유지한다.

유지할 패턴

  • Apple platform은 현재 no-op scaffold임을 유지하고 Android 기능 parity를 암묵적으로 선언하지 않는다.
  • Swift plugin channel 이름은 scaffold method channel과 Dart public API 확장 계획을 고려해 변경한다.
  • podspec, privacy manifest, generated Runner/example 파일의 책임을 구분한다.

다른 도메인과의 경계

  • dart-api: Dart API 변경이 Apple native 구현을 요구하면 stub 상태와 expected behavior를 함께 조정한다.
  • android-push-runtime: Android runtime helper나 manifest 정책을 Apple 경로로 복사하지 않는다.
  • project-support: README support matrix와 example 문서는 Apple scaffold 상태를 정확히 반영해야 한다.

금지 사항

  • iOS/macOS에서 구현되지 않은 push, reply, ACK, signing key 동작을 성공으로 가장하지 않는다.
  • Android 전용 dependency나 manifest 개념을 Apple scaffold에 끌어오지 않는다.
  • generated Xcode/example 산출물을 수동 편집 범위에 포함하지 않는다.