Skip to content

Commit ec01954

Browse files
authored
Merge pull request #92 from ApptiveDev/dev
[Release] 1.2.3 업데이트
2 parents 3bca1ff + 1cf20ac commit ec01954

36 files changed

Lines changed: 2735 additions & 141 deletions

KillingPart.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@
448448
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
449449
CODE_SIGN_ENTITLEMENTS = KillingPart/KillingPart.entitlements;
450450
CODE_SIGN_STYLE = Automatic;
451-
CURRENT_PROJECT_VERSION = 36;
451+
CURRENT_PROJECT_VERSION = 38;
452452
DEAD_CODE_STRIPPING = YES;
453453
DEVELOPMENT_TEAM = GQ89YG5G9R;
454454
ENABLE_APP_SANDBOX = YES;
@@ -473,7 +473,7 @@
473473
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
474474
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
475475
MACOSX_DEPLOYMENT_TARGET = 14.0;
476-
MARKETING_VERSION = 1.2.0;
476+
MARKETING_VERSION = 1.2.3;
477477
PRODUCT_BUNDLE_IDENTIFIER = com.killingpoint.killingpart;
478478
PRODUCT_NAME = "$(TARGET_NAME)";
479479
REGISTER_APP_GROUPS = YES;
@@ -493,7 +493,7 @@
493493
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
494494
CODE_SIGN_ENTITLEMENTS = KillingPart/KillingPart.entitlements;
495495
CODE_SIGN_STYLE = Automatic;
496-
CURRENT_PROJECT_VERSION = 36;
496+
CURRENT_PROJECT_VERSION = 38;
497497
DEAD_CODE_STRIPPING = YES;
498498
DEVELOPMENT_TEAM = GQ89YG5G9R;
499499
ENABLE_APP_SANDBOX = YES;
@@ -518,7 +518,7 @@
518518
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
519519
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
520520
MACOSX_DEPLOYMENT_TARGET = 14.0;
521-
MARKETING_VERSION = 1.2.0;
521+
MARKETING_VERSION = 1.2.3;
522522
PRODUCT_BUNDLE_IDENTIFIER = com.killingpoint.killingpart;
523523
PRODUCT_NAME = "$(TARGET_NAME)";
524524
REGISTER_APP_GROUPS = YES;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "ic_killingpart_dark.png",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "ic_killingpart_dark 1.png",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "ic_killingpart_dark 2.png",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
25.9 KB
Loading
25.9 KB
Loading
25.9 KB
Loading
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"colors" : [
3+
{
4+
"color" : {
5+
"color-space" : "srgb",
6+
"components" : {
7+
"alpha" : "1.000",
8+
"blue" : "0x20",
9+
"green" : "0x1E",
10+
"red" : "0x1D"
11+
}
12+
},
13+
"idiom" : "universal"
14+
},
15+
{
16+
"appearances" : [
17+
{
18+
"appearance" : "luminosity",
19+
"value" : "dark"
20+
}
21+
],
22+
"color" : {
23+
"color-space" : "srgb",
24+
"components" : {
25+
"alpha" : "1.000",
26+
"blue" : "0x20",
27+
"green" : "0x1E",
28+
"red" : "0x1D"
29+
}
30+
},
31+
"idiom" : "universal"
32+
}
33+
],
34+
"info" : {
35+
"author" : "xcode",
36+
"version" : 1
37+
}
38+
}

KillingPart/Models/DiaryModel.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ struct DiaryFeedModel: Decodable, Identifiable {
4040
let username: String?
4141
let tag: String?
4242
let profileImageUrl: String?
43+
let isMyPick: Bool?
4344

4445
var id: Int { diaryId }
4546

@@ -216,7 +217,8 @@ struct UserDiaryFeedModel: Decodable, Identifiable {
216217
userId: user.userId,
217218
username: user.username,
218219
tag: user.tag,
219-
profileImageUrl: user.profileImageUrl
220+
profileImageUrl: user.profileImageUrl,
221+
isMyPick: user.isMyPick
220222
)
221223
}
222224
}
@@ -549,7 +551,8 @@ private struct CalendarDiaryFeedResponse: Decodable {
549551
userId: 0,
550552
username: nil,
551553
tag: nil,
552-
profileImageUrl: nil
554+
profileImageUrl: nil,
555+
isMyPick: nil
553556
)
554557
}
555558

@@ -617,7 +620,8 @@ extension DiaryFeedModel {
617620
userId: userId,
618621
username: username,
619622
tag: tag,
620-
profileImageUrl: profileImageUrl
623+
profileImageUrl: profileImageUrl,
624+
isMyPick: isMyPick
621625
)
622626
}
623627
}

