Skip to content

Commit 6bd0679

Browse files
committed
Merge branch 'develop' of github.com:YAPP-Github/27th-App-Team-2-iOS into feat/#182-share-extension
# Conflicts: # Neki-iOS.xcodeproj/project.pbxproj # Neki-iOS/APP/Sources/Application/Neki_iOSApp.swift
2 parents f4eda95 + 4c8fd3f commit 6bd0679

7 files changed

Lines changed: 211 additions & 22 deletions

File tree

.github/workflows/release.yml

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,30 +29,36 @@ jobs:
2929
mkdir -p Neki-iOS/APP/Sources/Resources
3030
echo "${{ secrets.RELEASE_XCCONFIG }}" | base64 --decode > Neki-iOS/APP/Sources/Resources/Release.xcconfig
3131
32-
# 3. SPM 매크로 지문 검증 우회
32+
# 3. 깃허브 Secret에서 Firebase Plist 파일 생성하기
33+
- name: Create Firebase Plist
34+
run: |
35+
mkdir -p Neki-iOS/APP/Sources/Resources/FirebaseConfig/Release
36+
echo "${{ secrets.FIREBASE_PLIST_RELEASE }}" | base64 --decode > Neki-iOS/APP/Sources/Resources/FirebaseConfig/Release/GoogleService-Info.plist
37+
38+
# 4. SPM 매크로 지문 검증 우회
3339
- name: Disable Macro Validation
3440
run: |
3541
defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
3642
defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidation -bool YES
3743
38-
# 4. SPM 의존성 사전 해결
44+
# 5. SPM 의존성 사전 해결
3945
- name: Resolve SPM Dependencies
4046
run: xcodebuild -resolvePackageDependencies -project ./Neki-iOS.xcodeproj -scheme Neki-iOS
4147

42-
# 5. Match 인증서 저장소 접근을 위한 SSH 세팅
48+
# 6. Match 인증서 저장소 접근을 위한 SSH 세팅
4349
- name: Install SSH key for Match
4450
uses: webfactory/ssh-agent@v0.8.0
4551
with:
4652
ssh-private-key: ${{ secrets.MATCH_SSH_KEY }}
4753

48-
# 6. Ruby 및 Fastlane 세팅 (Gemfile 활용)
54+
# 7. Ruby 및 Fastlane 세팅 (Gemfile 활용)
4955
- name: Setup Ruby and Install Gems
5056
uses: ruby/setup-ruby@v1
5157
with:
5258
ruby-version: '3.2'
5359
bundler-cache: true
5460

55-
# 7. Fastlane 배포 실행
61+
# 8. Fastlane 배포 실행
5662
- name: Run Fastlane Release
5763
run: bundle exec fastlane release
5864
env:
@@ -65,7 +71,7 @@ jobs:
6571
ASC_KEY_CONTENT: ${{ secrets.ASC_KEY_CONTENT }}
6672
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
6773

