From faac876eefadf84f1ec44de4c44895883d1670cd Mon Sep 17 00:00:00 2001 From: LeeMyeongJin Date: Sat, 3 Feb 2024 16:48:51 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[Setting]=20#250=20-=20fastlane=20match=20?= =?UTF-8?q?=EB=B8=8C=EB=9E=9C=EC=B9=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runnect-iOS/fastlane/Matchfile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Runnect-iOS/fastlane/Matchfile b/Runnect-iOS/fastlane/Matchfile index 778caf1d..34e6e9f3 100644 --- a/Runnect-iOS/fastlane/Matchfile +++ b/Runnect-iOS/fastlane/Matchfile @@ -1,14 +1,13 @@ git_url("https://github.com/thingineeer/fastlane-match") -git_branch("master") - +git_branch("Runnect") # 'Runnect' 앱을 위한 인증서 관리를 할 브랜치 storage_mode("git") -type("appstore") # The default type, can be: appstore, adhoc, enterprise or development +type("development") # The default type, can be: appstore, adhoc, enterprise or development -app_identifier(ENV["APP_IDENTIFIER"]) +# app_identifier(["tools.fastlane.app", "tools.fastlane.app2"]) # username("user@fastlane.tools") # Your Apple Developer Portal username # For all available options run `fastlane match --help` # Remove the # in the beginning of the line to enable the other options -# The docs are available on https://docs.fastlane.tools/actions/match +# The docs are available on https://docs.fastlane.tools/actions/match \ No newline at end of file From db81d6baf7d7c7bcfb761f5f3139f91d6e271164 Mon Sep 17 00:00:00 2001 From: LeeMyeongJin Date: Sat, 3 Feb 2024 16:49:29 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[Fix]=20#260=20-=20=EB=8B=A4=EC=9D=B4?= =?UTF-8?q?=EB=82=98=EB=AF=B9=EB=A7=81=ED=81=AC=20=EA=B3=B5=EC=9A=A9=20?= =?UTF-8?q?=EA=B3=84=EC=A0=95=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 안드로이드 파라미터 등록 --- .../Runnect-iOS.xcodeproj/project.pbxproj | 22 +++++++------------ .../CourseDetail/VC/CourseDetailVC.swift | 14 +++++++----- .../Runnect-iOS/Runnect-iOS.entitlements | 2 +- .../Runnect-iOS/Runnect-iOSDebug.entitlements | 2 +- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj index 4e5f85cd..d483aa8a 100644 --- a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj +++ b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj @@ -21,8 +21,8 @@ 712DB0702B443ACC0013FD79 /* GAEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 712DB06F2B443ACC0013FD79 /* GAEvent.swift */; }; 712F661D2A7B7BAB00D9539B /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 712F661C2A7B7BAB00D9539B /* Config.swift */; }; 7136BF8A2AF921A900679364 /* CustomBottomSheetVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7136BF892AF921A900679364 /* CustomBottomSheetVC.swift */; }; - 713A98F02B29DD9900189B3C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 713A98EF2B29DD9900189B3C /* GoogleService-Info.plist */; }; 715D36E82B2CC64000CAA9D6 /* MyUploadedCourseResponseDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 715D36E72B2CC64000CAA9D6 /* MyUploadedCourseResponseDto.swift */; }; + 71773C8E2B6BDF3B0041605E /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 71773C8D2B6BDF3B0041605E /* GoogleService-Info.plist */; }; 717916DA2B13613B009CEF97 /* MarathonListResponseDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 717916D92B13613B009CEF97 /* MarathonListResponseDto.swift */; }; 71802C5C2B3364C2008DBCEE /* CourseDetailScrapCountDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71802C5B2B3364C2008DBCEE /* CourseDetailScrapCountDto.swift */; }; 71BAD06A2B24CECC0061E31D /* UserProfileDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71BAD0692B24CECC0061E31D /* UserProfileDto.swift */; }; @@ -194,8 +194,8 @@ 712DB06F2B443ACC0013FD79 /* GAEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GAEvent.swift; sourceTree = ""; }; 712F661C2A7B7BAB00D9539B /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = ""; }; 7136BF892AF921A900679364 /* CustomBottomSheetVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomBottomSheetVC.swift; sourceTree = ""; }; - 713A98EF2B29DD9900189B3C /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 715D36E72B2CC64000CAA9D6 /* MyUploadedCourseResponseDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyUploadedCourseResponseDto.swift; sourceTree = ""; }; + 71773C8D2B6BDF3B0041605E /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 717916D92B13613B009CEF97 /* MarathonListResponseDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarathonListResponseDto.swift; sourceTree = ""; }; 71802C5B2B3364C2008DBCEE /* CourseDetailScrapCountDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseDetailScrapCountDto.swift; sourceTree = ""; }; 71BAD0692B24CECC0061E31D /* UserProfileDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserProfileDto.swift; sourceTree = ""; }; @@ -869,7 +869,7 @@ CE6655A9295D7FAA00C64E12 /* Network */, CE6655A8295D7F7D00C64E12 /* Presentation */, CE4545D6295D7AF5003201E1 /* Info.plist */, - 713A98EF2B29DD9900189B3C /* GoogleService-Info.plist */, + 71773C8D2B6BDF3B0041605E /* GoogleService-Info.plist */, ); path = "Runnect-iOS"; sourceTree = ""; @@ -1334,7 +1334,7 @@ files = ( CE665615295D989A00C64E12 /* .swiftlint.yml in Resources */, CE17F0342961BEF800E1DED0 /* Pretendard-Bold.otf in Resources */, - 713A98F02B29DD9900189B3C /* GoogleService-Info.plist in Resources */, + 71773C8E2B6BDF3B0041605E /* GoogleService-Info.plist in Resources */, CE17F0352961BEF800E1DED0 /* Pretendard-SemiBold.otf in Resources */, CE17F0332961BEF800E1DED0 /* Pretendard-Medium.otf in Resources */, CE6655BF295D82E200C64E12 /* .gitkeep in Resources */, @@ -1709,11 +1709,9 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = "Runnect-iOS/Runnect-iOSDebug.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2024.0122.2217; - DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8Q4H7X3Q58; + DEVELOPMENT_TEAM = 8Q4H7X3Q58; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Runnect-iOS/Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = Runnect; @@ -1734,7 +1732,6 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.runnect.Runnect-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.runnect.Runnect-iOS"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; @@ -1753,11 +1750,9 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = "Runnect-iOS/Runnect-iOS.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2024.0122.2217; - DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 8Q4H7X3Q58; + DEVELOPMENT_TEAM = 8Q4H7X3Q58; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Runnect-iOS/Info.plist"; INFOPLIST_KEY_CFBundleDisplayName = Runnect; @@ -1778,7 +1773,6 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.runnect.Runnect-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.runnect.Runnect-iOS"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; diff --git a/Runnect-iOS/Runnect-iOS/Presentation/CourseDetail/VC/CourseDetailVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/CourseDetail/VC/CourseDetailVC.swift index 856d7150..51669f23 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/CourseDetail/VC/CourseDetailVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/CourseDetail/VC/CourseDetailVC.swift @@ -185,11 +185,13 @@ extension CourseDetailVC { let description = publicCourse.description let courseImage = publicCourse.image - let dynamicLinksDomainURIPrefix = "https://runnect.page.link" + let dynamicLinksDomainURIPrefix = "https://rnnt.page.link" guard let link = URL(string: "\(dynamicLinksDomainURIPrefix)/?courseId=\(courseId)") else { return } + print("‼️link= \(link)") + guard let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix) else { return } @@ -198,6 +200,8 @@ extension CourseDetailVC { linkBuilder.iOSParameters?.appStoreID = "1663884202" linkBuilder.iOSParameters?.minimumAppVersion = "1.0.4" + linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.runnect.runnect") + linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters() linkBuilder.socialMetaTagParameters?.imageURL = URL(string: courseImage) linkBuilder.socialMetaTagParameters?.title = title @@ -210,7 +214,7 @@ extension CourseDetailVC { /// 짧은 Dynamic Link로 변환하는 부분 입니다. linkBuilder.shorten { [weak self] url, _, error in // warning 파라미터 와일드 카드 - guard let shortDynamicLink = url else { + guard let shortDynamicLink = url?.absoluteString else { if let error = error { print("❌Error shortening dynamic link: \(error)") } @@ -220,7 +224,7 @@ extension CourseDetailVC { print("🔥The short URL is: \(shortDynamicLink)") DispatchQueue.main.async { - let activityVC = UIActivityViewController(activityItems: [shortDynamicLink.absoluteString], applicationActivities: nil) + let activityVC = UIActivityViewController(activityItems: [shortDynamicLink], applicationActivities: nil) activityVC.popoverPresentationController?.sourceView = self?.view self?.present(activityVC, animated: true, completion: nil) } @@ -318,8 +322,8 @@ extension CourseDetailVC { model.publicCourse.departure.town, model.publicCourse.departure.name ] - .compactMap { $0 } - .joined(separator: " ") + .compactMap { $0 } + .joined(separator: " ") self.courseDepartureInfoView.setDescriptionText(description: locate) self.courseExplanationTextView.text = model.publicCourse.description diff --git a/Runnect-iOS/Runnect-iOS/Runnect-iOS.entitlements b/Runnect-iOS/Runnect-iOS/Runnect-iOS.entitlements index 043f0eb4..dd7c1027 100644 --- a/Runnect-iOS/Runnect-iOS/Runnect-iOS.entitlements +++ b/Runnect-iOS/Runnect-iOS/Runnect-iOS.entitlements @@ -8,7 +8,7 @@ com.apple.developer.associated-domains - applinks:runnect.page.link + applinks:rnnt.page.link diff --git a/Runnect-iOS/Runnect-iOS/Runnect-iOSDebug.entitlements b/Runnect-iOS/Runnect-iOS/Runnect-iOSDebug.entitlements index 043f0eb4..dd7c1027 100644 --- a/Runnect-iOS/Runnect-iOS/Runnect-iOSDebug.entitlements +++ b/Runnect-iOS/Runnect-iOS/Runnect-iOSDebug.entitlements @@ -8,7 +8,7 @@ com.apple.developer.associated-domains - applinks:runnect.page.link + applinks:rnnt.page.link From e7584332ce5e4457cc3c8f03c8bce1431c9e5126 Mon Sep 17 00:00:00 2001 From: LeeMyeongJin Date: Sat, 3 Feb 2024 16:49:49 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[Fix]=20#250=20-=20=EC=93=B8=EB=8D=B0=20?= =?UTF-8?q?=EC=97=86=EB=8A=94=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/MarathonMapCollectionViewCell.swift | 2 +- .../MyPage/VC/SettingVC/PersoanlInfoVC.swift | 28 ------------------- .../VC/SettingVC/TermsOfServiceVC.swift | 28 ------------------- 3 files changed, 1 insertion(+), 57 deletions(-) delete mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersoanlInfoVC.swift delete mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/TermsOfServiceVC.swift diff --git a/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/MarathonMapCollectionViewCell.swift b/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/MarathonMapCollectionViewCell.swift index d371faa9..40f9f1b3 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/MarathonMapCollectionViewCell.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Views/MarathonMapCollectionViewCell.swift @@ -211,7 +211,7 @@ extension MarathonMapCollectionViewCell { LoadingIndicator.hideLoading() } - guard let self = self else { return } + guard self != nil else { return } switch response { case .success(let result): diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersoanlInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersoanlInfoVC.swift deleted file mode 100644 index e857696e..00000000 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersoanlInfoVC.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// PersoanlInfoVC.swift -// Runnect-iOS -// -// Created by 몽이 누나 on 2023/04/11. -// - -import UIKit - -class PersoanlInfoVC: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - - // Do any additional setup after loading the view. - } - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - -} diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/TermsOfServiceVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/TermsOfServiceVC.swift deleted file mode 100644 index 64d66520..00000000 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/TermsOfServiceVC.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// TermsOfServiceVC.swift -// Runnect-iOS -// -// Created by 몽이 누나 on 2023/04/11. -// - -import UIKit - -class TermsOfServiceVC: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - - // Do any additional setup after loading the view. - } - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - -} From 77fc651cdb8c8164c2f9f8695e43748b88d8be1f Mon Sep 17 00:00:00 2001 From: LeeMyeongJin Date: Sat, 3 Feb 2024 17:05:08 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[Chore]=20#250=20-=20=EC=B9=B4=EC=B9=B4?= =?UTF-8?q?=EC=98=A4=EB=A7=B5=20=EB=8B=90=20=EC=BD=94=EC=96=BC=EB=A0=88?= =?UTF-8?q?=EC=8B=B1=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KakaoAddressSearchingResponseDto.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Network/Dto/CourseDrawingDto/ResponseDto/KakaoAddressSearchingResponseDto.swift b/Runnect-iOS/Runnect-iOS/Network/Dto/CourseDrawingDto/ResponseDto/KakaoAddressSearchingResponseDto.swift index af288f89..6e953f2e 100644 --- a/Runnect-iOS/Runnect-iOS/Network/Dto/CourseDrawingDto/ResponseDto/KakaoAddressSearchingResponseDto.swift +++ b/Runnect-iOS/Runnect-iOS/Network/Dto/CourseDrawingDto/ResponseDto/KakaoAddressSearchingResponseDto.swift @@ -8,14 +8,19 @@ import Foundation // MARK: - DepartureAddressSearchingResponseDto -struct KakaoAddressSearchingResponseDto: Codable { +struct KakaoAddressSearchingResponseDto: Codable { /// 사용 안함 let meta: Meta let documents: [Document] func toDepartureLocationModel(latitude: Double, longitude: Double) -> DepartureLocationModel { - let roadName = self.documents[0].roadAddress.buildingName ?? "내가 설정한 출발지" + let roadName = self.documents[0].roadAddress.buildingName - return DepartureLocationModel(departureName: roadName, departureAddress: self.documents[0].address.addressName, latitude: String(latitude), longitude: String(longitude)) + return DepartureLocationModel( + departureName: roadName, + departureAddress: self.documents[0].address.addressName, + latitude: String(latitude), + longitude: String(longitude) + ) } }