Skip to content

Commit 2a16f36

Browse files
authored
Merge pull request #45 from Orange-Co/fix/#44
[Fix] 1차 QA 반영
2 parents b751dcd + 63192b8 commit 2a16f36

26 files changed

+588
-352
lines changed

DDANZI_iOS/DDANZI_iOS.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
363F1A252C9F1BE2007527E2 /* BankList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 363F1A242C9F1BE2007527E2 /* BankList.swift */; };
8080
363F1A272C9F57D4007527E2 /* CustomAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 363F1A262C9F57D4007527E2 /* CustomAlertView.swift */; };
8181
363F1A292CA067C7007527E2 /* RefreshTokenRequestDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 363F1A282CA067C7007527E2 /* RefreshTokenRequestDTO.swift */; };
82+
363F1A2B2CA09C5E007527E2 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 363F1A2A2CA09C59007527E2 /* PrivacyInfo.xcprivacy */; };
8283
3648954E2C6281BB00AAA8E2 /* HomeItemsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3648954D2C6281BB00AAA8E2 /* HomeItemsResponseDTO.swift */; };
8384
364895502C62822200AAA8E2 /* ProductDetailResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3648954F2C62822200AAA8E2 /* ProductDetailResponseDTO.swift */; };
8485
364895522C62826200AAA8E2 /* SearchItemsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 364895512C62826200AAA8E2 /* SearchItemsResponseDTO.swift */; };
@@ -319,6 +320,7 @@
319320
363F1A242C9F1BE2007527E2 /* BankList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BankList.swift; sourceTree = "<group>"; };
320321
363F1A262C9F57D4007527E2 /* CustomAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomAlertView.swift; sourceTree = "<group>"; };
321322
363F1A282CA067C7007527E2 /* RefreshTokenRequestDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RefreshTokenRequestDTO.swift; sourceTree = "<group>"; };
323+
363F1A2A2CA09C59007527E2 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
322324
3648954D2C6281BB00AAA8E2 /* HomeItemsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeItemsResponseDTO.swift; sourceTree = "<group>"; };
323325
3648954F2C62822200AAA8E2 /* ProductDetailResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductDetailResponseDTO.swift; sourceTree = "<group>"; };
324326
364895512C62826200AAA8E2 /* SearchItemsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchItemsResponseDTO.swift; sourceTree = "<group>"; };
@@ -1017,6 +1019,7 @@
10171019
369C63982C1A7A270021E2E0 /* Info.plist */,
10181020
369C638A2C1A7A240021E2E0 /* AppDelegate.swift */,
10191021
369C638C2C1A7A240021E2E0 /* SceneDelegate.swift */,
1022+
363F1A2A2CA09C59007527E2 /* PrivacyInfo.xcprivacy */,
10201023
);
10211024
path = Application;
10221025
sourceTree = "<group>";
@@ -1497,6 +1500,7 @@
14971500
369C63D92C1A7E320021E2E0 /* Pretendard-ExtraLight.otf in Resources */,
14981501
369C63942C1A7A270021E2E0 /* Assets.xcassets in Resources */,
14991502
369C63DB2C1A7E320021E2E0 /* Pretendard-ExtraBold.otf in Resources */,
1503+
363F1A2B2CA09C5E007527E2 /* PrivacyInfo.xcprivacy in Resources */,
15001504
369C63D72C1A7E320021E2E0 /* Pretendard-Bold.otf in Resources */,
15011505
3664CFD72C6E1BC6007FB5DF /* splash.json in Resources */,
15021506
369C63DA2C1A7E320021E2E0 /* Pretendard-Medium.otf in Resources */,
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>NSPrivacyCollectedDataTypes</key>
6+
<array>
7+
<dict>
8+
<key>NSPrivacyCollectedDataType</key>
9+
<string>NSPrivacyCollectedDataTypePhotosorVideos</string>
10+
<key>NSPrivacyCollectedDataTypeLinked</key>
11+
<false/>
12+
<key>NSPrivacyCollectedDataTypeTracking</key>
13+
<false/>
14+
<key>NSPrivacyCollectedDataTypePurposes</key>
15+
<array>
16+
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
17+
</array>
18+
</dict>
19+
<dict>
20+
<key>NSPrivacyCollectedDataType</key>
21+
<string>NSPrivacyCollectedDataTypeEmailAddress</string>
22+
<key>NSPrivacyCollectedDataTypeLinked</key>
23+
<true/>
24+
<key>NSPrivacyCollectedDataTypeTracking</key>
25+
<false/>
26+
<key>NSPrivacyCollectedDataTypePurposes</key>
27+
<array>
28+
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
29+
</array>
30+
</dict>
31+
<dict>
32+
<key>NSPrivacyCollectedDataType</key>
33+
<string>NSPrivacyCollectedDataTypePhoneNumber</string>
34+
<key>NSPrivacyCollectedDataTypeLinked</key>
35+
<true/>
36+
<key>NSPrivacyCollectedDataTypeTracking</key>
37+
<false/>
38+
<key>NSPrivacyCollectedDataTypePurposes</key>
39+
<array>
40+
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
41+
</array>
42+
</dict>
43+
<dict>
44+
<key>NSPrivacyCollectedDataType</key>
45+
<string>NSPrivacyCollectedDataTypeCreditInfo</string>
46+
<key>NSPrivacyCollectedDataTypeLinked</key>
47+
<false/>
48+
<key>NSPrivacyCollectedDataTypeTracking</key>
49+
<false/>
50+
<key>NSPrivacyCollectedDataTypePurposes</key>
51+
<array>
52+
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
53+
</array>
54+
</dict>
55+
<dict>
56+
<key>NSPrivacyCollectedDataType</key>
57+
<string>NSPrivacyCollectedDataTypeName</string>
58+
<key>NSPrivacyCollectedDataTypeLinked</key>
59+
<true/>
60+
<key>NSPrivacyCollectedDataTypeTracking</key>
61+
<false/>
62+
<key>NSPrivacyCollectedDataTypePurposes</key>
63+
<array>
64+
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
65+
</array>
66+
</dict>
67+
</array>
68+
<key>NSPrivacyTracking</key>
69+
<false/>
70+
<key>NSPrivacyTrackingDomains</key>
71+
<array/>
72+
<key>NSPrivacyAccessedAPITypes</key>
73+
<array>
74+
<dict>
75+
<key>NSPrivacyAccessedAPITypeReasons</key>
76+
<array>
77+
<string>C56D.1</string>
78+
<string>1C8F.1</string>
79+
<string>CA92.1</string>
80+
</array>
81+
<key>NSPrivacyAccessedAPIType</key>
82+
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
83+
</dict>
84+
</array>
85+
</dict>
86+
</plist>