68-
# 8. 배포 완료 후 서버로 최신 버전 정보 POST 요청
74+
# 9. 배포 완료 후 서버로 최신 버전 정보 POST 요청
6975
- name: Send Version Update to Server
7076
if: success() # 배포가 성공적으로 끝났을 때만 실행
7177
run: |
@@ -75,15 +81,14 @@ jobs:
7581
echo "추출된 최신 버전: $APP_VERSION"
7682
7783
# 추출된 버전을 JSON 바디에 담아서 서버로 POST 요청 (minVersion은 필요시 추후 수정)
78-
curl -X PATCH "${{ secrets.APP_VERSION_API_ADDRESS }}" \
79-
-H "Content-Type: application/json" \
80-
-H "Authorization: Bearer empty_token_just_for_header" \
81-
-d "{
82-
\"minVersion\": \"1.0.0\",
83-
\"currentVersion\": \"$APP_VERSION\"
84-
}"
84+
curl -X PATCH "${{ secrets.APP_VERSION_API_ADDRESS }}" \
85+
-H "Content-Type: application/json" \
86+
-d "{
87+
\"minVersion\": \"1.0.0\",
88+
\"currentVersion\": \"$APP_VERSION\"
89+
}"
8590
86-
# 9. Discord 결과 알림 (성공/실패 여부 전송)
91+
# 10. Discord 결과 알림 (성공/실패 여부 전송)
8792
- name: Send Discord notification
8893
if: always() # 빌드 성공/실패 여부와 상관없이 무조건 실행
8994
run: |
@@ -94,6 +99,6 @@ jobs:
9499
fi
95100
PAYLOAD=$(jq -n --arg content "$STATUS (${{ github.repository }})" '{content: $content}')
96101
curl -H "Content-Type: application/json" \
97-
-X POST \
98-
-d "$PAYLOAD" \
99-
${{ secrets.DISCORD_WEBHOOK_URL }}
102+
-X POST \
103+
-d "$PAYLOAD" \
104+
${{ secrets.DISCORD_WEBHOOK_URL }}

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,4 +141,7 @@ iOSInjectionProject/
141141
*.cer
142142
*.p12
143143
*.mobileprovision
144-
*.certSigningRequest
144+
*.certSigningRequest
145+
146+
# Firebase
147+
GoogleService-Info.plist

Neki-iOS.xcodeproj/project.pbxproj

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
5970335E2F2482E1000B8194 /* KakaoSDKCommon in Frameworks */ = {isa = PBXBuildFile; productRef = 5970335D2F2482E1000B8194 /* KakaoSDKCommon */; };
1717
597033602F2482E1000B8194 /* KakaoSDKUser in Frameworks */ = {isa = PBXBuildFile; productRef = 5970335F2F2482E1000B8194 /* KakaoSDKUser */; };
1818
59D1D21B2F168EE800F50EB5 /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 59D1D21A2F168EE800F50EB5 /* Kingfisher */; };
19+
6C0C1ACB2F6FD2E30037F650 /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = 6C0C1ACA2F6FD2E30037F650 /* FirebaseAnalytics */; };
20+
6C0C1ACD2F6FD2E30037F650 /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = 6C0C1ACC2F6FD2E30037F650 /* FirebaseCrashlytics */; };
21+
6C0C1ACF2F6FD2E30037F650 /* FirebaseInstallations in Frameworks */ = {isa = PBXBuildFile; productRef = 6C0C1ACE2F6FD2E30037F650 /* FirebaseInstallations */; };
22+
6C3B4B8A2F65CA4B008449C1 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C3B4B882F65C9B0008449C1 /* WebKit.framework */; };
1923
6C4D99E52F365E1700E93BF0 /* Lottie in Frameworks */ = {isa = PBXBuildFile; productRef = 6C4D99E42F365E1700E93BF0 /* Lottie */; };
2024
/* End PBXBuildFile section */
2125

