Files

2.9 KiB

Publishing Guide

Repository Structure

Repo URL Branch Content
Public github.com/GLEGram/GLEGram-iOS main Clean code, no secrets
Private github.com/GLEGram/GLEGram-iOS-Private main Full code with keys, codesigning

Local Setup

cd /Users/leeksov/Desktop/GLEGram-iOS-public

# Remotes:
#   origin  → Public repo (GLEGram/GLEGram-iOS)
#   private → Private repo (GLEGram/GLEGram-iOS-Private)

# Branches:
#   main    → public code (no secrets)
#   private → full code (with secrets)

Daily Workflow

1. Работа ведётся в ветке private

git checkout private
# ... делаешь изменения ...
git add -A
git commit -m "Description of changes"

2. Пуш в приватный репо

git push private private:main

3. Публикация в публичный репо

# Переключиться на public ветку
git checkout main

# Слить изменения из private
git merge private --no-commit

# Очистить секреты перед коммитом
./scripts/strip-secrets.sh

# Проверить что секретов нет
./scripts/check-secrets.sh

# Закоммитить и запушить
git add -A
git commit -m "Description of changes"
git push origin main

Файлы с секретами (автоматически очищаются strip-secrets.sh)

Файл Что содержит Публичная замена
Swiftgram/SGConfig/Sources/File.swift AES/HMAC ключи, API URL nil значения
build-system/ipa-build-configuration.json API ID, Hash, Team ID YOUR_* placeholder
build-system/glegram-appstore-configuration.json То же YOUR_* placeholder
build-system/real-codesigning/ Сертификаты, профили Пустые папки с README

Скрипты

strip-secrets.sh — Удаление секретов перед публикацией

Запускать ТОЛЬКО в ветке main перед коммитом в публичный репо.

check-secrets.sh — Проверка отсутствия секретов

Запускать после strip-secrets.sh для верификации. Если находит секреты — НЕ пушить.

Правила

  1. НИКОГДА не пушить ветку private в origin (публичный репо)
  2. ВСЕГДА запускать strip-secrets.sh перед пушем в публичный репо
  3. ВСЕГДА проверять check-secrets.sh перед пушем
  4. Новые секреты добавлять ТОЛЬКО в ветку private
  5. При добавлении нового секретного файла — обновить strip-secrets.sh