DDANZI_iOS/DDANZI_iOS/Common/LocalStorage/Keychainwrapper.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public final class KeychainWrapper {
1515
public let userKey = "com.orangeCo.DDANZI-iOS.user"
1616
public let UUIDKey = "com.orangeCo.DDANZI-iOS.uuid"
1717

18+
public var isAccessTokenEx = true
19+
1820
// MARK: - deviceUUID
1921

2022
public var deviceUUID: String {
@@ -138,7 +140,13 @@ public final class KeychainWrapper {
138140
]
139141

140142
let status = SecItemDelete(query as CFDictionary)
141-
assert(status == errSecSuccess, "AccessToken 키체인 삭제 실패")
142-
return status == errSecSuccess
143+
144+
if status == errSecItemNotFound {
145+
print("AccessToken이 존재하지 않아 삭제할 수 없습니다.")
146+
return true // 이미 없으므로 성공으로 처리
147+
} else {
148+
assert(status == errSecSuccess, "AccessToken 키체인 삭제 실패")
149+
return status == errSecSuccess
150+
}
143151
}
144152
}

DDANZI_iOS/DDANZI_iOS/Data/Endpoint/MypageEndpoint.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ extension MypageEndpoint: BaseTargetType {
120120
case let .addUserAddress(body):
121121
return .requestJSONEncodable(body)
122122
case let .editUserAddress(_, body):
123-
return .requestPlain
123+
return .requestJSONEncodable(body)
124124
case .deleteUserAddress:
125125
return .requestPlain
126126
case .settingUserNoti:

DDANZI_iOS/DDANZI_iOS/Data/Network/Foundation/Interceptor.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,14 @@ final class AuthInterceptor: RequestInterceptor {
3030
if request.retryCount < retryLimit {
3131
if statusCode == 401 {
3232
refreshToken { success in
33-
if success {
34-
// Retry the request if token refresh was successful
33+
switch success {
34+
case true:
3535
completion(.retry)
36-
} else {
37-
// Token refresh failed; do not retry
36+
case false:
3837
completion(.doNotRetry)
38+
self.handleTokenRefreshFailure()
3939
}
4040
}
41-
} else {
42-
completion(.doNotRetryWithError(error))
4341
}
4442
} else {
4543
completion(.doNotRetry)

0 commit comments

Comments
 (0)