KillingPart/Services/AppDelegate.swift

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ final class AppDelegate: NSObject, UIApplicationDelegate {
1212
FirebaseApp.configure()
1313
UNUserNotificationCenter.current().delegate = self
1414
Messaging.messaging().delegate = self
15-
print("[FCM][1] Firebase 초기화 완료, 알림 권한 요청 시작")
16-
requestNotificationAuthorization()
15+
if let remotePayload = launchOptions?[.remoteNotification] as? [AnyHashable: Any] {
16+
FCMManager.shared.handleLaunchRemoteNotification(remotePayload)
17+
}
18+
print("[FCM][1] Firebase 초기화 완료")
1719
return true
1820
}
1921

@@ -45,27 +47,6 @@ final class AppDelegate: NSObject, UIApplicationDelegate {
4547
completionHandler(.newData)
4648
}
4749

48-
private func requestNotificationAuthorization() {
49-
UNUserNotificationCenter.current().getNotificationSettings { settings in
50-
print("[FCM][2] 현재 알림 권한 상태: \(settings.authorizationStatus.debugDescription)")
51-
}
52-
53-
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { granted, error in
54-
if let error {
55-
print("[FCM][2] ❌ 알림 권한 요청 오류: \(error.localizedDescription)")
56-
return
57-
}
58-
print("[FCM][2] 알림 권한 \(granted ? "✅ 허용" : "❌ 거부")")
59-
if granted {
60-
DispatchQueue.main.async {
61-
print("[FCM][2] APNs 등록 요청 시작")
62-
UIApplication.shared.registerForRemoteNotifications()
63-
}
64-
} else {
65-
print("[FCM][2] ⚠️ 권한 거부 — 설정 앱에서 알림을 허용해야 합니다")
66-
}
67-
}
68-
}
6950
}
7051

7152
extension AppDelegate: UNUserNotificationCenterDelegate {
@@ -108,16 +89,3 @@ extension AppDelegate: MessagingDelegate {
10889
FCMManager.shared.didReceiveToken(token)
10990
}
11091
}
111-
112-
private extension UNAuthorizationStatus {
113-
var debugDescription: String {
114-
switch self {
115-
case .notDetermined: return "notDetermined"
116-
case .denied: return "denied ❌"
117-
case .authorized: return "authorized ✅"
118-
case .provisional: return "provisional"
119-
case .ephemeral: return "ephemeral"
120-
@unknown default: return "unknown"
121-
}
122-
}
123-
}

KillingPart/Services/AuthSessionEvents.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ extension Notification.Name {
44
static let authenticationSessionExpired = Notification.Name("authenticationSessionExpired")
55
static let diaryCreated = Notification.Name("diaryCreated")
66
static let navigateToPlayKillingPart = Notification.Name("navigateToPlayKillingPart")
7+
static let didTapPushAlarm = Notification.Name("didTapPushAlarm")
78
}

KillingPart/Services/DiaryService.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ protocol DiaryServicing {
55
func fetchStoredDiaries(page: Int, size: Int) async throws -> StoredDiaryFeedsResponse
66
func fetchMyFeeds(page: Int, size: Int) async throws -> MyDiaryFeedsResponse
77
func fetchRandomDiaries() async throws -> RandomDiaryFeedsResponse
8+
func fetchDiary(diaryId: Int) async throws -> DiaryFeedModel
89
func fetchUserFeeds(userId: Int, page: Int, size: Int) async throws -> UserDiaryFeedsResponse
910
func fetchDiaryLikeUsers(diaryId: Int, searchCond: String?, page: Int, size: Int) async throws -> UserSearchResponse
1011
func createDiary(request: DiaryCreateRequest) async throws -> DiaryCreateResult
@@ -142,6 +143,21 @@ struct DiaryService: DiaryServicing {
142143
}
143144
}
144145

146+
func fetchDiary(diaryId: Int) async throws -> DiaryFeedModel {
147+
do {
148+
let request = APIRequest(
149+
path: "/diaries/\(diaryId)",
150+
method: .get,
151+
requiresAuthorization: true
152+
)
153+
154+
return try await apiClient.request(request, responseType: DiaryFeedModel.self)
155+
} catch {
156+
if isRequestCancelled(error) { throw error }
157+
throw mapError(error)
158+
}
159+
}
160+
145161
func fetchUserFeeds(
146162
userId: Int,
147163
page: Int = Self.defaultPage,

0 commit comments

Comments
 (0)