@@ -74,6 +78,10 @@
7478
6C499D3A2F05594E006BE1DB /* Exceptions for "Neki-iOS" folder in "Neki-iOS" target */ = {
7579
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
7680
membershipExceptions = (
81+
APP/Sources/Resources/FirebaseConfig/Debug/.gitkeep,
82+
"APP/Sources/Resources/FirebaseConfig/Debug/GoogleService-Info.plist",
83+
APP/Sources/Resources/FirebaseConfig/Release/.gitkeep,
84+
"APP/Sources/Resources/FirebaseConfig/Release/GoogleService-Info.plist",
7785
Info.plist,
7886
);
7987
target = 6C4998DC2EF7EF62006BE1DB /* Neki-iOS */;
@@ -127,11 +135,14 @@
127135
59D1D21B2F168EE800F50EB5 /* Kingfisher in Frameworks */,
128136
5970335E2F2482E1000B8194 /* KakaoSDKCommon in Frameworks */,
129137
6C4D99E52F365E1700E93BF0 /* Lottie in Frameworks */,
138+
6C0C1ACF2F6FD2E30037F650 /* FirebaseInstallations in Frameworks */,
130139
592F2C5E2F0508FE00802BB7 /* ComposableArchitecture in Frameworks */,
131140
5970335C2F2482E1000B8194 /* KakaoSDKCertCore in Frameworks */,
141+
6C0C1ACD2F6FD2E30037F650 /* FirebaseCrashlytics in Frameworks */,
132142
597033602F2482E1000B8194 /* KakaoSDKUser in Frameworks */,
133143
592F345C2F0E1F1700802BB7 /* NMapsMap in Frameworks */,
134144
597033582F2482E1000B8194 /* KakaoSDKAuth in Frameworks */,
145+
6C0C1ACB2F6FD2E30037F650 /* FirebaseAnalytics in Frameworks */,
135146
5970335A2F2482E1000B8194 /* KakaoSDKCert in Frameworks */,
136147
);
137148
runOnlyForDeploymentPostprocessing = 0;
@@ -214,7 +225,7 @@
214225
6C4998D92EF7EF62006BE1DB /* Sources */,
215226
6C4998DA2EF7EF62006BE1DB /* Frameworks */,
216227
6C4998DB2EF7EF62006BE1DB /* Resources */,
217-
59235C5A2F64245A00198051 /* Embed Foundation Extensions */,
228+
6C0C1AD92F6FD64B0037F650 /* Copy Firebase Plist */,
218229
);
219230
buildRules = (
220231
);
@@ -235,6 +246,9 @@
235246
5970335D2F2482E1000B8194 /* KakaoSDKCommon */,
236247
5970335F2F2482E1000B8194 /* KakaoSDKUser */,
237248
6C4D99E42F365E1700E93BF0 /* Lottie */,
249+
6C0C1ACA2F6FD2E30037F650 /* FirebaseAnalytics */,
250+
6C0C1ACC2F6FD2E30037F650 /* FirebaseCrashlytics */,
251+
6C0C1ACE2F6FD2E30037F650 /* FirebaseInstallations */,
238252
);
239253
productName = "Neki-iOS";
240254
productReference = 6C4998DD2EF7EF62006BE1DB /* Neki-iOS.app */;
@@ -277,6 +291,7 @@
277291
59D1D2192F168EE800F50EB5 /* XCRemoteSwiftPackageReference "Kingfisher" */,
278292
597033562F2482E1000B8194 /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */,
279293
6C4D99E32F365E1700E93BF0 /* XCRemoteSwiftPackageReference "lottie-ios" */,
294+
6C0C1AC92F6FD2E30037F650 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
280295
);
281296
preferredProjectObjectVersion = 77;
282297
productRefGroup = 6C4998DE2EF7EF62006BE1DB /* Products */;
@@ -314,6 +329,27 @@
314329
};
315330
/* End PBXResourcesBuildPhase section */
316331

