From c1dbd2ace2f065e82b05330e85b881c65e39c3af Mon Sep 17 00:00:00 2001 From: OneTen19 Date: Tue, 21 Apr 2026 00:04:42 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[Add]=20#228=20-=20memo=20icon=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/icon_note.imageset/Contents.json | 18 ++++++++++---- .../Common/icon_note.imageset/icon_note.svg | 6 ----- .../Common/icon_note.imageset/icon_note1.png | Bin 0 -> 538 bytes .../Common/icon_note.imageset/icon_note2.png | Bin 0 -> 932 bytes .../Common/icon_note.imageset/icon_note3.png | Bin 0 -> 1163 bytes .../icon_note_fill.imageset/Contents.json | 23 ++++++++++++++++++ .../icon_note_fill1.png | Bin 0 -> 599 bytes .../icon_note_fill2.png | Bin 0 -> 954 bytes .../icon_note_fill3.png | Bin 0 -> 1285 bytes 9 files changed, 36 insertions(+), 11 deletions(-) delete mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note.svg create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note1.png create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note2.png create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note3.png create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/Contents.json create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill1.png create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill2.png create mode 100644 Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill3.png diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/Contents.json b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/Contents.json index d370cac8..780461e7 100644 --- a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/Contents.json +++ b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/Contents.json @@ -1,15 +1,23 @@ { "images" : [ { - "filename" : "icon_note.svg", - "idiom" : "universal" + "filename" : "icon_note1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_note2.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_note3.png", + "idiom" : "universal", + "scale" : "3x" } ], "info" : { "author" : "xcode", "version" : 1 - }, - "properties" : { - "preserves-vector-representation" : true } } diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note.svg b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note.svg deleted file mode 100644 index 90cee9e2..00000000 --- a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note1.png b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note1.png new file mode 100644 index 0000000000000000000000000000000000000000..5b71bc47e0c5b5df0cffb77ee29f7507693f5a75 GIT binary patch literal 538 zcmV+#0_FXQP)OkC7+Myk?O=%zbzqH+a{F3Z$wg5-fEaV!c3_7M^Uco?* zK0Dwy;{sb4>L(TLYZk!6-UxQ?4YQ*D=GQ#9nwtf%USgZi9@*1KG#HM|c9DA}SQx?* zYL?(&xW+!ztPIcybDJI`J?Z;1en(tDP0IT)$ag>sYe5L*6oDr&mT!Q#VA%e5g}e^B z`ScJ_vnfl0Uq7p*7my~3=rIOQ`M_A9(}!(X|+magDXiQ*cP4_XtX(^ze z#24X0JyR;NY+=s&SqVs>yFF&MSl52F6)Cerr2i2^S5aKGtB5IQ*&VJi#EP}gj>q!l c?5M-_2U5_zsl70BlmGw#07*qoM6N<$f_jACPXGV_ literal 0 HcmV?d00001 diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note2.png b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note.imageset/icon_note2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a50294fcb6bd2bf5153bb20e1b27e67b7e0079a GIT binary patch literal 932 zcmV;V16%xwP)Wab6oB7LP{lIbz+HCN-oQNprUi)=aZgZj zf|3&uPJr7L5|B)Lf#e2ch1k_c2wSB1@y1Qs{CMolc*b@me^QmkZk&Ae%zJO%1fZp* zrKQCjgpve7=p`MxDh0)!X|uf-^ez<^SM!MpI77Bt~sd*B!X`gAwC8Gt6nf>p|` zzz&{@AJJ6jH7~$`d^wE48su#}Bf8>;DQKWASa9d!+fj4~mXPzCI`r%Dy$C$eq@(l4 zRS!!cqL?4%P=dV$6>@VZ`2k$Bm!L`xyLbxET`*5he2-?(aB>BUc|WfV;# zm?EI?@$u`kzD&NG=g?+~u!B;N!?VmeS<$kmI1Wf~4Glv*L=lcb0|FeF){8DtCwkhx zOWDH@xfteu#^6@7gfamEzknwDRx(yA6cbqP!eoRP)uL6CCC5Rq2VL-C0aLDcl(|@| zRI39_@Z+}JoAVES4ubbwe2-eM~)*o3e`L`66A3|F6eNnR0rR=mlMoT}c;!$?r(L0-nZ!UH@k{7LXc zmG5}yhLCl46>`+2ub@e-d61AUc`k3FmYeLhQHrT8O>mLz^9Nq9L+5hn=g4U_!B*7Q zvPihy@W4E6CM7V;3MMQ!HkFgqDLCW~`K+j?Qg&HZo8VGPfMcFj%ff_Ka7iz(HRlQ& zyI0CNC|mOMG{Jk^n!D#6r5Gy2#_p9m$RL+vME=%M4{F3@_o}Np@#ps}J~}#)-=p!N z0m$7e-X9r)CWT)FO6x_0K2be)Z?$_RD%ibhX=!O`+2%jX9kDMdA^utb0000KkM%H_VxsLJRXn7 zjD zsF!)4jf7^&P+CoiaUJc?dwv4redYMm?Td0@0np{Hj%G7ZmKLrmCoM(M% ziE&_WGMW=qXTRO)EZ=hw9Xxv6lzyV77zyQkW}u+D28RYPfsml4m^FFAN63-dO76OV znb3xM4H;(nN7NW2p-N!cf|ox=HZtTQklf^B!)#M_3XX`=VuXJ3Egr!|2zNB00|>E+ z&{9%xqReIPB}pt6##vheaUKgYHR2ijN{}H_FMIQ)7R}!5BFWS5Z`~D2Su%B2zoC9` z-2G|x_gmdAW_(6$Uz4BE@k*H!b&dNq1Wo;!sno3#np5TyE%g!xZ114-4;eC-1mTA$ zKn7bc)KKOOlfg-Rls`B;>P!{&V851W%!5YnYH)FeHOV7$v7D2M=oPB7QY8{pcPy!!G|+FJYII&v9-#Ei6K&MtqcKsVP52aEPL0YHA;c7AaFx zYoSHU)YMjJ88S7s6k3){P3?r1DO2O(Tz>7XE@jKqxHy*&I7@y#TZYJUZU}XI#(Z)Aye1A@<1B#OA(=!jYIX-iHsl4M5gqXpvnr(x;o2{si|Zs z&Z6&ZJ@y?D$H9dDaK)fzbF*4CYnygBM!jFNI%bgxp5rWQhGl!_Up0kJFyhWC#eC)S zoWr%AX%!vIj9`&U3SG!^vNqM1;t1n~3gd+e&B#vf)&8h!E_ad4D(CJCx)SF%^LjiUkH_Qj dcs!o+`3p-sH(*=4mwf;L002ovPDHLkV1mwe6dnKo literal 0 HcmV?d00001 diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/Contents.json b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/Contents.json new file mode 100644 index 00000000..7078874d --- /dev/null +++ b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "icon_note_fill1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_note_fill2.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_note_fill3.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill1.png b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill1.png new file mode 100644 index 0000000000000000000000000000000000000000..45000520938764b9895146b1043b5b025c6ebd3a GIT binary patch literal 599 zcmV-d0;v6oP)5Qe*><(eB9m+bHa#uG4tZe=`yZe0OK z@B|F3tWrqe0^$k4jpa_f0T(cBPXLXWnLMOe@mEpF(9`oJ{g?^BP8$~5j6%p#5U9DR z$rb@MAzd?`r$&Qb+cd#38P4jL4YuAuKDh|k66ex`JU|T#2^ADo2p(hw{u`DeXPYps z{rJG|_qu%P{+Wez0tA}}u1i;G=unf$oD+j)kOoXDeIDEUCPD1c9uAb!539$zt>ShE zHYg1n4OEL^E;%&e-@CYwmG~TEND*-ime521B9AX_0_5Im@9E?`m)aj^}|gGFPzZ1y}&U9(LN6z5v3n1onEy=+giI002ovPDHLkV1k*|^VR?W literal 0 HcmV?d00001 diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill2.png b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill2.png new file mode 100644 index 0000000000000000000000000000000000000000..3f8443e8c35bc23c4e10b1aa7dbd024c8ffe4455 GIT binary patch literal 954 zcmV;r14aCaP)Iy93fdEJHGrlaVV( zI*46CoC<<-${~YgH()vlxny#)O5o^;gI?asU@Jlr(y}YWjJ^wES%E(7pZ9hJ(9qD( z(4Y^&5U%Sv+~Ql9gb)zZr9T=Dp~(wq;=c6`(8kpNHVk6L4ot#u7~Fl`JK4P%eLaT; zEoh+RcxJe@av;!|`^M`+gVKUAxeh9XnLk2_Gn@S;R{^%>4Ww)5JG92vIvS1$}?01g0nmhde+H(aL0! zxV;k0*ZQe6GmE$QZOmn%r^!WFYI#I~f{R^7>=daH_3fmR!iB$`-NNnGdH-YALuv zE{PL$*$i~XU?3N8F1IGYI?UiPEyvE1av&lYv8w(Rv$SF1=Se2Z@ZXBG!m5Jniyolx8>x$$Qw&UQ~J@z`W zfF9h8hG+2#Hsuud;~+h^bky=O+`i}9lv7xZgHf!*bL%C?ova8xrJk4~mzQtmQND`; zA0$qCC=drl?kSukSLANb^W<|U?R*C#L987~>#TW2(kyj@$t>sbtGSx^?hhLHM+Sm_}VU#6@y4F(Id@L~v=Wi4e7E zlC`H|N=~7hY?uF`9oj1rKUMdQX4hr8;Cghqhmus5s__F~;Ew`Y$ zTvRSP+67BIYfp%EVVJ7-MI9v~LtwFfrPU}Y2W4U@Q2-5E8DFOL zpA?%A;}ROQ(+Yq8ngsj%hiZoHq6W;DSQpSB_pe+kUz8dHX0suqDA7C20 cG&F30f7veIYInG5#Q*>R07*qoM6N<$f&)mV6aWAK literal 0 HcmV?d00001 diff --git a/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill3.png b/Neki-iOS/Shared/DesignSystem/Resources/Assets.xcassets/Common/icon_note_fill.imageset/icon_note_fill3.png new file mode 100644 index 0000000000000000000000000000000000000000..6844a4abb355d150a57289b028d16eadb4bd30f0 GIT binary patch literal 1285 zcmV+g1^W7lP)fCbaZOezyT zfs`_ps4iWk6BtgFnItyl3y8S^tHdR81C|+0jOX`Y$&w{}EWic$0PU~Q2;difT<-3B z`xb!5oJMmf#lXy;OrIa21)K{NnH11Df9h|b7?B!&7fs+8r$Rr;1jgtAMC81c zIuqJAnHhvh_(L>?L!1chrOYcXFo8oh7TRl>EwGVLFY_*qg?gF!G!p7%7E@cOmsw6N zpF9#(=RBdMRg(4ar(M z(H;g&E9tu;_~+hA%1jfT2@OByA0rGL+di~0{4*b=+%gF`ghm1+a7d|8k%6x;LKFVS zI8D>Xyxefe>nzP)qh&bB{9^G(yo5u_TWElgF6bp1V!B_lvL=)HI*#F(P6s6|v?Wt$ zy${t!mCS6NDdnWI!D{hmyg*IvRST_>xj&t~q?FFN-#_B{@|*oz zgs866dm*%u%qv)GIE^A$GI*gI$-I7%$FOA3LY>GI2>-$om!tgJ1m>yhiE0i+3*T>%U1W0m z_%>wyRn9jpca~%pqHZmbsb5(j-&p^*mIYOrf_zHOdrvDO9UWp?5+x%M^MgRJ%+; zRV*)CaU{8$caC6=&y>p)RK@b#`sRkrY0jzSEuSlTo)(#czF2+-ch+&ZbruE-nq&%n zh~<-@Abs{^I{O8RWD4qHd5*LWZvM}q>@rV;6rLHoYLw1o3VLFBj?sBQI*`p+pB?`a zxtm-q3(rbr%9p|h#xC=?s$+Tna^j-a$?~I$r&r39B4SQdJKdG6dmh@nby~?p3&p>B zg_iW4C?ANnCR0!=)DZs4JrSg{f~O=h7v`Vvqix9)G}kuemY|a{A@|kS7_(yer&aUd zu6D6#7MeS+CSeM=U6#s}6{>+?L?hb&Uf?z}$L*pIVZfyD5a^U!R4 zp0F8a^DUP*Deps5EHQN6yWRLzDpV@mj2X1lgs*W0hg6U9#%+2_6WnDuzqXyK2fX`x zl{|RxNQ#Lj7!a4MsMZmeEtNurcmJ%G1CqMtmiZIQ{247!Ycpn+i!{8B6W}3HzwXSy vV?hE*38pwHx!Z)t Date: Tue, 21 Apr 2026 00:05:25 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[Chore]=20#228=20-=20memo=20=EC=A1=B4?= =?UTF-8?q?=EC=9E=AC=EC=97=AC=EB=B6=80=EC=97=90=20=EB=94=B0=EB=A5=B8=20?= =?UTF-8?q?=EB=B6=84=EA=B8=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Components/ArchiveImageFooter.swift | 12 ++++++------ .../Sources/View/ArchivePhotoDetailView.swift | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Neki-iOS/Features/Archive/Sources/Presentation/Sources/Components/ArchiveImageFooter.swift b/Neki-iOS/Features/Archive/Sources/Presentation/Sources/Components/ArchiveImageFooter.swift index 080b038b..298f05d4 100644 --- a/Neki-iOS/Features/Archive/Sources/Presentation/Sources/Components/ArchiveImageFooter.swift +++ b/Neki-iOS/Features/Archive/Sources/Presentation/Sources/Components/ArchiveImageFooter.swift @@ -18,12 +18,10 @@ struct ArchiveImageFooter: View { let style: ArchiveFooterStyle - /// 버튼 활성화 여부 let isEnabled: Bool - /// 즐겨찾기 상태 (상세 모드 전용) let isFavorite: Bool? + let hasMemo: Bool - // 아이콘 액션 let onDownload: () -> Void let onDelete: () -> Void let onFavorite: (() -> Void)? @@ -37,6 +35,7 @@ struct ArchiveImageFooter: View { style: ArchiveFooterStyle = .detail, isEnabled: Bool = true, isFavorite: Bool? = nil, + hasMemo: Bool = false, onDownload: @escaping () -> Void, onDelete: @escaping () -> Void, onFavorite: (() -> Void)? = nil, @@ -47,6 +46,7 @@ struct ArchiveImageFooter: View { self.style = style self.isEnabled = isEnabled self.isFavorite = isFavorite + self.hasMemo = hasMemo self.onDownload = onDownload self.onDelete = onDelete self.onFavorite = onFavorite @@ -122,14 +122,14 @@ extension ArchiveImageFooter { Text(title) .nekiFont(.body14Medium) .foregroundStyle(isEnabled ? .gray700 : .gray400) - + } .frame(maxWidth: .infinity) .contentShape(Rectangle()) } .disabled(!isEnabled) } - + private var detailModeFooter: some View { HStack(alignment: .center, spacing: 0) { Button(action: onDownload) { @@ -147,7 +147,7 @@ extension ArchiveImageFooter { if let onTapMemo = onTapMemo { Button(action: onTapMemo) { - Image(.iconNote) + Image(hasMemo ? .iconNoteFill : .iconNote) .foregroundStyle(.gray700) } .padding(.leading, 16) diff --git a/Neki-iOS/Features/Archive/Sources/Presentation/Sources/View/ArchivePhotoDetailView.swift b/Neki-iOS/Features/Archive/Sources/Presentation/Sources/View/ArchivePhotoDetailView.swift index 12c97cd0..114c5a55 100644 --- a/Neki-iOS/Features/Archive/Sources/Presentation/Sources/View/ArchivePhotoDetailView.swift +++ b/Neki-iOS/Features/Archive/Sources/Presentation/Sources/View/ArchivePhotoDetailView.swift @@ -354,6 +354,7 @@ extension ArchivePhotoDetailView { ArchiveImageFooter( isEnabled: true, isFavorite: currentItem.isFavorite, + hasMemo: !currentItem.memo.isEmpty, onDownload: { store.send(.onTapDownload) }, onDelete: { showDeleteAlert = true }, onFavorite: { store.send(.onTapFavorite) }, From 12906b017085179e0618e569a9852c1fb0c5a728 Mon Sep 17 00:00:00 2001 From: OneTen19 Date: Tue, 21 Apr 2026 00:12:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[Chore]=20#228=20-=20fastlane=20=20?= =?UTF-8?q?=EB=B0=B0=ED=8F=AC=20=EC=8B=9C=20=EB=B2=88=EB=93=A4=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=9E=90=EB=8F=99=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EB=A1=9C=EC=A7=81=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlane/Fastfile | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 0b57ad4a..bcfb5bf3 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -21,30 +21,14 @@ platform :ios do readonly: true ) - # 4. 버전별 빌드 번호 자동 관리 로직 - # 현재 Xcode 프로젝트에 설정된 버전(예: 1.2.0)을 가져옵니다. - current_version = get_version_number(target: "Neki-iOS") - - # 해당 버전에서 TestFlight에 올라간 가장 높은 빌드 번호를 확인합니다. - # 만약 새 버전이라 데이터가 없다면 0을 반환합니다. - latest_build = latest_testflight_build_number( - version: current_version, - initial_build_number: 0 - ) - - # 확인된 번호에 +1을 해서 로컬 프로젝트에 적용합니다. - increment_build_number( - build_number: latest_build + 1 - ) - - # 5. 앱 빌드 및 아카이브 + # 4. 앱 빌드 및 아카이브 build_app( scheme: "Neki-iOS", configuration: "Release", export_method: "app-store" ) - # 6. TestFlight 업로드 + # 5. TestFlight 업로드 upload_to_app_store( skip_metadata: true, skip_screenshots: true,