From 95700e4cc624e97882ee00f15c1df82e4e4dcc29 Mon Sep 17 00:00:00 2001
From: KIM CHANHEE <85754295+chanhihi@users.noreply.github.com>
Date: Mon, 29 Apr 2024 17:14:27 +0900
Subject: [PATCH] =?UTF-8?q?Revert=20"Version=201.0.0=20=F0=9F=A5=B3?=
=?UTF-8?q?=F0=9F=8E=8A=20(#257)"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 3caea10a300b32aca555bfe34e2cb8f19817e044.
---
.github/PULL_REQUEST_TEMPLATE.md | 10 -
.github/Release-note.yml | 51 --
.github/workflows/Deployment.yml | 98 ----
.gitignore | 9 -
.gitmodules | 3 -
Gemfile | 4 -
Makefile | 19 -
Project.swift | 76 +--
README.md | 100 ----
.../Media.xcassets/128.imageset/128 1.png | Bin 7717 -> 0 bytes
.../Media.xcassets/128.imageset/128.png | Bin 7717 -> 0 bytes
.../Media.xcassets/128.imageset/Contents.json | 22 -
.../Resources/Media.xcassets/Contents.json | 6 -
.../ShareExtension+UIColor+Extension.swift | 22 -
.../ShareExtension+UIbutton+Extension.swift | 22 -
.../Sources/ShareViewController.swift | 187 -------
.../View/ShareExtensionPanelView.swift | 145 -----
Tuist/Dependencies.swift | 7 +-
Tuist/Signing/debug.cer.encrypted | 1 -
Tuist/Signing/debug.p12.encrypted | 1 -
Tuist/Signing/iBox.Debug.mobileprovision | Bin 17472 -> 0 bytes
Tuist/Signing/iBox.Release.mobileprovision | Bin 13200 -> 0 bytes
.../iBoxShareExtension.Debug.mobileprovision | Bin 16701 -> 0 bytes
...iBoxShareExtension.Release.mobileprovision | Bin 12415 -> 0 bytes
Tuist/Signing/release.cer.encrypted | 1 -
Tuist/Signing/release.p12.encrypted | 1 -
fastlane/Appfile | 8 -
fastlane/Fastfile | 73 ---
fastlane/README.md | 40 --
fastlane/report.xml | 38 --
.../Assets.xcassets/42pack_icon/Contents.json | 6 -
.../42pack_icon/fox/Contents.json | 6 -
.../fox/fox_page0.imageset/Contents.json | 24 -
.../fox/fox_page0.imageset/fox0.png | Bin 3944 -> 0 bytes
.../fox/fox_page1.imageset/Contents.json | 24 -
.../fox/fox_page1.imageset/fox1.png | Bin 3950 -> 0 bytes
.../fox/fox_page2.imageset/Contents.json | 24 -
.../fox/fox_page2.imageset/fox2.png | Bin 3946 -> 0 bytes
.../fox/fox_page3.imageset/Contents.json | 24 -
.../fox/fox_page3.imageset/fox3.png | Bin 3990 -> 0 bytes
.../fox/fox_page4.imageset/Contents.json | 24 -
.../fox/fox_page4.imageset/fox4.png | Bin 3900 -> 0 bytes
.../42pack_icon/sitting_fox/Contents.json | 6 -
.../sitting_fox0.imageset/Contents.json | 24 -
.../sitting_fox0.imageset/sitting_fox0.png | Bin 3816 -> 0 bytes
.../sitting_fox1.imageset/Contents.json | 24 -
.../sitting_fox1.imageset/sitting_fox1.png | Bin 3673 -> 0 bytes
.../sitting_fox2.imageset/Contents.json | 24 -
.../sitting_fox2.imageset/sitting_fox2.png | Bin 3765 -> 0 bytes
.../sitting_fox3.imageset/Contents.json | 24 -
.../sitting_fox3.imageset/sitting_fox3.png | Bin 3673 -> 0 bytes
.../AppIcon.appiconset/100.png | Bin 3464 -> 0 bytes
.../AppIcon.appiconset/1024.png | Bin 47451 -> 0 bytes
.../AppIcon.appiconset/114.png | Bin 3988 -> 0 bytes
.../AppIcon.appiconset/120.png | Bin 4166 -> 0 bytes
.../AppIcon.appiconset/144.png | Bin 5166 -> 0 bytes
.../AppIcon.appiconset/152.png | Bin 5607 -> 0 bytes
.../AppIcon.appiconset/167.png | Bin 5882 -> 0 bytes
.../AppIcon.appiconset/180.png | Bin 6679 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/20.png | Bin 622 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/29.png | Bin 941 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/40.png | Bin 1334 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/50.png | Bin 1715 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/57.png | Bin 1922 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/58.png | Bin 1914 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/60.png | Bin 1989 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/72.png | Bin 2444 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/76.png | Bin 2622 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/80.png | Bin 2662 -> 0 bytes
.../Assets.xcassets/AppIcon.appiconset/87.png | Bin 3025 -> 0 bytes
.../AppIcon.appiconset/Contents.json | 149 +----
.../LaunchIcon.imageset/Contents.json | 21 -
.../LaunchIcon.imageset/LaunchIcon.png | Bin 47803 -> 0 bytes
iBox/Resources/Assets.xcassets/Logo/1024.png | Bin 193380 -> 0 bytes
.../Logo/128.imageset/128 1.png | Bin 7717 -> 0 bytes
.../Assets.xcassets/Logo/128.imageset/128.png | Bin 7717 -> 0 bytes
.../Logo/128.imageset/Contents.json | 22 -
iBox/Resources/Assets.xcassets/Logo/128.png | Bin 7717 -> 0 bytes
iBox/Resources/Assets.xcassets/Logo/256.png | Bin 22350 -> 0 bytes
iBox/Resources/Assets.xcassets/Logo/32.png | Bin 1196 -> 0 bytes
iBox/Resources/Assets.xcassets/Logo/512.png | Bin 67765 -> 0 bytes
iBox/Resources/Assets.xcassets/Logo/64.png | Bin 2884 -> 0 bytes
.../Assets.xcassets/Logo/Contents.json | 6 -
.../appstore.imageset/Contents.json | 21 -
.../appstore.imageset/appstore.png | Bin 47451 -> 0 bytes
.../playstore.imageset/Contents.json | 21 -
.../playstore.imageset/playstore.png | Bin 24441 -> 0 bytes
iBox/Resources/Version | 1 -
.../iBox.xcdatamodel/contents | 16 +-
.../Sources/AddBookmark/AddBookmarkView.swift | 312 -----------
.../AddBookmarkViewController.swift | 226 --------
iBox/Sources/AddBookmark/FolderListCell.swift | 88 ---
iBox/Sources/AddBookmark/FolderListView.swift | 108 ----
.../FolderListViewController.swift | 113 ----
iBox/Sources/AppDelegate.swift | 63 ++-
iBox/Sources/Base/BaseViewController.swift | 238 --------
.../Base/BottomSheetViewController.swift | 143 -----
iBox/Sources/BaseViewController.swift | 18 +
iBox/Sources/BoxList/BoxListCell.swift | 129 -----
.../BoxList/BoxListCellViewModel.swift | 29 -
.../BoxList/BoxListSectionViewModel.swift | 74 ---
iBox/Sources/BoxList/BoxListView.swift | 525 ------------------
.../BoxList/BoxListViewController.swift | 303 ----------
iBox/Sources/BoxList/BoxListViewModel.swift | 206 -------
iBox/Sources/BoxList/Edit/EditCell.swift | 72 ---
iBox/Sources/BoxList/Edit/EditView.swift | 87 ---
.../BoxList/Edit/EditViewController.swift | 34 --
.../BoxList/EditFolder/EditFolderCell.swift | 88 ---
.../BoxList/EditFolder/EditFolderView.swift | 152 -----
.../EditFolder/EditFolderViewController.swift | 139 -----
.../EditFolder/EditFolderViewModel.swift | 59 --
iBox/Sources/BoxList/FolderButton.swift | 87 ---
iBox/Sources/BoxList/FolderView.swift | 63 ---
.../CustomLaunchScreenView.swift | 79 ---
.../CustomLaunchScreenViewController.swift | 93 ----
iBox/Sources/Error/ErrorCode.swift | 18 -
iBox/Sources/Error/ErrorPageView.swift | 187 -------
.../Error/ErrorPageViewController.swift | 154 -----
.../Extension/Notification+Extension.swift | 15 -
.../Extension/UIButton+Extension.swift | 55 --
.../Sources/Extension/UIColor+Extension.swift | 43 --
iBox/Sources/Extension/UIFont+Extension.swift | 23 -
.../Sources/Extension/UIImage+Extension.swift | 27 -
iBox/Sources/Extension/UIView+Extension.swift | 54 --
.../UIViewController+Extension.swift | 30 -
iBox/Sources/Favorite/FavoriteView.swift | 68 ---
.../Favorite/FavoriteViewController.swift | 44 --
iBox/Sources/Initializer/DefaultData.swift | 50 --
.../Initializer/DefaultDataModel.swift | 31 --
iBox/Sources/Main/MainTabBarController.swift | 66 ---
iBox/Sources/MainView.swift | 46 ++
iBox/Sources/MainViewController.swift | 18 +
iBox/Sources/Model/Bookmark.swift | 14 -
iBox/Sources/Model/BookmarkError.swift | 14 -
iBox/Sources/Model/EditItem.swift | 19 -
iBox/Sources/Model/Folder.swift | 15 -
iBox/Sources/Model/HomeTabType.swift | 20 -
iBox/Sources/Model/Metadata.swift | 12 -
iBox/Sources/Model/SettingsItem.swift | 33 --
iBox/Sources/Model/Theme.swift | 30 -
iBox/Sources/Model/VersionInfo.swift | 23 -
iBox/Sources/SceneDelegate.swift | 19 +-
iBox/Sources/Settings/Guide/GuideView.swift | 68 ---
.../Settings/Guide/GuideViewController.swift | 30 -
.../HomeTab/HomeTabSelectorCell.swift | 74 ---
.../HomeTab/HomeTabSelectorView.swift | 95 ----
.../HomeTabSelectorViewController.swift | 32 --
.../HomeTab/HomeTabSelectorViewModel.swift | 15 -
.../Settings/Reset/ResetSuccessView.swift | 99 ----
iBox/Sources/Settings/Reset/ResetView.swift | 73 ---
.../Settings/Reset/ResetViewController.swift | 96 ----
.../Settings/SettingsCellViewModel.swift | 30 -
iBox/Sources/Settings/SettingsItemCell.swift | 110 ----
.../Settings/SettingsSectionViewModel.swift | 18 -
iBox/Sources/Settings/SettingsView.swift | 131 -----
.../Settings/SettingsViewController.swift | 63 ---
iBox/Sources/Settings/SettingsViewModel.swift | 55 --
iBox/Sources/Settings/Theme/ThemeCell.swift | 88 ---
iBox/Sources/Settings/Theme/ThemeView.swift | 102 ----
.../Settings/Theme/ThemeViewController.swift | 32 --
.../Settings/Theme/ThemeViewModel.swift | 23 -
iBox/Sources/Shared/AddBookmarkManager.swift | 105 ----
.../FullSizePresentationController.swift | 37 --
.../SlideInPresentationAnimator.swift | 46 --
iBox/Sources/Shared/AppStateManager.swift | 19 -
iBox/Sources/Shared/CoreDataManager.swift | 333 -----------
iBox/Sources/Shared/NetworkManager.swift | 42 --
.../Shared/SlideInPresentationManager.swift | 22 -
iBox/Sources/Shared/UserDefaultsManager.swift | 60 --
iBox/Sources/Shared/WebCacheManager.swift | 49 --
iBox/Sources/Shared/WebViewPreloader.swift | 48 --
.../Sources/Versioning/VersionCheckCode.swift | 21 -
.../Versioning/VersioningHandler.swift | 83 ---
iBox/Sources/Web/RefreshControl.swift | 119 ----
iBox/Sources/Web/WebView.swift | 233 --------
iBox/Sources/Web/WebViewController.swift | 99 ----
176 files changed, 153 insertions(+), 8488 deletions(-)
delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md
delete mode 100644 .github/Release-note.yml
delete mode 100644 .github/workflows/Deployment.yml
delete mode 100644 .gitmodules
delete mode 100644 Gemfile
delete mode 100644 Makefile
delete mode 100644 README.md
delete mode 100644 ShareExtension/Resources/Media.xcassets/128.imageset/128 1.png
delete mode 100644 ShareExtension/Resources/Media.xcassets/128.imageset/128.png
delete mode 100644 ShareExtension/Resources/Media.xcassets/128.imageset/Contents.json
delete mode 100644 ShareExtension/Resources/Media.xcassets/Contents.json
delete mode 100644 ShareExtension/Sources/Extension/ShareExtension+UIColor+Extension.swift
delete mode 100644 ShareExtension/Sources/Extension/ShareExtension+UIbutton+Extension.swift
delete mode 100644 ShareExtension/Sources/ShareViewController.swift
delete mode 100644 ShareExtension/Sources/View/ShareExtensionPanelView.swift
delete mode 100644 Tuist/Signing/debug.cer.encrypted
delete mode 100644 Tuist/Signing/debug.p12.encrypted
delete mode 100644 Tuist/Signing/iBox.Debug.mobileprovision
delete mode 100644 Tuist/Signing/iBox.Release.mobileprovision
delete mode 100644 Tuist/Signing/iBoxShareExtension.Debug.mobileprovision
delete mode 100644 Tuist/Signing/iBoxShareExtension.Release.mobileprovision
delete mode 100644 Tuist/Signing/release.cer.encrypted
delete mode 100644 Tuist/Signing/release.p12.encrypted
delete mode 100644 fastlane/Appfile
delete mode 100644 fastlane/Fastfile
delete mode 100644 fastlane/README.md
delete mode 100644 fastlane/report.xml
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page0.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page0.imageset/fox0.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page1.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page1.imageset/fox1.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page2.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page2.imageset/fox2.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page3.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page3.imageset/fox3.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page4.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/fox/fox_page4.imageset/fox4.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox0.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox0.imageset/sitting_fox0.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox1.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox1.imageset/sitting_fox1.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox2.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox2.imageset/sitting_fox2.png
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox3.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/42pack_icon/sitting_fox/sitting_fox3.imageset/sitting_fox3.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/100.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/1024.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/114.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/120.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/144.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/152.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/167.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/180.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/20.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/29.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/40.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/50.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/57.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/58.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/60.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/72.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/76.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/80.png
delete mode 100644 iBox/Resources/Assets.xcassets/AppIcon.appiconset/87.png
delete mode 100644 iBox/Resources/Assets.xcassets/LaunchIcon.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/LaunchIcon.imageset/LaunchIcon.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/1024.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/128.imageset/128 1.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/128.imageset/128.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/128.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/128.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/256.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/32.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/512.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/64.png
delete mode 100644 iBox/Resources/Assets.xcassets/Logo/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/appstore.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/appstore.imageset/appstore.png
delete mode 100644 iBox/Resources/Assets.xcassets/playstore.imageset/Contents.json
delete mode 100644 iBox/Resources/Assets.xcassets/playstore.imageset/playstore.png
delete mode 160000 iBox/Resources/Version
delete mode 100644 iBox/Sources/AddBookmark/AddBookmarkView.swift
delete mode 100644 iBox/Sources/AddBookmark/AddBookmarkViewController.swift
delete mode 100644 iBox/Sources/AddBookmark/FolderListCell.swift
delete mode 100644 iBox/Sources/AddBookmark/FolderListView.swift
delete mode 100644 iBox/Sources/AddBookmark/FolderListViewController.swift
delete mode 100644 iBox/Sources/Base/BaseViewController.swift
delete mode 100644 iBox/Sources/Base/BottomSheetViewController.swift
create mode 100644 iBox/Sources/BaseViewController.swift
delete mode 100644 iBox/Sources/BoxList/BoxListCell.swift
delete mode 100644 iBox/Sources/BoxList/BoxListCellViewModel.swift
delete mode 100644 iBox/Sources/BoxList/BoxListSectionViewModel.swift
delete mode 100644 iBox/Sources/BoxList/BoxListView.swift
delete mode 100644 iBox/Sources/BoxList/BoxListViewController.swift
delete mode 100644 iBox/Sources/BoxList/BoxListViewModel.swift
delete mode 100644 iBox/Sources/BoxList/Edit/EditCell.swift
delete mode 100644 iBox/Sources/BoxList/Edit/EditView.swift
delete mode 100644 iBox/Sources/BoxList/Edit/EditViewController.swift
delete mode 100644 iBox/Sources/BoxList/EditFolder/EditFolderCell.swift
delete mode 100644 iBox/Sources/BoxList/EditFolder/EditFolderView.swift
delete mode 100644 iBox/Sources/BoxList/EditFolder/EditFolderViewController.swift
delete mode 100644 iBox/Sources/BoxList/EditFolder/EditFolderViewModel.swift
delete mode 100644 iBox/Sources/BoxList/FolderButton.swift
delete mode 100644 iBox/Sources/BoxList/FolderView.swift
delete mode 100644 iBox/Sources/CustomLaunchScreen/CustomLaunchScreenView.swift
delete mode 100644 iBox/Sources/CustomLaunchScreen/CustomLaunchScreenViewController.swift
delete mode 100644 iBox/Sources/Error/ErrorCode.swift
delete mode 100644 iBox/Sources/Error/ErrorPageView.swift
delete mode 100644 iBox/Sources/Error/ErrorPageViewController.swift
delete mode 100644 iBox/Sources/Extension/Notification+Extension.swift
delete mode 100644 iBox/Sources/Extension/UIButton+Extension.swift
delete mode 100644 iBox/Sources/Extension/UIColor+Extension.swift
delete mode 100644 iBox/Sources/Extension/UIFont+Extension.swift
delete mode 100644 iBox/Sources/Extension/UIImage+Extension.swift
delete mode 100644 iBox/Sources/Extension/UIView+Extension.swift
delete mode 100644 iBox/Sources/Extension/UIViewController+Extension.swift
delete mode 100644 iBox/Sources/Favorite/FavoriteView.swift
delete mode 100644 iBox/Sources/Favorite/FavoriteViewController.swift
delete mode 100644 iBox/Sources/Initializer/DefaultData.swift
delete mode 100644 iBox/Sources/Initializer/DefaultDataModel.swift
delete mode 100644 iBox/Sources/Main/MainTabBarController.swift
create mode 100644 iBox/Sources/MainView.swift
create mode 100644 iBox/Sources/MainViewController.swift
delete mode 100644 iBox/Sources/Model/Bookmark.swift
delete mode 100644 iBox/Sources/Model/BookmarkError.swift
delete mode 100644 iBox/Sources/Model/EditItem.swift
delete mode 100644 iBox/Sources/Model/Folder.swift
delete mode 100644 iBox/Sources/Model/HomeTabType.swift
delete mode 100644 iBox/Sources/Model/Metadata.swift
delete mode 100644 iBox/Sources/Model/SettingsItem.swift
delete mode 100644 iBox/Sources/Model/Theme.swift
delete mode 100644 iBox/Sources/Model/VersionInfo.swift
delete mode 100644 iBox/Sources/Settings/Guide/GuideView.swift
delete mode 100644 iBox/Sources/Settings/Guide/GuideViewController.swift
delete mode 100644 iBox/Sources/Settings/HomeTab/HomeTabSelectorCell.swift
delete mode 100644 iBox/Sources/Settings/HomeTab/HomeTabSelectorView.swift
delete mode 100644 iBox/Sources/Settings/HomeTab/HomeTabSelectorViewController.swift
delete mode 100644 iBox/Sources/Settings/HomeTab/HomeTabSelectorViewModel.swift
delete mode 100644 iBox/Sources/Settings/Reset/ResetSuccessView.swift
delete mode 100644 iBox/Sources/Settings/Reset/ResetView.swift
delete mode 100644 iBox/Sources/Settings/Reset/ResetViewController.swift
delete mode 100644 iBox/Sources/Settings/SettingsCellViewModel.swift
delete mode 100644 iBox/Sources/Settings/SettingsItemCell.swift
delete mode 100644 iBox/Sources/Settings/SettingsSectionViewModel.swift
delete mode 100644 iBox/Sources/Settings/SettingsView.swift
delete mode 100644 iBox/Sources/Settings/SettingsViewController.swift
delete mode 100644 iBox/Sources/Settings/SettingsViewModel.swift
delete mode 100644 iBox/Sources/Settings/Theme/ThemeCell.swift
delete mode 100644 iBox/Sources/Settings/Theme/ThemeView.swift
delete mode 100644 iBox/Sources/Settings/Theme/ThemeViewController.swift
delete mode 100644 iBox/Sources/Settings/Theme/ThemeViewModel.swift
delete mode 100644 iBox/Sources/Shared/AddBookmarkManager.swift
delete mode 100644 iBox/Sources/Shared/Animator/FullSizePresentationController.swift
delete mode 100644 iBox/Sources/Shared/Animator/SlideInPresentationAnimator.swift
delete mode 100644 iBox/Sources/Shared/AppStateManager.swift
delete mode 100644 iBox/Sources/Shared/CoreDataManager.swift
delete mode 100644 iBox/Sources/Shared/NetworkManager.swift
delete mode 100644 iBox/Sources/Shared/SlideInPresentationManager.swift
delete mode 100644 iBox/Sources/Shared/UserDefaultsManager.swift
delete mode 100644 iBox/Sources/Shared/WebCacheManager.swift
delete mode 100644 iBox/Sources/Shared/WebViewPreloader.swift
delete mode 100644 iBox/Sources/Versioning/VersionCheckCode.swift
delete mode 100644 iBox/Sources/Versioning/VersioningHandler.swift
delete mode 100644 iBox/Sources/Web/RefreshControl.swift
delete mode 100644 iBox/Sources/Web/WebView.swift
delete mode 100644 iBox/Sources/Web/WebViewController.swift
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index a8aee27..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,10 +0,0 @@
-### π κ°μ
--
-
-### π» μμ
λ΄μ©
--
-
-### πΌοΈ μ€ν¬λ¦°μ·
-|||
-|---|---|
-|||
diff --git a/.github/Release-note.yml b/.github/Release-note.yml
deleted file mode 100644
index e9c7fa8..0000000
--- a/.github/Release-note.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# Author by chanhihi
-# Date 2023.08.09
-# name-template: "v$NEXT_MINOR_VERSION π¦"
-# tag-template: "v$NEXT_MINOR_VERSION"
-
-name-template: "v$RESOLVED_VERSION π¦"
-tag-template: "v$RESOLVED_VERSION"
-version-resolver:
- major:
- labels:
- - "β οΈ Breaking changes"
- minor:
- labels:
- - "β¨ Enhancement"
- patch:
- labels:
- - "β Refactor"
- - "π Bug"
- default: patch
-
-categories:
- - title: "β οΈ Breaking changes"
- labels:
- - "β οΈ Breaking Change"
- - title: "π Features"
- labels:
- - "β¨ Enhancement"
- - "β Refactor"
- - "π Structure"
- - title: "π Bug Fixes"
- labels:
- - "π Bug"
- - title: "π Documentation"
- labels:
- - "π Documentation"
- - title: "π¨ Style"
- labels:
- - "π UI/UX"
- - title: "π Infrastructure"
- labels:
- - "π DevOps"
-exclude-labels:
- - "π Question"
- - "βοΈ Umbrella"
-
-change-template: "- $TITLE (#$NUMBER)"
-change-title-escapes: '\<*_&'
-
-template: |
- ## Changes
- $CHANGES
diff --git a/.github/workflows/Deployment.yml b/.github/workflows/Deployment.yml
deleted file mode 100644
index 49762e0..0000000
--- a/.github/workflows/Deployment.yml
+++ /dev/null
@@ -1,98 +0,0 @@
-# Author by chanhihi
-# Date 2024.04.26
-
-name: Deployment
-
-on:
- pull_request:
- branches:
- - main
- types:
- - closed
-
-jobs:
- build:
- name: Deploy on macOS latest - Release for iOS
- runs-on: macos-latest
- env:
- XCODE_VERSION: "15.2.0"
- SWIFT_VERSION: "5.9.2"
- RUBY_VERSION: "2.6.10"
- TUIST_VERSION: "3.36.2"
-
- steps:
- - name: Checkout
- uses: actions/checkout@v3
-
- - name: Set up Ruby 2.6
- uses: ruby/setup-ruby@v1
- with:
- ruby-version: ${{ env.RUBY_VERSION }}
- bundler-cache: true
-
- - name: Set Xcode version
- run: sudo xcode-select -s '/Applications/Xcode_15.2.0.app/Contents/Developer'
-
- - name: Setup Swift
- uses: swift-actions/setup-swift@v1
- with:
- swift-version: ${{ env.SWIFT_VERSION }}
-
- - name: .env
- run: touch .env &&
- echo "APP_STORE_CONNECT_API_KEY_KEY_ID=${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}" >> .env &&
- echo "APP_STORE_CONNECT_API_KEY_ISSUER_ID=${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}" >> .env &&
- echo "APP_STORE_CONNECT_API_KEY_KEY=${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}" >> .env
-
- - name: Setting Master Key
- run: |
- echo "$MASTER_KEY" > Tuist/master.key
- env:
- MASTER_KEY: ${{secrets.MASTER_KEY}}
-
- - name: Mise
- uses: jdx/mise-action@v2
-
- - name: Install Tuist
- run: mise install tuist@${{ env.TUIST_VERSION }}
-
- - name: Tuist version
- run: mise use -g tuist@${{ env.TUIST_VERSION }}
-
- - name: Install Fastlane
- run: brew install fastlane
-
- - name: Tuist clean
- run: tuist clean
-
- - name: Tuist fetch
- run: tuist fetch
-
- - name: Tuist Signing Decrypt
- run: tuist signing decrypt
-
- - name: Set Keychain
- run: fastlane set_keychain
- env:
- KEYCHAIN_NAME: ${{ secrets.KEYCHAIN_NAME }}
- KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
-
- - name: Generate Xcode project with Tuist
- run: tuist generate
-
- - name: Fastlane run
- run: fastlane tf
-
- - name: Tagging
- id: tag_version
- uses: mathieudutour/github-tag-action@v6.1
- with:
- github_token: ${{ secrets.CHANHIHI }}
-
- - name: Draft Release
- id: draft_release
- uses: release-drafter/release-drafter@v5
- with:
- config-name: Release-note.yml
- env:
- GITHUB_TOKEN: ${{ secrets.CHANHIHI }}
diff --git a/.gitignore b/.gitignore
index 0d5c680..551a3f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,13 +3,6 @@
.DS_Store
.AppleDouble
.LSOverride
-.env
-
-# Auth
-*.key
-*.p8
-*.p12
-*.cer
# Icon must end with two
Icon
@@ -75,5 +68,3 @@ Derived/
### Tuist managed dependencies ###
Tuist/Dependencies
-
-.mise.toml
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 46c791e..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "iBox/Resources/Version"]
- path = iBox/Resources/Version
- url = https://github.com/42Box/versioning
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index f0e202f..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,4 +0,0 @@
-source "https://rubygems.org"
-
-gem "dotenv"
-gem "fastlane"
diff --git a/Makefile b/Makefile
deleted file mode 100644
index e8ffb27..0000000
--- a/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-gen:
- tuist fetch
- tuist generate
-
-clean:
- tuist clean
-
-fclean: clean
- find . -name "*.xcodeproj" -exec rm -rf {} \;
- find . -name "*.xcworkspace" -exec rm -rf {} \;
-
-re: fclean gen
-
-tf:
- tuist signing decrypt
- tuist fetch
- tuist generate
-
- fastlane tf
\ No newline at end of file
diff --git a/Project.swift b/Project.swift
index 7e20388..d32396e 100644
--- a/Project.swift
+++ b/Project.swift
@@ -14,24 +14,15 @@ protocol ProjectFactory {
class iBoxFactory: ProjectFactory {
let projectName: String = "iBox"
let bundleId: String = "com.box42.iBox"
- let iosVersion: String = "15.0"
let dependencies: [TargetDependency] = [
- .external(name: "SnapKit"),
- .external(name: "SwiftSoup"),
- .external(name: "SkeletonView"),
- .target(name: "iBoxShareExtension")
- ]
-
- let iBoxShareExtensionDependencies: [TargetDependency] = [
.external(name: "SnapKit")
]
- private let appInfoPlist: [String: Plist.Value] = [
+ let infoPlist: [String: Plist.Value] = [
"ITSAppUsesNonExemptEncryption": false,
- "CFBundleDisplayName": "iBox",
"CFBundleName": "iBox",
- "CFBundleShortVersionString": "1.0.0",
+ "CFBundleShortVersionString": "1.2.1",
"CFBundleVersion": "1",
"UILaunchStoryboardName": "LaunchScreen",
"UIApplicationSceneManifest": [
@@ -45,72 +36,23 @@ class iBoxFactory: ProjectFactory {
]
]
],
- "CFBundleURLTypes": [
- [
- "CFBundleURLName": "com.url.iBox",
- "CFBundleURLSchemes": ["iBox"],
- "CFBundleTypeRole": "Editor"
- ]
- ],
- "NSAppTransportSecurity": [
- "NSAllowsArbitraryLoadsInWebContent": true
- ]
+ "UIUserInterfaceStyle": "Light"
]
- private let shareExtensionInfoPlist: [String: Plist.Value] = [
- "CFBundleDisplayName": "iBox.Share",
- "CFBundleShortVersionString": "1.0.0",
- "CFBundleVersion": "1",
- "NSExtension": [
- "NSExtensionAttributes": [
- "NSExtensionActivationRule": [
- "NSExtensionActivationSupportsWebPageWithMaxCount": 1,
- "NSExtensionActivationSupportsWebURLWithMaxCount": 1,
- "SUBQUERY": [
- "extensionItems": [
- "SUBQUERY": [
- "attachments": [
- "ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO 'public.data'": "TRUE"
- ],
- "@count": 1
- ]
- ],
- "@count": 1
- ]
- ]
- ],
- "NSExtensionPointIdentifier": "com.apple.share-services",
- "NSExtensionPrincipalClass": "$(PRODUCT_MODULE_NAME).CustomShareViewController"
- ]
- ]
-
- func generateTarget() -> [ProjectDescription.Target] {
- let appTarget = Target(
+ func generateTarget() -> [ProjectDescription.Target] {[
+ Target(
name: projectName,
destinations: .iOS,
product: .app,
bundleId: bundleId,
- deploymentTargets: .iOS(iosVersion),
- infoPlist: .extendingDefault(with: appInfoPlist),
+ deploymentTargets: .iOS("15.0"),
+ infoPlist: .extendingDefault(with: infoPlist),
sources: ["\(projectName)/Sources/**"],
resources: "\(projectName)/Resources/**",
dependencies: dependencies
)
-
- let shareExtensionTarget = Target(
- name: "\(projectName)ShareExtension",
- destinations: .iOS,
- product: .appExtension,
- bundleId: "\(bundleId).ShareExtension",
- deploymentTargets: .iOS(iosVersion),
- infoPlist: .extendingDefault(with: shareExtensionInfoPlist),
- sources: ["ShareExtension/Sources/**"],
- resources: ["ShareExtension/Resources/**"],
- dependencies: iBoxShareExtensionDependencies
- )
-
- return [appTarget, shareExtensionTarget]
- }
+ ]}
+
}
diff --git a/README.md b/README.md
deleted file mode 100644
index 4628625..0000000
--- a/README.md
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
-
-[](https://apps.apple.com)
-
-
-
-# πββοΈπββοΈ Introduction
-μλ
νμΈμ! 42Box iOS νμ
λλ€. π¦Β
-42Boxλ μ¬λ¬ μΉ λ§ν¬λ₯Ό μ½κ² μ μ₯νκ³ ν΄λλ³λ‘ μ 리ν μ μλ μ±μ
λλ€.Β
-λμκ΄ μλΉμ€, μΆμ
κ΄λ¦¬ λ± 42μμΈ μνμ νμμ μΈ μλΉμ€λ€μ κΈ°λ³Έ ν΄λμ λͺ¨μ μ 곡νκ³ μμ΄μ.Β
-π’Β μλΉμ€λ₯Ό μννκ² μ΄μ©νμ€ μ μλλ‘ ν΅μ¬ κΈ°λ₯μ μκ°ν©λλ€. πΒ
-
-
-### βοΈ Key Function
-1. κΈ°λ³Έ 42ν΄λ μ 곡
-
- > 42μμΈ μλΉμ€μ κ΄λ ¨λ λ§ν¬λ₯Ό μ¬μ μ μ₯ν μ μ© ν΄λλ₯Ό μ 곡ν©λλ€.
-
-2. λΆλ§ν¬ κ΄λ¦¬
-
- > μΉ λ§ν¬λ₯Ό μμ½κ² μ μ₯νκ³ λλ§μ ν΄λλ‘ μ 리ν μ μμ΅λλ€.
-
-3. μ¦κ²¨μ°ΎκΈ°
-
- > κ°μ₯ μμ£Ό λ°©λ¬Ένλ μΉ λ§ν¬μ λΉ λ₯΄κ² μ κ·ΌνκΈ° μν΄ μ¦κ²¨μ°ΎκΈ° νμΌλ‘ μΆκ°ν μ μμ΅λλ€.
-
-4. 곡μ
-
- > μΈλΆ μ±μμ μΉ λ§ν¬λ₯Ό 곡μ ν΄ λΆλ§ν¬λ₯Ό μ½κ² μΆκ°ν μ μμ΅λλ€.
-
-5. λ§ν¬ 미리보기
-
- > λ§ν¬λ₯Ό μμ ν μ΄μ§ μκ³ λ λΆλ§ν¬λ₯Ό κΈΈκ² λλ¬ λ―Έλ¦¬ λ³Ό μ μμ΅λλ€.
-
-6. μ μ€μ²λ‘ λΆλ§ν¬ μΆκ°
-
- > λΈλΌμ°μ§νλ λμ κ°λ¨ν μ μ€μ²λ‘ νμ¬ μΉ λ§ν¬λ₯Ό λΆλ§ν¬λ‘ μ½κ² μ μ₯ν μ μμ΅λλ€.
-
-7. ν
λ§ λ° μ€μ
-
- > ν
λ§μ μμ νλ©΄ μ€μ λ± κ°μΈ λ§μΆ€ν μ€μ μ ν μ μμ΅λλ€.
-
-### π· ScreenShot
-
-| ν΄λ κ΄λ¦¬ | μΈλΆ μ±μμ 곡μ | μ μ€μ²λ‘ λΆλ§ν¬ μΆκ° |
-|:---:|:---:|:---:|
-||||
-
-
-| μ¦κ²¨μ°ΎκΈ° μ€μ | ν
λ§ λ° μ€μ |
-|:---:|:---:|
-|||
-
-
-
-
-# βοΈ Development Environment
-![iOS badge](https://img.shields.io/badge/iOS-15.0+-silver?style=flat-square)
-![iOS badge](https://img.shields.io/badge/Xcode-15.0+-blue?style=flat-square)
-
-### π Skills & Tech Stack
-
-* UIKit
-* Tuist
-* Combine
-* MVVM
-* Webkit
-* ShareExtension
-
-
-### π Library
-| Name |Version |
-| ----------------- | ------ |
-| SnapKit | `5.0.1`|
-| SwiftSoup | `2.7.1`|
-| SkeletonView | `1.0.0`|
-
-
-
-
-# π©π»βπ»π§π»βπ» Contributor
-
-
diff --git a/ShareExtension/Resources/Media.xcassets/128.imageset/128 1.png b/ShareExtension/Resources/Media.xcassets/128.imageset/128 1.png
deleted file mode 100644
index 077d76c18344fce066fb9f879587ff94f3e58f46..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7717
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 16) / 255.0,
- green: CGFloat((hex & 0x00FF00) >> 8) / 255.0,
- blue: CGFloat(hex & 0x0000FF) / 255.0,
- alpha: CGFloat(alpha)
- )
- }
-
- static let box2 = UIColor(hex: 0xFF9548)
-}
diff --git a/ShareExtension/Sources/Extension/ShareExtension+UIbutton+Extension.swift b/ShareExtension/Sources/Extension/ShareExtension+UIbutton+Extension.swift
deleted file mode 100644
index 466fe44..0000000
--- a/ShareExtension/Sources/Extension/ShareExtension+UIbutton+Extension.swift
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// ShareExtension+UIbutton+Extension.swift
-// iBoxShareExtension
-//
-// Created by Chan on 4/14/24.
-//
-
-import UIKit
-
-extension UIButton {
- func setBackgroundColor(_ color: UIColor, for state: UIControl.State) {
- UIGraphicsBeginImageContext(CGSize(width: 1.0, height: 1.0))
- guard let context = UIGraphicsGetCurrentContext() else { return }
- context.setFillColor(color.cgColor)
- context.fill(CGRect(x: 0.0, y: 0.0, width: 1.0, height: 1.0))
-
- let backgroundImage = UIGraphicsGetImageFromCurrentImageContext()
- UIGraphicsEndImageContext()
-
- setBackgroundImage(backgroundImage, for: state)
- }
-}
diff --git a/ShareExtension/Sources/ShareViewController.swift b/ShareExtension/Sources/ShareViewController.swift
deleted file mode 100644
index e68ff61..0000000
--- a/ShareExtension/Sources/ShareViewController.swift
+++ /dev/null
@@ -1,187 +0,0 @@
-//
-// ShareViewController.swift
-// iBoxWebShareExtension
-//
-// Created by Chan on 2/8/24.
-//
-
-import UIKit
-import Social
-import UniformTypeIdentifiers
-
-import SnapKit
-
-@objc(CustomShareViewController)
-class CustomShareViewController: UIViewController {
-
- var dataURL: String?
- var panelView = ShareExtensionPanelView()
- var modalView: UIView = {
- let modalview = UIView()
- modalview.backgroundColor = .clear
- return modalview
- }()
-
- // MARK: - Life Cycle
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupProperty()
- setupHierarchy()
- setupLayout()
- setupModal()
- extractSharedURL()
- }
-
- // MARK: - Setup Methods
-
- private func setupProperty() {
- panelView.delegate = self
- }
-
- private func setupHierarchy() {
- view.addSubview(modalView)
- modalView.addSubview(panelView)
- }
-
- private func setupLayout() {
- modalView.snp.makeConstraints { make in
- make.edges.equalTo(view.safeAreaLayoutGuide)
- }
-
- panelView.snp.makeConstraints { make in
- make.leading.trailing.equalToSuperview().inset(30)
- make.centerY.equalToSuperview().inset(20)
- make.height.equalTo(140)
- }
- }
-
- private func setupModal() {
- let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleBackgroundTap(_:)))
- tapGesture.cancelsTouchesInView = false
- tapGesture.delegate = self
- modalView.addGestureRecognizer(tapGesture)
- }
-
- func hideExtensionWithCompletionHandler(completion: @escaping (Bool) -> Void) {
- UIView.animate(withDuration: 0.3, animations: {
- self.navigationController?.view.transform = CGAffineTransform(translationX: 0, y:self.navigationController!.view.frame.size.height)
- }, completion: completion)
- }
-
- func extractSharedURL() {
- guard let extensionItem = extensionContext?.inputItems.first as? NSExtensionItem else {
- print("No extension items found.")
- return
- }
-
- if let item = extensionContext?.inputItems.first as? NSExtensionItem {
- for attachment in item.attachments ?? [] {
- if attachment.hasItemConformingToTypeIdentifier("public.plain-text") {
- attachment.loadItem(forTypeIdentifier: "public.plain-text", options: nil) { (data, error) in
- DispatchQueue.main.async {
- if let text = data as? String {
- self.extractURL(fromText: text)
- } else {
- print("Error loading text: \(String(describing: error))")
- }
- }
- }
- }
- }
- }
-
- for attachment in extensionItem.attachments ?? [] {
- if attachment.hasItemConformingToTypeIdentifier(UTType.url.identifier) {
- attachment.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil) { [weak self] (data, error) in
- DispatchQueue.main.async {
- if let url = data as? URL, error == nil {
- self?.dataURL = url.absoluteString
- print("Shared URL: \(url.absoluteString)")
- } else {
- print("Failed to retrieve URL: \(String(describing: error))")
- }
- }
- }
- break
- } else {
- print("Attachment does not conform to URL type.")
- }
- }
- }
-
- private func extractURL(fromText text: String) {
- let detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
- let matches = detector?.matches(in: text, options: [], range: NSRange(location: 0, length: text.utf8.count))
-
- if let firstMatch = matches?.first, let range = Range(firstMatch.range, in: text), let url = URL(string: String(text[range])) {
- print("Extracted URL: \(url)")
- self.dataURL = url.absoluteString
- } else {
- print("No URL found in text")
- }
- }
-
- // MARK: IBAction
-
- @IBAction func cancel() {
- self.hideExtensionWithCompletionHandler(completion: { _ in
- self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
- })
- }
-
- @objc func openURL(_ url: URL) -> Bool {
- self.hideExtensionWithCompletionHandler(completion: { _ in
- self.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
- })
-
- var responder: UIResponder? = self
- while responder != nil {
- if let application = responder as? UIApplication {
- return application.perform(#selector(openURL(_:)), with: url) != nil
- }
- responder = responder?.next
- }
- return false
- }
-
- @objc func handleBackgroundTap(_ sender: UITapGestureRecognizer) {
- let location = sender.location(in: self.view)
- if !panelView.frame.contains(location) {
- cancel()
- }
- }
-}
-
-extension CustomShareViewController: ShareExtensionPanelViewDelegate {
-
- func didTapCancel() {
- cancel()
- }
-
- func didTapOpenApp() {
- guard let sharedURL = dataURL else {
- print("Share extension error")
- return
- }
-
- let urlString = "iBox://url?data=\(sharedURL)".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
-
- if let openUrl = URL(string: urlString) {
- if self.openURL(openUrl) {
- print("iBox μ±μ΄ μ±κ³΅μ μΌλ‘ μ΄λ Έμ΅λλ€.")
- } else {
- print("iBox μ±μ μ΄ μ μμ΅λλ€.")
- }
- } else {
- print("url error")
- // ν΄λΉ urlμ μ¬μ©ν μ μμμ 보μ¬μ£Όλ λ·°λ₯Ό λ§λ€μ΄μΌν¨.
- }
- }
-}
-
-extension CustomShareViewController: UIGestureRecognizerDelegate {
- func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
- return true
- }
-}
diff --git a/ShareExtension/Sources/View/ShareExtensionPanelView.swift b/ShareExtension/Sources/View/ShareExtensionPanelView.swift
deleted file mode 100644
index c84f702..0000000
--- a/ShareExtension/Sources/View/ShareExtensionPanelView.swift
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// BackGroundView.swift
-// iBox
-//
-// Created by Chan on 2/19/24.
-//
-
-import UIKit
-
-import SnapKit
-
-protocol ShareExtensionPanelViewDelegate: AnyObject {
- func didTapCancel()
- func didTapOpenApp()
-}
-
-class ShareExtensionPanelView: UIView {
-
- // MARK: - Properties
- weak var delegate: ShareExtensionPanelViewDelegate?
-
- // MARK: - UI Components
- lazy var stackView: UIStackView = {
- let stack = UIStackView()
- stack.axis = .horizontal
- stack.distribution = .fillProportionally
- stack.spacing = 10
- return stack
- }()
-
- lazy var logoImageView: UIImageView = {
- let logoImageView = UIImageView()
- logoImageView.image = UIImage(named: "128")
- logoImageView.contentMode = .scaleAspectFit
- logoImageView.setContentHuggingPriority(.required, for: .horizontal)
- logoImageView.setContentCompressionResistancePriority(.required, for: .horizontal)
- return logoImageView
- }()
-
- lazy var label: UILabel = {
- let label = UILabel()
- label.text = "μ΄ λ§ν¬λ₯Ό iBox μ±μμ μ¬μκ² μ΅λκΉ?"
- label.font = .systemFont(ofSize: 15)
- label.textColor = .label
- label.numberOfLines = 3
- label.setContentHuggingPriority(.defaultLow, for: .horizontal)
- return label
- }()
-
- lazy var cancelButton: UIButton = {
- let button = UIButton()
- button.setImage(UIImage(systemName: "xmark.circle.fill"), for: .normal)
- button.tintColor = .systemGray3
- button.setContentHuggingPriority(.required, for: .horizontal)
- button.setContentCompressionResistancePriority(.required, for: .horizontal)
- return button
- }()
-
- lazy var divider: UIView = {
- let view = UIView()
- view.backgroundColor = .lightGray
- view.layer.opacity = 0.2
- return view
- }()
-
- lazy var openAppButton: UIButton = {
- let button = UIButton(type: .system)
- button.setImage(UIImage(systemName: "arrow.up.forward.square"), for: .normal)
- button.setTitle("μ±μΌλ‘ λ΄μκ°κΈ°", for: .normal)
- button.setTitleColor(.label, for: .normal)
- button.setBackgroundColor(.clear, for: .normal)
-
- button.setTitle("μ±μ΄ μ€νλ©λλ€", for: .highlighted)
- button.setTitleColor(.darkGray, for: .highlighted)
- button.setBackgroundColor(.box2, for: .highlighted)
- button.setImage(UIImage(systemName: "heart.fill"), for: .highlighted)
-
- button.imageView?.contentMode = .scaleAspectFit
- button.tintColor = .box2
-
- let spacing: CGFloat = 5
- button.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: spacing)
- button.titleEdgeInsets = UIEdgeInsets(top: 0, left: spacing, bottom: 0, right: 0)
-
- return button
- }()
-
- // MARK: - Initializer
- override init(frame: CGRect) {
- super.init(frame: frame)
- setupProperty()
- setupHierarchy()
- setupLayout()
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- // MARK: - Setup Methods
- private func setupProperty() {
- backgroundColor = .systemBackground
- clipsToBounds = true
- layer.cornerRadius = 15
-
- cancelButton.addTarget(self, action: #selector(cancelButtonTapped), for: .touchUpInside)
- openAppButton.addTarget(self, action: #selector(openAppButtonTapped), for: .touchUpInside)
- }
-
- private func setupHierarchy() {
- addSubview(stackView)
- stackView.addArrangedSubview(logoImageView)
- stackView.addArrangedSubview(label)
- stackView.addArrangedSubview(cancelButton)
-
- addSubview(divider)
- addSubview(openAppButton)
- }
-
- private func setupLayout() {
- stackView.snp.makeConstraints { make in
- make.top.leading.trailing.equalToSuperview().inset(20)
- }
-
- divider.snp.makeConstraints { make in
- make.top.equalTo(stackView.snp.bottom).offset(10)
- make.leading.trailing.equalToSuperview()
- make.height.equalTo(1)
- }
-
- openAppButton.snp.makeConstraints { make in
- make.top.equalTo(divider.snp.bottom)
- make.width.leading.trailing.bottom.equalToSuperview()
- }
- }
-
- // MARK: - Action Functions
- @objc func cancelButtonTapped() {
- delegate?.didTapCancel()
- }
-
- @objc func openAppButtonTapped() {
- delegate?.didTapOpenApp()
- }
-}
diff --git a/Tuist/Dependencies.swift b/Tuist/Dependencies.swift
index 0e66bfc..b258631 100644
--- a/Tuist/Dependencies.swift
+++ b/Tuist/Dependencies.swift
@@ -8,11 +8,8 @@
import ProjectDescription
let spm = SwiftPackageManagerDependencies([
- .remote(url: "https://github.com/SnapKit/SnapKit.git", requirement: .upToNextMinor(from: "5.0.1")),
- .remote(url: "https://github.com/scinfu/SwiftSoup.git", requirement: .upToNextMajor(from: "2.7.1")),
- .remote(url: "https://github.com/Juanpe/SkeletonView.git", requirement: .upToNextMajor(from: "1.0.0"))
-], productTypes: ["SnapKit": .framework, "SwiftSoup": .framework, "SkeletonView": .framework]
-)
+ .remote(url: "https://github.com/SnapKit/SnapKit.git", requirement: .upToNextMinor(from: "5.0.1"))
+])
let dependencies = Dependencies(
swiftPackageManager: spm,
diff --git a/Tuist/Signing/debug.cer.encrypted b/Tuist/Signing/debug.cer.encrypted
deleted file mode 100644
index 30ca264..0000000
--- a/Tuist/Signing/debug.cer.encrypted
+++ /dev/null
@@ -1 +0,0 @@
-IIQiI4/q9SfKX3HQz+Il4A==-Zm/M7463yYLz0r3uVmfIOViANQzqd+o0Npp9PpW/mNLB8t26kilJbNnJFsvURmuT5rmcZ0LbUxnfK9c2vPuRRwqcTsznLL9SEW8CZHt4CH5pF07LrSvoNQqkfWiBCHO/4dLgIa6NoiVN8rOIsIQ9ghgYTgwItg427WTKX8cB7tiewG1oOUEtxJvj/ju4Aa+qV+xh3Vp96x0dJvPXO6DToJTEWwU1o3CNWk8j+ibLmPz/7UzOq3u6s1rGNjsmNyyoQ6jjQ3HyMtlaH18LfqwK2JKiMOny1hA4sL3B9sAkJl2r7cyxM7MLFMI/qg4kfNIHtYs5bTQ359uke29QwRnV7F6YcV+hfZSxMcxMUSkOvGaEk7Q4jhlAkDSt1YmvOC+pqs6E4LI8RktFPYd+Z2Kvb1aG2TOoRjSHLojJNKrlobOOIzmnlKesLj3YzfnfXfz6T5rssyRa9kfWrGkkdjSE4CbW0Tc/tt4t8zGp964b8fYaBh7iTFyKUhUuCZR9Rl+0Gd3aSwCETG+cjw/6IeGTF6FKlJygckhT0h17eI0IgxsRQoKjJnKj35Sqd8Etlp1b6dTsODi8FSAq7UM1OHOFcwBqMPqcpgSYkxzBuQ8cyH0AGs1H3UToWZ3KQ5Zdfc8lR0njnRHpqYpNdBJBClEXJbra80jtGGYRtoF51msE81j61HpKivYuG6G5MX/vf6He3R0u+fEXX0fcouwfGPR+rK6GcX3YbMKdHw0tZ01uODlp5WctdRfuiGNJU/VV34OmqmNygFbeXINfSqFgAyb06gXcQ6flmW01/skfdgt7CqM9lviK7mWrpwzk3qqMqPbxw+1KJ7/T56ct9u/kjsxx5GNG2hI/a3hVvZX8eZCyg1PV3WVbXP+Fw1C3RZeUvll0SwxsZzihlb3gC+dU7CXVdPkImDpC7EfJdJIzWF5NeTltvugAtpy0EYsGXlhzbk020rDonAO1vDxqh+2lTNKG0/00ISItDKZZloY3phXAQqxLidJ68gwmVN2P1SqD1Ynim0EvKqvWPba9HZI9vrsd6qBZtBibx3Dna5gp/fyGi8recNatuzyCXe8QjVpuRB0N3y9at0j9Fz37jY7K99G1h81XEpaWaLXXFeFTFluQsb23Q3MUdJsgpXEzjvmKgLak5ZFx1cQ8Js3TLOPUk9PgJBc5ghgkUcXsgWT2q4PvoKAO3r4Safng5vhTG4RapuxpUBWlRumCExPKsUQtM4vpwD5F8gsKlWahiziVO6fB7TcS83Wfdx44zCxu31Xn6zffedlUOqFNHEtpDOjjrMHBOfG2uXJG7Ff+jYUtE6Vsx/bx+FwCoPlQHedETMgGZx5XURuXBZ8VXv+z4kX9o9Ohu6RO8g2KY9DgLQhkM9XRJIJkW7lqVuG5CzA/+p5KfL9f84l5YbnMIheL9UkT427E8YXyaGkJiI26wv9dO2Og4inP+DMcsDJva0+ClcHWf8/9VnHWDPku3LTDQFSxaPhOPaobEtc5/kjjzDmCDn7ZE7hFQoiYtyXRKpmQ80Ez8Ji4IR0OAQl2Z2bcN+9rpBrCv0kyZJYGKK/o3QcdqZj5HNkRGBE4EOZiKvTniIY2Z7kNGxM5moZYqSWhU9/8pUtA9RUIX5E3mW4KGCJ2+uXaEl2b9H8ia+cQVUzzidoNXwWhGD2wlZPrKewTb8K+zapxsyUbWLrkvYAXRCvQunmVHmD+v4DaR/95J+8xjCxc/02nMUWAxmPJrptWTjs2MBlcTIGpQDMnFo9LJnOu4S2wbfHc9/cOGVTnX0i+3UaghRWDwpyB+/i9Ioy2sidLW2/R0yVJTa4cyDn0ECFNe3W/l26hd/nXQOCi+BSiRiE1x0SZVJ4NIJjhKvIeJRc7iiFe6UTcN9StH2Ik940qgiZEO2yKFVVCWwkfsz9pFzuw+pxP7viAnELn5C3xU3NT7nSw0GEd1d6h5P9yk22PxxFGEXj3UL5Ygx6HGg==
\ No newline at end of file
diff --git a/Tuist/Signing/debug.p12.encrypted b/Tuist/Signing/debug.p12.encrypted
deleted file mode 100644
index df2043e..0000000
--- a/Tuist/Signing/debug.p12.encrypted
+++ /dev/null
@@ -1 +0,0 @@
-5OXOPxe34sNNBC4hMy9pxQ==-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
\ No newline at end of file
diff --git a/Tuist/Signing/iBox.Debug.mobileprovision b/Tuist/Signing/iBox.Debug.mobileprovision
deleted file mode 100644
index e40fd7b5973e6b284b500c70816b5cdfb5f43973..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 17472
zcmeHvdA#Ffx&NFqGt2_RunhZl7-4$7}%hK`P7mpse
zbP=+}$IN9Lxn_&+#3fsNf%PX18pc>(?U;J2xnV834p}>Sa
z^mr`GS|_==*2%4go6+=SI<2DoysYyw_br*xIIP|dLP1gZXbskTrk~8cY3Q=lg^n_c+U)8TUF~E#
zYDI^v(`8AWjx@hePQb}<*q_4j`K5Vgv$?O49d)WuO6txvN`ae=7=rmG5Z?sm&!O0f
ze)L3dxU}9g^=P_H8AIw;TAjxG8Zg@}J)NCb^=$H>v-9-6?oQ-_XX_U>moW=4y(%j;
zB~4XkE3Qa}sd{EcnNs_z;Z6|=vjhVL!={?Ed1t!6Vm