Skip to content

TeeVee06/Split_iOS

Repository files navigation

Split Rewards iOS

iOS client for Split.

This app includes:

  • self-custodial Bitcoin wallet flows
  • Lightning address management
  • Split messaging
  • Proof of Spend posting
  • rewards and merchant discovery flows

Why This Project Exists

The project-purpose writeup lives here:

That document explains the core thesis behind Split: Bitcoin should be usable as money, spending requires coordination, and communication is part of making a real Bitcoin economy work.

Repo Status

This is a real iOS app project, not a sample app.

This public repository exists for transparency and source availability. Active development may occur privately before released code is synced here. Pull requests may not be reviewed or merged.

Outside developers should treat this as production code with public-repo hygiene requirements.

Requirements

  • Xcode 17 or newer recommended
  • Swift 5
  • iOS deployment target: 17.6
  • Apple Developer account if you want to run on device or archive

Opening the Project

Open:

The main app sources live in:

The share extension sources live in:

Test targets live in:

Build Notes

The app uses automatic signing in the project file. If you are building under your own Apple account, you will probably need to:

  • set your own development team
  • adjust the bundle identifiers if needed
  • replace the placeholder shared app-group and shared keychain identifiers
  • use your own signing configuration for device/archive builds

This public snapshot includes the main app, the test targets, and the share extension target.

Backend Configuration

Backend URLs are provided through xcconfig files, not hardcoded directly in Swift.

Committed public-safe defaults live in:

Private local overrides can be created from:

Those local override files are gitignored.

Set backend and messaging config with:

  • BASE_SCHEME
  • BASE_HOST
  • MESSAGING_PUSH_ENV
  • MESSAGING_IDENTITY_DOMAIN
  • LIGHTNING_ADDRESS_DOMAIN

The main app reads these values in AppConfig.swift, and the share extension reads the matching public-safe placeholders from its Info.plist configuration.

The public project also uses placeholder values for:

  • shared app-group identifier
  • shared keychain access group
  • keychain service namespace
  • messaging identity domain
  • Lightning address domain
  • public support/contact examples

Those values are intentionally public-safe in this repository and should be replaced with your own app identifiers for real signed builds.

If you are not an authorized developer working against Split infrastructure, point the app at your own backend before using it as a development client.

Project Highlights

Testing

This repo includes:

Run tests from Xcode using the normal test action for the project.

Messaging Notes

The messaging trust/privacy writeup lives here:

That document is intentionally technical and conservative in scope.

Open Source Hygiene

Before publishing or contributing, treat this repo as public:

  • do not commit wallet seeds
  • do not commit local signing assets
  • do not commit provisioning profiles
  • do not commit private support material
  • do not assume the default backend URLs are appropriate for your own fork

License

This repository is licensed under the Apache License 2.0.

See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages