mirror of
https://github.com/GLEGram/GLEGram-iOS.git
synced 2026-04-23 11:26:54 +02:00
88 lines
2.9 KiB
Markdown
88 lines
2.9 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
git checkout private
|
|
# ... делаешь изменения ...
|
|
git add -A
|
|
git commit -m "Description of changes"
|
|
```
|
|
|
|
### 2. Пуш в приватный репо
|
|
|
|
```bash
|
|
git push private private:main
|
|
```
|
|
|
|
### 3. Публикация в публичный репо
|
|
|
|
```bash
|
|
# Переключиться на 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`
|