Skip to content

Commit e987c6f

Browse files
authored
[Setting] fastlane + github action 세팅
2 parents 414a065 + 13b3f6f commit e987c6f

File tree

6 files changed

+45
-22
lines changed

6 files changed

+45
-22
lines changed

.github/workflows/release.yml

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ on:
66
branches:
77
- develop
88

9-
# 최신 push에 관한 CI 작업만 수행
109
concurrency:
1110
group: build-${{ github.ref }}
1211
cancel-in-progress: true
@@ -16,21 +15,46 @@ jobs:
1615
runs-on: macos-latest
1716

1817
steps:
19-
- name: Checkout
18+
- name: Checkout repository
2019
uses: actions/checkout@v4
2120

21+
# 1. Xcode 버전 명시적 설정
2222
- name: Select Xcode
23-
run: sudo xcode-select -switch /Applications/Xcode.app
23+
uses: maxim-lobanov/setup-xcode@v1
24+
with:
25+
xcode-version: '26.2'
2426

25-
- name: Install Ruby Gems
26-
run: bundle install
27+
# 2. SPM 매크로 지문 검증 우회 (빌드 안정성 확보)
28+
- name: Disable Macro Validation
29+
run: |
30+
defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
31+
defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
2732
33+
# 3. SPM 의존성 사전 해결
34+
- name: Resolve SPM Dependencies
35+
run: xcodebuild -resolvePackageDependencies -project ./Neki-iOS.xcodeproj -scheme Neki-iOS
36+
37+
# 4. Match 인증서 저장소 접근을 위한 SSH 세팅
38+
- name: Install SSH key for Match
39+
uses: webfactory/ssh-agent@v0.8.0
40+
with:
41+
ssh-private-key: ${{ secrets.MATCH_SSH_KEY }}
42+
43+
# 5. Ruby 및 Fastlane 세팅 (Gemfile 활용)
44+
- name: Setup Ruby and Install Gems
45+
uses: ruby/setup-ruby@v1
46+
with:
47+
ruby-version: '3.2'
48+
bundler-cache: true
49+
50+
# 6. Fastlane 배포 실행
2851
- name: Run Fastlane Release
2952
run: bundle exec fastlane release
3053
env:
3154
APP_IDENTIFIER: ${{ secrets.APP_IDENTIFIER }}
3255
APPLE_ID: ${{ secrets.APPLE_ID }}
3356
TEAM_ID: ${{ secrets.TEAM_ID }}
57+
FASTLANE_ITC_TEAM_ID: ${{ secrets.FASTLANE_ITC_TEAM_ID }}
3458
ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
3559
ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
3660
ASC_KEY_CONTENT: ${{ secrets.ASC_KEY_CONTENT }}

Neki-iOS.xcodeproj/project.pbxproj

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@
310310
CODE_SIGN_ENTITLEMENTS = "Neki-iOS/Neki-iOS.entitlements";
311311
CODE_SIGN_IDENTITY = "Apple Development";
312312
CODE_SIGN_STYLE = Automatic;
313-
CURRENT_PROJECT_VERSION = 5;
313+
CURRENT_PROJECT_VERSION = 6;
314314
DEVELOPMENT_TEAM = 586LZSS32L;
315315
ENABLE_PREVIEWS = YES;
316316
GENERATE_INFOPLIST_FILE = YES;
@@ -330,7 +330,7 @@
330330
"$(inherited)",
331331
"@executable_path/Frameworks",
332332
);
333-
MARKETING_VERSION = 1.1.2;
333+
MARKETING_VERSION = 1.1.3;
334334
PRODUCT_BUNDLE_IDENTIFIER = "com.OneTen.Neki-dev";
335335
PRODUCT_NAME = "$(TARGET_NAME)";
336336
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -357,9 +357,11 @@
357357
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
358358
CODE_SIGN_ENTITLEMENTS = "Neki-iOS/Neki-iOS.entitlements";
359359
CODE_SIGN_IDENTITY = "Apple Development";
360-
CODE_SIGN_STYLE = Automatic;
361-
CURRENT_PROJECT_VERSION = 5;
362-
DEVELOPMENT_TEAM = 586LZSS32L;
360+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
361+
CODE_SIGN_STYLE = Manual;
362+
CURRENT_PROJECT_VERSION = 6;
363+
DEVELOPMENT_TEAM = "";
364+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 586LZSS32L;
363365
ENABLE_PREVIEWS = YES;
364366
GENERATE_INFOPLIST_FILE = YES;
365367
INFOPLIST_FILE = "Neki-iOS/Info.plist";
@@ -378,10 +380,11 @@
378380
"$(inherited)",
379381
"@executable_path/Frameworks",
380382
);
381-
MARKETING_VERSION = 1.1.2;
383+
MARKETING_VERSION = 1.1.3;
382384
PRODUCT_BUNDLE_IDENTIFIER = "com.OneTen.Neki-iOS";
383385
PRODUCT_NAME = "$(TARGET_NAME)";
384386
PROVISIONING_PROFILE_SPECIFIER = "";
387+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.OneTen.Neki-iOS";
385388
STRING_CATALOG_GENERATE_SYMBOLS = YES;
386389
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
387390
SUPPORTS_MACCATALYST = NO;

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,4 @@ APP(라우팅), Core(공통 로직/네트워크), Shared(디자인/UI), Features
136136
<br>
137137

138138
<img width="3240" height="400" src="https://github.com/user-attachments/assets/fee4035c-4bac-4921-95ec-93318bd2bdf9" />
139+

fastlane/Fastfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ platform :ios do
44
desc "Release build and upload to App Store Connect"
55
lane :release do
66

7+
setup_ci
8+
79
app_store_connect_api_key(
810
key_id: ENV["ASC_KEY_ID"],
911
issuer_id: ENV["ASC_ISSUER_ID"],
@@ -29,7 +31,8 @@ platform :ios do
2931
upload_to_app_store(
3032
skip_metadata: true,
3133
skip_screenshots: true,
32-
submit_for_review: false
34+
submit_for_review: false,
35+
run_precheck_before_submit: false
3336
)
3437
end
3538
end

fastlane/Matchfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
git_url("https://github.com/YAPP-Github/27th-App-Team-2-iOS.git")
1+
git_url("git@github.com:YAPP-Github/Neki-fastlane-match-repo.git")
22
git_branch('release')
33

44
storage_mode("git")

fastlane/README.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,13 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
1515

1616
## iOS
1717

18-
### ios beta
19-
20-
```sh
21-
[bundle exec] fastlane ios beta
22-
```
23-
24-
Deploy to TestFlight
25-
2618
### ios release
2719

2820
```sh
2921
[bundle exec] fastlane ios release
3022
```
3123

32-
Release to App Store
24+
Release build and upload to App Store Connect
3325

3426
----
3527

0 commit comments

Comments
 (0)