Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 30 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ on:
branches:
- release

# 최신 push에 관한 CI 작업만 수행
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
Expand All @@ -15,21 +14,46 @@ jobs:
runs-on: macos-latest

steps:
- name: Checkout
- name: Checkout repository
uses: actions/checkout@v4

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

- name: Install Ruby Gems
run: bundle install
# 2. SPM 매크로 지문 검증 우회 (빌드 안정성 확보)
- name: Disable Macro Validation
run: |
defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES

# 3. SPM 의존성 사전 해결
- name: Resolve SPM Dependencies
run: xcodebuild -resolvePackageDependencies -project ./Neki-iOS.xcodeproj -scheme Neki-iOS

# 4. Match 인증서 저장소 접근을 위한 SSH 세팅
- name: Install SSH key for Match
uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.MATCH_SSH_KEY }}

# 5. Ruby 및 Fastlane 세팅 (Gemfile 활용)
- name: Setup Ruby and Install Gems
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true

# 6. Fastlane 배포 실행
- name: Run Fastlane Release
run: bundle exec fastlane release
env:
APP_IDENTIFIER_RELEASE: ${{ secrets.APP_IDENTIFIER }}
APP_IDENTIFIER: ${{ secrets.APP_IDENTIFIER }}
APPLE_ID: ${{ secrets.APPLE_ID }}
TEAM_ID: ${{ secrets.TEAM_ID }}
FASTLANE_ITC_TEAM_ID: ${{ secrets.FASTLANE_ITC_TEAM_ID }}
ASC_KEY_ID: ${{ secrets.ASC_KEY_ID }}
ASC_ISSUER_ID: ${{ secrets.ASC_ISSUER_ID }}
ASC_KEY_CONTENT: ${{ secrets.ASC_KEY_CONTENT }}
Expand Down
15 changes: 9 additions & 6 deletions Neki-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@
CODE_SIGN_ENTITLEMENTS = "Neki-iOS/Neki-iOS.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5;
CURRENT_PROJECT_VERSION = 6;
DEVELOPMENT_TEAM = 586LZSS32L;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
Expand All @@ -330,7 +330,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1.2;
MARKETING_VERSION = 1.1.3;
PRODUCT_BUNDLE_IDENTIFIER = "com.OneTen.Neki-dev";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -357,9 +357,11 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "Neki-iOS/Neki-iOS.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = 586LZSS32L;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 6;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 586LZSS32L;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Neki-iOS/Info.plist";
Expand All @@ -378,10 +380,11 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.1.2;
MARKETING_VERSION = 1.1.3;
PRODUCT_BUNDLE_IDENTIFIER = "com.OneTen.Neki-iOS";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.OneTen.Neki-iOS";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,4 @@ APP(라우팅), Core(공통 로직/네트워크), Shared(디자인/UI), Features
<br>

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

5 changes: 4 additions & 1 deletion fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ platform :ios do
desc "Release build and upload to App Store Connect"
lane :release do

setup_ci

app_store_connect_api_key(
key_id: ENV["ASC_KEY_ID"],
issuer_id: ENV["ASC_ISSUER_ID"],
Expand All @@ -29,7 +31,8 @@ platform :ios do
upload_to_app_store(
skip_metadata: true,
skip_screenshots: true,
submit_for_review: false
submit_for_review: false,
run_precheck_before_submit: false
)
end
end
2 changes: 1 addition & 1 deletion fastlane/Matchfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
git_url("https://github.com/YAPP-Github/27th-App-Team-2-iOS.git")
git_url("git@github.com:YAPP-Github/Neki-fastlane-match-repo.git")
git_branch('release')

storage_mode("git")
Expand Down
10 changes: 1 addition & 9 deletions fastlane/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,13 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do

## iOS

### ios beta

```sh
[bundle exec] fastlane ios beta
```

Deploy to TestFlight

### ios release

```sh
[bundle exec] fastlane ios release
```

Release to App Store
Release build and upload to App Store Connect

----

Expand Down