shareplay-activitieslisted
Install: claude install-skill dpearson2699/swift-ios-skills
# GroupActivities / SharePlay
Build shared real-time experiences using the GroupActivities framework. SharePlay
connects people over FaceTime or iMessage, synchronizing media playback, app state,
or custom data. Targets Swift 6.3 / iOS 26+.
## Contents
- [Setup](#setup)
- [Defining a GroupActivity](#defining-a-groupactivity)
- [Session Lifecycle](#session-lifecycle)
- [Sending and Receiving Messages](#sending-and-receiving-messages)
- [Coordinated Media Playback](#coordinated-media-playback)
- [Starting SharePlay from Your App](#starting-shareplay-from-your-app)
- [GroupSessionJournal: File Transfer](#groupsessionjournal-file-transfer)
- [Common Mistakes](#common-mistakes)
- [Review Checklist](#review-checklist)
- [References](#references)
## Setup
### Entitlements
Add the Group Activities entitlement to your app:
```xml
<key>com.apple.developer.group-session</key>
<true/>
```
### Info.plist
For apps that start SharePlay without a FaceTime call (iOS 17+), add:
```xml
<key>NSSupportsGroupActivities</key>
<true/>
```
### Checking Eligibility
```swift
import GroupActivities
let observer = GroupStateObserver()
// Check if a FaceTime call or iMessage group is active
if observer.isEligibleForGroupSession {
showSharePlayButton()
}
```
Observe changes reactively:
```swift
for await isEligible in observer.$isEligibleForGroupSession.values {
showSharePlayButton(isEligible)
}
```
## Defining a GroupActivity
Conform to `GroupActivity` and provide metadata:
```s