Skip to content

Commit 858b64a

Browse files
authored
[#501] 프로젝트에 Tuist를 적용한다 (#512)
* chore: tuist 전환 기반 추가 * feat: tuist 모듈 매니페스트 구성 * refactor: tuist 생성 구조 전환 * fix: Tuist 권장 설정 및 번들 버전 경고 수정 * fix: Tuist 생성 안정화 * fix: 패키지 manifest 경고 제거 * chore: 위젯 문자열 카탈로그 갱신 * docs: Tuist 개발 도구 문서화 * ci: Tuist 생성 검증 추가 * refactor: 앱 타깃 스킴 정리 * ci: mise 액션 런타임 버전 업데이트 * refactor: 배포 타깃 설정 통합 * refactor: 위젯 접근자 생성 정리
1 parent f2200aa commit 858b64a

64 files changed

Lines changed: 6211 additions & 2563 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ on:
55

66
env:
77
WORKSPACE: DevLog.xcworkspace
8-
SCHEME: DevLog
9-
XCODE_VERSION: latest
8+
SCHEME: DevLogApp
9+
XCODE_VERSION: "26.3"
1010
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
1111
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
1212

@@ -51,6 +51,12 @@ jobs:
5151
sudo xcode-select -s "$XCODE_APP/Contents/Developer"
5252
xcodebuild -version
5353
54+
- name: Set up Tuist
55+
uses: jdx/mise-action@v4
56+
with:
57+
install: true
58+
cache: true
59+
5460
- name: Cache SwiftPM
5561
uses: actions/cache@v5
5662
with:
@@ -63,6 +69,25 @@ jobs:
6369
restore-keys: |
6470
${{ runner.os }}-spm-
6571
72+
- name: Generate Xcode project with Tuist
73+
shell: bash
74+
run: |
75+
set -euo pipefail
76+
77+
tuist generate --no-open
78+
79+
git diff --exit-code -- \
80+
DevLog.xcworkspace \
81+
Application/DevLogApp/DevLogApp.xcodeproj \
82+
Application/DevLogCore/DevLogCore.xcodeproj \
83+
Application/DevLogData/DevLogData.xcodeproj \
84+
Application/DevLogDomain/DevLogDomain.xcodeproj \
85+
Application/DevLogInfra/DevLogInfra.xcodeproj \
86+
Application/DevLogPersistence/DevLogPersistence.xcodeproj \
87+
Application/DevLogPresentation/DevLogPresentation.xcodeproj \
88+
Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj \
89+
Widget/DevLogWidgetExtension/DevLogWidgetExtension.xcodeproj
90+
6691
- name: Select iOS Simulator Runtime (installed)
6792
id: pick_ios
6893
shell: bash

.github/workflows/testflight.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ on:
1818
- develop
1919

2020
env:
21-
SCHEME: DevLog
21+
SCHEME: DevLogApp
2222
RUBY_VERSION: "3.2"
2323
XCODE_VERSION: latest
2424
APP_STORE_TEAM_ID: ${{ secrets.APP_STORE_TEAM_ID }}

.gitignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ xcuserdata/
1313
GoogleService-Info.plist
1414
UserInterfaceState.xcuserstate
1515
Breakpoints_v2.xcbkptlist
16+
**/Derived/
1617
**/build/
1718
**/xcuserdata/
1819
ContentView.swift
@@ -36,6 +37,14 @@ fastlane/logs/
3637
# Build Artifacts
3738
*.ipa
3839
*.dSYM.zip
40+
.package.resolved
41+
.home/
42+
.module-cache/
43+
.swift-module-cache/
44+
.tmp/
45+
.spm/
46+
Tuist/.build/
47+
DevLog.xcworkspace/.tuist-generated
3948

4049
# drawio
41-
*.drawio.bkp
50+
*.drawio.bkp

.hermes/skills/devlog-architecture-harness/references/devlog-workflow-rules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This reference holds DevLog-specific working rules that should live with the pro
1313
- Prefer Xcode Local MCP for iOS project code changes.
1414
- If Xcode Local MCP is unavailable or fails because of session transport, state that explicitly before using a fallback.
1515
- This repository is workspace-based. Prefer workspace/scheme context over standalone project builds when dependencies cross module projects.
16-
- CI truth lives in `.github/workflows/build.yml`: `DevLog.xcworkspace`, scheme `DevLog`, simulator build, `-resolvePackageDependencies`, `-skipPackagePluginValidation`, and `-skipMacroValidation`.
16+
- CI truth lives in `.github/workflows/build.yml`: select Xcode 26.3, install Tuist with mise, run `tuist generate --no-open`, assert generated Xcode files are clean with `git diff --exit-code`, then build `DevLog.xcworkspace` scheme `DevLog` with `-resolvePackageDependencies`, `-skipPackagePluginValidation`, and `-skipMacroValidation`.
1717
- CI is build validation, not a full test run, unless the workflow changes.
1818
- Avoid unrelated `Package.resolved` churn. Keep lockfile changes only when dependency resolution is the task.
1919

.mise.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[tools]
2+
tuist = "4.194.4"

Application/DevLogApp/DevLogApp.xcodeproj/project.pbxproj

Lines changed: 491 additions & 445 deletions
Large diffs are not rendered by default.

Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLog.xcscheme renamed to Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogApp.xcscheme

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "2640"
4-
version = "1.7">
3+
LastUpgradeVersion = "2650"
4+
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
7-
buildImplicitDependencies = "YES"
8-
buildArchitectures = "Automatic">
7+
buildImplicitDependencies = "YES">
98
<BuildActionEntries>
109
<BuildActionEntry
1110
buildForTesting = "YES"
@@ -15,9 +14,9 @@
1514
buildForAnalyzing = "YES">
1615
<BuildableReference
1716
BuildableIdentifier = "primary"
18-
BlueprintIdentifier = "DFD48AFF2DC4D6E2005905C5"
17+
BlueprintIdentifier = "B9946B184E6A28C345727743"
1918
BuildableName = "DevLog.app"
20-
BlueprintName = "DevLog"
19+
BlueprintName = "DevLogApp"
2120
ReferencedContainer = "container:DevLogApp.xcodeproj">
2221
</BuildableReference>
2322
</BuildActionEntry>
@@ -27,15 +26,14 @@
2726
buildConfiguration = "Debug"
2827
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2928
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
30-
shouldUseLaunchSchemeArgsEnv = "YES"
31-
shouldAutocreateTestPlan = "YES">
29+
shouldUseLaunchSchemeArgsEnv = "YES">
3230
<Testables>
3331
<TestableReference
3432
skipped = "NO"
35-
parallelizable = "YES">
33+
parallelizable = "NO">
3634
<BuildableReference
3735
BuildableIdentifier = "primary"
38-
BlueprintIdentifier = "DF3416442E45F67C00F9312B"
36+
BlueprintIdentifier = "0EDF4BB78A091D2F550FEB0C"
3937
BuildableName = "DevLogAppTests.xctest"
4038
BlueprintName = "DevLogAppTests"
4139
ReferencedContainer = "container:DevLogApp.xcodeproj">
@@ -57,9 +55,9 @@
5755
runnableDebuggingMode = "0">
5856
<BuildableReference
5957
BuildableIdentifier = "primary"
60-
BlueprintIdentifier = "DFD48AFF2DC4D6E2005905C5"
58+
BlueprintIdentifier = "B9946B184E6A28C345727743"
6159
BuildableName = "DevLog.app"
62-
BlueprintName = "DevLog"
60+
BlueprintName = "DevLogApp"
6361
ReferencedContainer = "container:DevLogApp.xcodeproj">
6462
</BuildableReference>
6563
</BuildableProductRunnable>
@@ -74,9 +72,9 @@
7472
runnableDebuggingMode = "0">
7573
<BuildableReference
7674
BuildableIdentifier = "primary"
77-
BlueprintIdentifier = "DFD48AFF2DC4D6E2005905C5"
75+
BlueprintIdentifier = "B9946B184E6A28C345727743"
7876
BuildableName = "DevLog.app"
79-
BlueprintName = "DevLog"
77+
BlueprintName = "DevLogApp"
8078
ReferencedContainer = "container:DevLogApp.xcodeproj">
8179
</BuildableReference>
8280
</BuildableProductRunnable>

Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogAppTests.xcscheme

Lines changed: 0 additions & 74 deletions
This file was deleted.

Application/DevLogApp/DevLogApp.xcodeproj/xcshareddata/xcschemes/DevLogWidgetExtension.xcscheme

Lines changed: 0 additions & 125 deletions
This file was deleted.

0 commit comments

Comments
 (0)