332+
/* Begin PBXShellScriptBuildPhase section */
333+
6C0C1AD92F6FD64B0037F650 /* Copy Firebase Plist */ = {
334+
isa = PBXShellScriptBuildPhase;
335+
buildActionMask = 2147483647;
336+
files = (
337+
);
338+
inputFileListPaths = (
339+
);
340+
inputPaths = (
341+
);
342+
name = "Copy Firebase Plist";
343+
outputFileListPaths = (
344+
);
345+
outputPaths = (
346+
);
347+
runOnlyForDeploymentPostprocessing = 0;
348+
shellPath = /bin/sh;
349+
shellScript = "# 1. 환경(Debug/Release) 변수 가져오기\nENVIRONMENT=\"${CONFIGURATION}\"\n\n# 2. 올려주신 폴더 구조에 맞춘 정확한 원본 파일 경로\n# (에러 로그를 기반으로 Neki-iOS 하위의 APP 폴더를 가리키도록 설정했습니다)\nSRC_PLIST_PATH=\"${SRCROOT}/Neki-iOS/APP/Sources/Resources/FirebaseConfig/${ENVIRONMENT}/GoogleService-Info.plist\"\n\n# 3. 앱이 빌드되어 완성될 목적지 경로\nDEST_PLIST_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist\"\n\n# 4. 파일 복사 실행\necho \"Copying ${ENVIRONMENT} Firebase plist...\"\ncp -r \"${SRC_PLIST_PATH}\" \"${DEST_PLIST_PATH}\"\n";
350+
};
351+
/* End PBXShellScriptBuildPhase section */
352+
317353
/* Begin PBXSourcesBuildPhase section */
318354
59235C4B2F64245A00198051 /* Sources */ = {
319355
isa = PBXSourcesBuildPhase;
@@ -525,7 +561,7 @@
525561
DEVELOPMENT_TEAM = 586LZSS32L;
526562
ENABLE_STRICT_OBJC_MSGSEND = YES;
527563
ENABLE_TESTABILITY = YES;
528-
ENABLE_USER_SCRIPT_SANDBOXING = YES;
564+
ENABLE_USER_SCRIPT_SANDBOXING = NO;
529565
GCC_C_LANGUAGE_STANDARD = gnu17;
530566
GCC_DYNAMIC_NO_PIC = NO;
531567
GCC_NO_COMMON_BLOCKS = YES;
@@ -591,7 +627,7 @@
591627
DEVELOPMENT_TEAM = 586LZSS32L;
592628
ENABLE_NS_ASSERTIONS = NO;
593629
ENABLE_STRICT_OBJC_MSGSEND = YES;
594-
ENABLE_USER_SCRIPT_SANDBOXING = YES;
630+
ENABLE_USER_SCRIPT_SANDBOXING = NO;
595631
GCC_C_LANGUAGE_STANDARD = gnu17;
596632
GCC_NO_COMMON_BLOCKS = YES;
597633
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -788,6 +824,14 @@
788824
minimumVersion = 8.6.2;
789825
};
790826
};
827+
6C0C1AC92F6FD2E30037F650 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
828+
isa = XCRemoteSwiftPackageReference;
829+
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
830+
requirement = {
831+
kind = upToNextMajorVersion;
832+
minimumVersion = 12.11.0;
833+
};
834+
};
791835
6C4D99E32F365E1700E93BF0 /* XCRemoteSwiftPackageReference "lottie-ios" */ = {
792836
isa = XCRemoteSwiftPackageReference;
793837
repositoryURL = "https://github.com/airbnb/lottie-ios";
@@ -839,6 +883,21 @@
839883
package = 59D1D2192F168EE800F50EB5 /* XCRemoteSwiftPackageReference "Kingfisher" */;
840884
productName = Kingfisher;
841885
};
886+
6C0C1ACA2F6FD2E30037F650 /* FirebaseAnalytics */ = {
887+
isa = XCSwiftPackageProductDependency;
888+
package = 6C0C1AC92F6FD2E30037F650 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
889+
productName = FirebaseAnalytics;
890+
};
891+
6C0C1ACC2F6FD2E30037F650 /* FirebaseCrashlytics */ = {
892+
isa = XCSwiftPackageProductDependency;
893+
package = 6C0C1AC92F6FD2E30037F650 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
894+
productName = FirebaseCrashlytics;
895+
};
896+
6C0C1ACE2F6FD2E30037F650 /* FirebaseInstallations */ = {
897+
isa = XCSwiftPackageProductDependency;
898+
package = 6C0C1AC92F6FD2E30037F650 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
899+
productName = FirebaseInstallations;
900+
};
842901
6C4D99E42F365E1700E93BF0 /* Lottie */ = {
843902
isa = XCSwiftPackageProductDependency;
844903
package = 6C4D99E32F365E1700E93BF0 /* XCRemoteSwiftPackageReference "lottie-ios" */;

Neki-iOS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 118 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)