YanDisk v1.0.1: тёмная иконка по теме системы, вкладки (Скриншоты скрыт, Файлы→Доступные мне), синк по умолчанию 'В облаке', ПРАВКИ.md

- Иконка: AppIconDark.icns + переключение Dock-иконки по effectiveAppearance (KVO)
- Сайдбар: убран 'Скриншоты', 'Файлы' → 'Доступные мне' (заглушка), первая вкладка — все файлы и папки
- SyncPolicyStore.globalMode по умолчанию .cloudOnly ('В облаке')
- build.sh/smoke_test.sh: SDKROOT из Xcode (фикс SDK-конфликта тулчейна 6.3.3/SDK 6.4)
- ПРАВКИ.md: полный аудит и план доработок
This commit is contained in:
2026-09-15 21:16:22 +03:00
commit 9098340f2a
50 changed files with 3100 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
# YanDisk
Нативный SwiftUI-клиент Яндекс.Диска для macOS (Apple Silicon).
## Возможности
- Авторизация OAuth
- Просмотр Диска: папки, файлы, «Недавние», «Корзина»
- Чтение / скачивание, загрузка (кнопка и drag-and-drop)
- Копирование, перемещение, переименование, дублирование
- Удаление в Корзину, восстановление, очистка Корзины
- Синхронизация `~/Yandex.Disk`: **Везде** / **Только на компьютере** / **Только в облаке**
- Общий доступ: ссылка, права, пароль, срок действия
- Иконка в меню-баре, светлая и тёмная темы
## Сборка
```bash
cd /Users/statix/Projects/YanDisk
./build.sh
open .build/YanDisk.app
```
Установка в `/Applications`:
```bash
rm -rf /Applications/YanDisk.app
cp -R .build/YanDisk.app /Applications/
codesign --force --deep --sign - /Applications/YanDisk.app
```
## Иконка
Исходники: `icons/Icon-iOS-*.png` (1024×1024).
Собранные ресурсы:
- `Resources/AppIcon.icns` — Dock/Finder
- `Resources/Assets.xcassets/AppIcon.appiconset` — варианты light/dark (HIG)
Пересборка иконки:
```bash
./scripts/generate_icons.sh
```
## Темы
Настройки → Основные → **Тема**: Как в системе / Светлая / Тёмная.
Значение хранится в `AppStorage("Appearance")`.
## Структура
```
Sources/YanDisk/
App/ точка входа, AppDelegate, окна
Core/ API, OAuth, Keychain, модели, AppStore
Sync/ движок синхронизации
UI/ меню-бар, браузер, шаринг, настройки, вход
icons/ исходные PNG иконки
Resources/ Info.plist, AppIcon.icns, Assets.xcassets
```
## Авторизация
1. Иконка облака → **Добавить аккаунт**
2. **Войти через Яндекс**
3. Вставить `access_token`