Skip to content

mechaHarry/redwing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Redwing

Redwing is a native macOS Webex client foundation. It uses the local webex-swift-sdk package for OAuth, Keychain-backed account storage, realtime connection state, Spaces, Messages, and threaded message snapshots.

The current app is read-only. It provides:

  • A Webex setup flow for one active account
  • A native Spaces -> Messages -> Threads lane surface
  • A menu bar attention feed
  • A shared realtime Webex connection
  • Diagnostics and status reporting for local testing

Prerequisites

  • macOS 26.4 or newer with Xcode installed
  • The redwing.xcodeproj project in this repository
  • The local SDK checkout at:
/Users/harriche/gits/github.com/mechaHarry/webex-swift-sdk

The SDK remote is:

[email protected]:mechaHarry/webex-swift-sdk.git

If Xcode cannot resolve webex-swift-sdk, make sure that local checkout exists at the path above or update the package reference in Xcode.

Versioning

Update the app version in one place:

Redwing/Config/Version.xcconfig

REDWING_SEMVER is the release version source of truth. The app and test bundle plists consume it through Xcode build settings for both CFBundleShortVersionString and CFBundleVersion.

Use MAJOR.MINOR.PATCH without a leading v; the release script creates the signed git tag as v<REDWING_SEMVER>.

Building

List the available schemes:

xcodebuild -list -project redwing.xcodeproj

Build the app locally:

xcodebuild build \
  -project redwing.xcodeproj \
  -scheme Redwing \
  -destination 'platform=macOS' \
  -derivedDataPath /private/tmp/redwing-local \
  CODE_SIGNING_ALLOWED=NO

Run the test suite:

xcodebuild test \
  -project redwing.xcodeproj \
  -scheme Redwing \
  -destination 'platform=macOS' \
  -derivedDataPath /private/tmp/redwing-local-tests \
  CODE_SIGNING_ALLOWED=NO

Opening Locally For Testing

Open the project in Xcode:

open redwing.xcodeproj

Select the Redwing scheme, then run the app with Product > Run.

To open a command-line build directly, first run the build command above, then:

open /private/tmp/redwing-local/Build/Products/Debug/Redwing.app

On first launch, Redwing shows Webex setup. Enter:

  • Client ID
  • Client secret
  • Redirect URI, defaulting to http://127.0.0.1:8282/oauth/callback
  • Scopes including spark:all spark:kms

After authorization, the app loads Spaces, Messages, thread details when a threaded message is selected, and attention items in the menu bar.

Notes

  • Secrets are stored through the SDK-backed Keychain store.
  • The app is sandboxed and has network client entitlement enabled.
  • UI code is native SwiftUI/AppKit and does not call Webex REST directly.

Releasing

Create only the local versioned zip and checksum:

./release.sh --package-only

Run the full release flow:

GITHUB_TOKEN=... ./release.sh

The script reads REDWING_SEMVER, builds the Release app, writes dist/Redwing-<version>-macos-<arch>.zip and .sha256, creates and verifies a signed tag named v<version>, pushes it, creates a GitHub release with generated notes, uploads both assets, and publishes the release. By default it passes CODE_SIGNING_ALLOWED=NO to Xcode; set CODE_SIGNING_ALLOWED=YES when the project has a working signing team/certificate configured.

About

Swift based Client for Webex Rest API

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors