From 43179abf2c35243c8cc7f04aae00cadeea19e95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=89=E7=A7=8B?= <497055328@qq.com> Date: Fri, 26 Jun 2026 18:49:37 +0800 Subject: [PATCH] Fix TabBar icon assets and simplify Podfile post_install. Rename tab icons to snake_case with @2x/@3x scales, register CYL plus button at app launch, and remove redundant Podfile hooks already covered by the Xcode project. Co-authored-by: Cursor --- Podfile | 56 +++--------------- Podfile.lock | 2 +- suixinkan_ios.xcodeproj/project.pbxproj | 10 +--- suixinkan_ios/App/Navigation/AppTab.swift | 17 +++--- .../tab_data_selected.png | Bin 2008 -> 0 bytes .../tab_data_unselected.png | Bin 2358 -> 0 bytes .../tab_home_selected.png | Bin 2075 -> 0 bytes .../tab_home_unselected.png | Bin 2404 -> 0 bytes .../tab_order_selected.png | Bin 1246 -> 0 bytes .../tab_order_unselected.png | Bin 1403 -> 0 bytes .../tab_profile_selected.png | Bin 1649 -> 0 bytes .../tab_profile_unselected.png | Bin 1922 -> 0 bytes .../icon_scan.imageset/Contents.json | 23 +++++++ .../icon_scan.imageset/icon_scan.png | Bin 0 -> 381 bytes .../icon_scan.imageset/icon_scan@2x.png | Bin 0 -> 675 bytes .../icon_scan.imageset/icon_scan@3x.png | Bin 0 -> 1022 bytes .../Contents.json | 2 + .../tab_data_selected.png | Bin 0 -> 908 bytes .../tab_data_selected@2x.png | Bin 0 -> 1802 bytes .../tab_data_selected@3x.png | Bin 0 -> 3015 bytes .../Contents.json | 2 + .../tab_data_unselected.png | Bin 0 -> 1169 bytes .../tab_data_unselected@2x.png | Bin 0 -> 2227 bytes .../tab_data_unselected@3x.png | Bin 0 -> 3864 bytes .../Contents.json | 2 + .../tab_home_selected.png | Bin 0 -> 867 bytes .../tab_home_selected@2x.png | Bin 0 -> 1673 bytes .../tab_home_selected@3x.png | Bin 0 -> 2910 bytes .../Contents.json | 2 + .../tab_home_unselected.png | Bin 0 -> 1129 bytes .../tab_home_unselected@2x.png | Bin 0 -> 2146 bytes .../tab_home_unselected@3x.png | Bin 0 -> 3892 bytes .../Contents.json | 2 + .../tab_order_selected.png | Bin 0 -> 733 bytes .../tab_order_selected@2x.png | Bin 0 -> 1246 bytes .../tab_order_selected@3x.png | Bin 0 -> 1834 bytes .../Contents.json | 2 + .../tab_order_unselected.png | Bin 0 -> 1026 bytes .../tab_order_unselected@2x.png | Bin 0 -> 1667 bytes .../tab_order_unselected@3x.png | Bin 0 -> 2410 bytes .../Contents.json | 2 + .../tab_profile_selected.png | Bin 0 -> 710 bytes .../tab_profile_selected@2x.png | Bin 0 -> 1485 bytes .../tab_profile_selected@3x.png | Bin 0 -> 2264 bytes .../Contents.json | 2 + .../tab_profile_unselected.png | Bin 0 -> 944 bytes .../tab_profile_unselected@2x.png | Bin 0 -> 1939 bytes .../tab_profile_unselected@3x.png | Bin 0 -> 2944 bytes .../MainTabBarController.swift | 13 +--- .../Main/Views/MainScanPlusButton.swift | 20 +++++-- suixinkan_ios/SceneDelegate.swift | 3 + .../MainScanPlusButtonTests.swift | 15 +++++ 52 files changed, 93 insertions(+), 82 deletions(-) delete mode 100644 suixinkan_ios/Assets.xcassets/TabDataSelected.imageset/tab_data_selected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabDataUnselected.imageset/tab_data_unselected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabHomeSelected.imageset/tab_home_selected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabHomeUnselected.imageset/tab_home_unselected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabOrderSelected.imageset/tab_order_selected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabOrderUnselected.imageset/tab_order_unselected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabProfileSelected.imageset/tab_profile_selected.png delete mode 100644 suixinkan_ios/Assets.xcassets/TabProfileUnselected.imageset/tab_profile_unselected.png create mode 100644 suixinkan_ios/Assets.xcassets/icon_scan.imageset/Contents.json create mode 100644 suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan.png create mode 100644 suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan@3x.png rename suixinkan_ios/Assets.xcassets/{TabDataSelected.imageset => tab_data_selected.imageset}/Contents.json (77%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_data_selected.imageset/tab_data_selected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_data_selected.imageset/tab_data_selected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_data_selected.imageset/tab_data_selected@3x.png rename suixinkan_ios/Assets.xcassets/{TabDataUnselected.imageset => tab_data_unselected.imageset}/Contents.json (76%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/tab_data_unselected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/tab_data_unselected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/tab_data_unselected@3x.png rename suixinkan_ios/Assets.xcassets/{TabHomeSelected.imageset => tab_home_selected.imageset}/Contents.json (77%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected@3x.png rename suixinkan_ios/Assets.xcassets/{TabHomeUnselected.imageset => tab_home_unselected.imageset}/Contents.json (76%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_home_unselected.imageset/tab_home_unselected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_home_unselected.imageset/tab_home_unselected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_home_unselected.imageset/tab_home_unselected@3x.png rename suixinkan_ios/Assets.xcassets/{TabOrderSelected.imageset => tab_order_selected.imageset}/Contents.json (76%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_order_selected.imageset/tab_order_selected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_order_selected.imageset/tab_order_selected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_order_selected.imageset/tab_order_selected@3x.png rename suixinkan_ios/Assets.xcassets/{TabOrderUnselected.imageset => tab_order_unselected.imageset}/Contents.json (76%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/tab_order_unselected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/tab_order_unselected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/tab_order_unselected@3x.png rename suixinkan_ios/Assets.xcassets/{TabProfileSelected.imageset => tab_profile_selected.imageset}/Contents.json (76%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected@3x.png rename suixinkan_ios/Assets.xcassets/{TabProfileUnselected.imageset => tab_profile_unselected.imageset}/Contents.json (75%) create mode 100644 suixinkan_ios/Assets.xcassets/tab_profile_unselected.imageset/tab_profile_unselected.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_profile_unselected.imageset/tab_profile_unselected@2x.png create mode 100644 suixinkan_ios/Assets.xcassets/tab_profile_unselected.imageset/tab_profile_unselected@3x.png diff --git a/Podfile b/Podfile index 71ef345..f070b23 100644 --- a/Podfile +++ b/Podfile @@ -7,7 +7,7 @@ target 'suixinkan_ios' do pod 'Kingfisher', '~> 8.0' pod 'CYLTabBarController', '~> 1.99.38' - # 高德地图 SDK:仅真机构建时链接;模拟器通过 post_install 剥离 + # 高德地图 SDK 仅支持真机;模拟器通过下方 post_install 剥离链接 pod 'AMap3DMap-NO-IDFA', '~> 11.1' pod 'AMapSearch-NO-IDFA', '~> 9.7' pod 'AMapLocation-NO-IDFA', '~> 2.11' @@ -17,6 +17,7 @@ target 'suixinkan_ios' do end end +# 模拟器构建时不链接高德(真机专用 framework),仅保留通用 Pod 依赖 SIMULATOR_OTHER_LDFLAGS = <<~FLAGS.squish -ObjC -l"c++" -l"swiftCoreGraphics" -l"z" -framework "Accelerate" -framework "CFNetwork" -framework "CYLTabBarController" @@ -32,6 +33,12 @@ post_install do |installer| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.0' end + + next unless target.name.start_with?('AMap') + + target.build_configurations.each do |config| + config.build_settings['SUPPORTED_PLATFORMS'] = 'iphoneos' + end end %w[Pods-suixinkan_ios Pods-suixinkan_iosTests].each do |target_name| @@ -48,51 +55,4 @@ post_install do |installer| File.write(path, content) end end - - installer.pods_project.targets.each do |target| - next unless target.name.start_with?('AMap') - - target.build_configurations.each do |config| - config.build_settings['SUPPORTED_PLATFORMS'] = 'iphoneos' - end - end - - resources_script = File.join( - installer.sandbox.root, - 'Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-resources.sh' - ) - if File.exist?(resources_script) - content = File.read(resources_script) - unless content.include?('SKIP_AMAP_RESOURCES_FOR_SIMULATOR') - content.sub!( - "RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt", - <<~SHELL - # SKIP_AMAP_RESOURCES_FOR_SIMULATOR - if [ "${EFFECTIVE_PLATFORM_NAME}" = "-iphonesimulator" ]; then - exit 0 - fi - - RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt - SHELL - ) - File.write(resources_script, content) - end - end - - installer.aggregate_targets.each do |aggregate_target| - aggregate_target.user_project.native_targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = '' - config.build_settings['ENABLE_USER_SCRIPT_SANDBOXING'] = 'NO' - - next unless target.name == 'suixinkan_ios' - - existing = config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphoneos*]'] || '$(inherited)' - unless existing.to_s.include?('AMAP_ENABLED') - config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphoneos*]'] = "#{existing} AMAP_ENABLED" - end - end - end - aggregate_target.user_project.save - end end diff --git a/Podfile.lock b/Podfile.lock index d07b091..481df75 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -39,6 +39,6 @@ SPEC CHECKSUMS: Kingfisher: db468f911dd666c9134dcbeec4db8bed52e4132d SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a -PODFILE CHECKSUM: 4068d11e2fdbc0a6514a9ec709302300b8e54da8 +PODFILE CHECKSUM: 9659fc63d0173f0286a7da18725e548d86c24ca6 COCOAPODS: 1.16.2 diff --git a/suixinkan_ios.xcodeproj/project.pbxproj b/suixinkan_ios.xcodeproj/project.pbxproj index b9bbafd..3f55046 100644 --- a/suixinkan_ios.xcodeproj/project.pbxproj +++ b/suixinkan_ios.xcodeproj/project.pbxproj @@ -55,6 +55,8 @@ }; A1TEST012FEE49BE00240726 /* suixinkan_iosTests */ = { isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + ); path = suixinkan_iosTests; sourceTree = ""; }; @@ -243,14 +245,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-resources-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-resources.sh\"\n"; @@ -308,14 +306,10 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); - outputPaths = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-suixinkan_ios/Pods-suixinkan_ios-frameworks.sh\"\n"; diff --git a/suixinkan_ios/App/Navigation/AppTab.swift b/suixinkan_ios/App/Navigation/AppTab.swift index 2542c50..bff9595 100644 --- a/suixinkan_ios/App/Navigation/AppTab.swift +++ b/suixinkan_ios/App/Navigation/AppTab.swift @@ -33,13 +33,13 @@ enum AppTab: String, CaseIterable, Identifiable, Hashable { var selectedImageName: String { switch self { case .home: - "TabHomeSelected" + "tab_home_selected" case .orders: - "TabOrderSelected" + "tab_order_selected" case .statistics: - "TabDataSelected" + "tab_data_selected" case .profile: - "TabProfileSelected" + "tab_profile_selected" } } @@ -47,13 +47,13 @@ enum AppTab: String, CaseIterable, Identifiable, Hashable { var unselectedImageName: String { switch self { case .home: - "TabHomeUnselected" + "tab_home_unselected" case .orders: - "TabOrderUnselected" + "tab_order_unselected" case .statistics: - "TabDataUnselected" + "tab_data_unselected" case .profile: - "TabProfileUnselected" + "tab_profile_unselected" } } @@ -66,7 +66,6 @@ enum AppTab: String, CaseIterable, Identifiable, Hashable { image: unselectedImage, selectedImage: selectedImage ) - item.accessibilityIdentifier = "main.tab.\(rawValue)" return item } diff --git a/suixinkan_ios/Assets.xcassets/TabDataSelected.imageset/tab_data_selected.png b/suixinkan_ios/Assets.xcassets/TabDataSelected.imageset/tab_data_selected.png deleted file mode 100644 index 25a61ceeb9c1a53cd60c153e46582d5b5a81f78e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2008 zcmV;}2PgQ6P)h)Rcb4vMc5^=N?78=z`<-v@ z%)K*9L&$ur3S5+kwLnM#!N zxR&^s_=-42{7#%B9HN!@gAkw8NgHWf%f2g!iL4ueXPrWpgD}U*cF8fW>cj}N*cnao zPay{tFxWp1F^(8Y3?}jjG2t|b2jY`DX(MeHvhQoe9@c$}EF56D z1O4!N`&dhy5s(u?XOJdjf{C}t$tBTJqMk{7!l1Q;By~T_;Y64S%5oW~kSK=D*_yj7)L=L=zglbq85y@gjXv22o;$1{I#>^`=ftERWyjiY+gDn7xi6Ac@ zh6}{9$?slb3%Sl%d5nJvk!mKK=TW3L{1Epj5Lbe7XA-CC;|wlm zgGEYOHghO}H-MFhVkI0!b$jE22n}n>CnSAX(Od zS=I=tUHOC?eY-$87{&ndpvfY53v=}8Hvzva=Mz(91kI~}ouxoQ$FqI#!*-51g1hX| zogLkeNwK@D%XfLzAg>;}ID`69bQ$m_pY?}zS{t*ofN7*WWmHh3SmWfwV63f$E|9#4 zGPstVU2kM;6O#=Y0QAm@-gOkki(V6`S8}_~_MD~*l!yLsa6JYkhCj)&rvwR1(pj zj7;9UnwqOkAf^;0Qx{hf&k`GR-X)_~+XPat%jls}+8e`88r*=Vbk4rWw`r|yGpJGP zl!pE@T23~B&S{-`(tiuLbZZ_0Ha{A{+*<)z0OI8Iuh!ot&;_kiPx&YC>2U9p!2H{Q znPVfUn*zLi50IN37b`Van?NVx8ZzL{Sq2zSfd=;O8d%;ymfQebp{_$++biGHTx|lW z*QGK@LfyT>5fKc9>ON2b-&{$3cfXJCYOXecj{6uO*rrjUi7=rk;z(1eQ>vue3)Eb7 zfgJqiC30G{ad1k@Ll+28Rn>x}u>X+8T^GpU2s^2Fch;qgHNl`kOGXz6IL}VUh;+A8 zXvIHTlDa@`XoQ2Gw2o=yZ$K9Q((=&-y1*G^@Uzx2ZTtq`p%G`Hd~|{8jBLNZXTK&Q zU9E{%$&c7zTC@apfux6ngDlid6zfvm{$v7Q6ROz-sy4Fx9aVcrsVJ%hOnG!1?6#r* zi0kBl7o)db@FBW<&NlWp?D^Zhk7pM&% zu=imi-Rv+Txmoja7pTTGG0@wLl1`h(7KHE$BsV5zGk1ZccL?vX_>xEuGuVf}vENHF z-UO<`X&BTpV6v`gq~_TqhjmyBDP22x69~pZrP%`qI~cKrNL6cL4%^#vk(@ka;ZdOf zBZcuikJc0FvkU8z)r9kUv|yfy4D@0XsAHf?>_ro%BLw*~sbtzr$|i6TX_i1Z@*q}=Pas(d)|%6(FuTx( zn@M5@aez2MT+FusGS*3sxsRC9&ZWkzL6zadC|6)QW3@O1>NKqEN~_E^G~+&c?QI)kuK5J9@cko!}WIZC3Na1P5^ zSAtf^-?QHc2a|{w=#!*&vy@j2^5eis9`kJT-1C4Y|1Us%QYUSsZ5{i{;xLW%qlsdE zFGVw#?JBbgkv9)?2W!C#)R~{Wh>~f(+8l$3R&Dk&k(E3yBPJ8K6NSW;#HB~VEH#+ zzr`{pZKSR2;}4Gnc7{i9?HzpPx^E00XzCk$rhdzoJ(@|3SvAiJK@WvTn*GBg_j_U! zyJ7(QK_m_f0Y?BS3W&RqXgeX?1_&z|eIv_UMDTFU1sN08^Tk}2Mrk8$WgkS*Pe_MQ zxPR{=@p4SK4>T;P4fzL0?w6!(k3>qjkE4abIODHtC|VvEj&AY~MGw1C{2WL`5OF(u zU&peD#m(YKL4a}qYyyBaI#Le^5fQ@mLRGxs7lFa(CW(dH94XlmM1(TUc`7_mLG(Ky z*oOc&GqSl{a}a#>K9oyi;XD9b4FdK_EP?PyYj5bOI$(^D#V0F*IAd;=Y0l#h1LDWH z&W*xY2=QrAR{leYF&j`B5%l2qp7r>{qmKdL4}jC0#m$ma1p(#a{RLo*{_w#_rt6b! zf*#rvt#<$SVi1wG06;BEu9sRw+~$dWWS7Kl7pyIU<@DG+d*uLAWy7e7b0x~gfcsWPIj)b!f_ew`@mhmlV^+B4@BA(t19tX>57b!+!xBNFwDcwdlKUGgKJ&q56>m@4 ztpGJ8=+dqfzcu;TwBj=#Y}`D>wqA@?}a;_vu9z?m&wS-wNH*%0oTeYVGG|iRPMMHg6TD_CXWNbPvmj`<)ze<9x zS?sCivz8WBM&6koOp_7u;G=5T4C7K&*_z`|p)f}j)ssPWNG7y3% zY>HLx+!)2GB#0oh!hS&%?be_ibDScWt;4u3swuN|QUJOhsZ8tC(t- za*e=$MoH0Fy1DTai=ky{Bh=MYCU?kkmpr$j7S^q5h7!f5(30cXG%|=)O%Q-P6HJZQ z)TixMTB5<#wN+``azLq!Rj9#Hsk%+wBG(^vYi_m>f%2C#ASkmnC^soEMuiCWchUf8 zL>?5@hjdjuN)kBjCRCjYP=87llae4rIIZe*CH2>SxE9v0z8=23_LE7uVfjKREm5wq z7NOz=m7$U#?ht3msj_h1hhWo}R>G%S7Qu>T3zD*abqn0|*=3-)UD;q&#;PWW;LU7C zbhxjyak|3SvFWgDFx^r7W6n>LGm!Q~DRWM3|nALZ=(-=!Z7X%t7 z7oJxIsU%1f3AvMgUDdI0^mw!^L1$F)C-cWTc6ult)bC-gEqhxQG1|%%+imcu}T@ld*ANM#YpM*;&)$BV7NQr639dzNlZg@RF5a zED_Y_>o^HO5q6lXPc(*Rxo`~h_(1PwuFd;cB8aCL1-si05#a%L$?3`8`B`GT`F&c( zB4e@=f;ECBJ;iHEdYPmrfZ+V3Dt{`*EU`~$<2&qtwnfmR_idO+RMIyI@Vh)nK4nr& zVwTv=9_t)eO0h+d?D@!6?>iIPKX-7dKEd~v<}uq{$#RM_XK%cwBp|Wd1!9{ZIe`2X zLcX?6Ubw%)_rJXK*yO9+Dso$LSYizMS|50nvp*Af84+}OpkSBxIsN>(yO8M4oZ3wC zCXg|9@%E%cV&v+&h?9c zuvuaWc6%S|>$&3uAhOz~!zt$35j4e-+?57)lg6SljEuqsB@gzd4(jmrtP)XP^qXjIbCAQ&{#Tf<)7z*bBIWzh@zUk5P#tWNIO>>HZ0*Z61QM zbth)PLukN$#;}m+Nw^X5vlkR*A&9*sX)vc|CpQMX_LYIX>N?Ytbw(qM06wKcKfSk0?g2#r4R zaLkhp8C%m2@kM;nT6wZ_iIP8pgq+?O&V_h0ubwQ#>6h4Usl)WBFCl!0EIjTvoBR>f z2aD)TF%kE<@0(qXhndmuA_Fh^vE`niJRRVax{J5h?HqUs$?3t;cPi6HyhU-k-$0|` zsINKtPKfWUa3k&sI)gC?VFQU79!qFz3L&o}ShQ(Lr}r}ammtkyxgaq?LBjSP;Zb zR;C`uY4t3PBtzyfjLRg%*hX_rdJ zr6jC3z9Y9Hs8 ziph$gqb8*!tUqCj$xM(&`yoiu`OBTB+^l93dT&(8JuJ4$uu+RCP%%(N#;+TDHtEULz%p^qgr(GePT=tU)DIG_uRKwk{VCK`9zzZ88=!LDF60G>h{@vPumU zEZ13Uf`H>>riMsXsbdEHWfhz?K@CxMjq}sWu%Rs;(={G8V(!)OMkGlPJHM*5Ca7za zpm=1^DLOI(4Y-fxIC^o2a4UzRx{Wq+s2qJ$35>x*ptj;2gml44*C`dM}VY!p-U;l?4Bt^b~KaaXka3y>NqQl0h2G{Q zV7t8pAm7`z>}O99@SUXvCyn*E`ujslX%wj=416WdV;;Aq6A-{y2ts%c8gsB*twDj> zho-J_0J04cqMUeO>T|%<5UaN*NI{--{W#K{^o&5Bmapx`#=X2;rRuO+okoEwiy~i@ zqez*jkJ!?9j7DxGyo$tRd-3fF3aj7ffvgoQJV^$%a#4kB%+>z?QX=2TsDym=Z$9nH zSAbb~k`iXG#Ac~%Pf(-!w~dA8-@U1shak2gTMuD21$gdGrs@!N#~^~;%*a=%EdL0@ z!m~Jv$*H5eJiBpGF&!EMh|f`l{gD3!%h9)Ew(f!Fbw|jwiS?bTLp;AW+LpsU(l-M; zsk@aJ$ZjFRuQ-ay89@Wg?2nwN`oqs3dCkl$j2VZ zfrYqj+J_)4A2DJEoe^{nCmFzQDrusvi`>0_Kt0Yl3B(yeavN6ILxYZtvR~^Jg>po& z9ah_jOT2eRkSNF^3D|C|q-(2&#!u*iFW~UwoS-~a3x%1q`w!7pr6L-G#Nsdl=LCtt zusX!_6q3s1w2h$*^7tY#xNzJZL1OqUw(u&*-KI)T+XyO1&H_|Nw+pUZc2AJJzYVMP z9B=|hIzUtttyOC2*g;;8)7*`j#z%R50bT!AXXa=b?;CJ~RIfzD{i`<-=c-b#E%{794%@_K?rTtsZi zgXZ_NChwYLtaT)02K|uD!q%_egN}@lTMu@!DMP6hStZ zEJaX?AOiyqt5X?dL)5(tXli$$aJQT?Knf*8KV}VR!5MH9UW)T+E`E^35iKI%5z9a zkYp3E+DT}KHlqY~p+#Y)%#=!J?9l1IR4koZr6^EsfP|mKB%6Jw-(8ath5O#ypG30B z&N=(uyZ4@Rzw_0lM@>eBpjGSJ^QywpZ~A@x2M}2$ z^m1qt!V2eSVDL!Hp8RrE^R~IlC$2|aRK+7&i5h1DW^SWF@+)GxI_=7s=b#1d3Ya+! zp~mO0OxvG}gApaDs;T1+j5E83x>KGD7SGwtJPm~(Cey!L)q(R7lMx}PtZ~Z>462m| zo6iCHbx`d%gS=G5M?!N@$CglIq|ypUrl;!2$u8prRkm#XTEOtN0{m)JoDUso$s?xK z14NrZ)HgC+S@HyF5d5IE)gKB+m-@umj$6+{fF8ZM3sa7&lTCWQCLDQCVbQ=$Iyr5E z7Dpmxb<37nGtW(ZhDgF9^x33QWXM3(Ekw^KEDDo|fVcFVr$vw==bEE*E7`s%F{^n^ zAU!x4u?{FKhV9$-czD})T3i3@PseLo1by*1S7G#R$Iq1UzMoD|$`&o@Tf)ZAj`X~- zTwSNCNfTsQVpOz5z7%ST>>^v%pyHWOaD?wmOBAM0Fma>8TC-vM7c9$4I^LuWVpF1b z`fYlSnC4$vd^n&1R*Bo~0|nR3b0~GuEYAczx^ZKmre*s>@bVMr4N&whe2)!LSZ`#J z_E1xFrHaKXY)=F|)*30uk9}&r*f#D|G$Io+uYl7mH-lIj@&{+tshGU@awVwZr!VB2 z=Xedjzxqz=j^G8*D3l4X@G=#Xip{M)SAu-q1NF@EFvgtGoA|k*PB))1u|!P1?*5H# zuJi<9l2z3lxtp2pg%dwC+r*F9?g)jqeU}icE;ubgRrT%D4WS1yJ08^yDjm=fN}tZm z4_GZb3v~Xq1Q|J#uEuug%{s$uNf)8pVm$B_T|8QXNQ`?i$;!sA^-(TzBu=+|G;#P^ zOOO!F9WIpSaSWLAEjo}|g3vcVtuxBDblj!2d*oVzK!VyN$6-7OU!jZAi6EWLxJq{- z=zrsg32m%S1id+42x6lD>SEOrgw4u#bVk{hj*Yc{>SEFoWQe?>Gs?DfmiSR!Oj?5C z!sCXZxX9~C6NJ_KKXgXfmhNLa`7VZ;^f3@|0-Du=wb)sVLCN36Ogk0>Gu_av7OWWF z5?jvcg4B*d_9TBVF>41eox?Gg&eUo9%|0D&EkOa3-Xq&q-Arej9qA&S0lKVT7mSvm z;|IF>4KlP7D4oNMq>rK#L-@$?gKxj5t5Qo)TU&9=W;p^wExX7Y(}E4bm`(9xDpp+} zT7nV=ww%Oq0GgG;#J#o{j^nH|LBwx^nO@CNC4+ zH4{FD;q?Z1P&I<#>kE#K1m&E*{3sJ;q6M8`p{30BS4re<5juDQ5|@O84Qz*el%sei zCb7M*?Ke{=$g*x4B%xOUCLK8=B+F{cfpWP#CsPLep#ALT^T+!8rVA#jyn`E1N03HJQ-KNipAkcSAQZaj7uf{`zbQDH|I4Se9kOb`LJKO9bS(3LA!c zZ`-k)D?x1YpBz27WinCBH-PUC7sM1_8cKuzMyuF3%a>nj_xbLN4bnoT@toZIdr4N* zl`ejEZAtKzXz;>cd1xtQf7oksSLpVCce8LM2>U`<=}J04W{AP_oc?FAeEEX@`s#%z z*H;AJQQENd_O9mAptk#<1^I0DFFF>y@s3wNN|FtwmB)-*>7 z(E<#dCnf6D-q42Vo&MAPFR}3BFjjwr!68NQ7?UTULb5kS80VV>aB)4z`b{kV+5_sp zU^P!|y{2kyWTs_p&N;sesy9=u)?JfTo+?w>)KN6EXWAZ$%TD-EZ?~oWNZe~oo(M8U z{s3UwJrm?5C(Lt%%?>e*-x)cybs#@494|Ogk1qJ6(zkjKKNaig{gKK`ltEckPzcS8 zi1e9u+;#j>m3bq`XLb?Oe<*_=+}0RA)g#|RX8NHmvI_2>NT|q4B3?p7g{lk_zRB^E zTqg4?X54UGV$jgX6G0~_x07ss2{r;9>w-J7{PnbtPJ0Q&6G2boHf)Q%4-P#!MY&5^ zx|n#E(=_6I@SX@#27z+p3X$5|9mM&^ErZ0Q-YbZb*i`^CzqTZ(rYJZ~UQ#AVRi#$m z*pm3UpZyPDa&Z%r%qJ1-?@$~1{7!VkU!&aLpz8UWdQywij7SW=597!A3%u=5)J4>0 z3oSK>3n^~i?Dt*v{eN9yJY82BRCS|RYGR~j_JI|n{aPh=b*sId+R~!Eb!A13099OD z7QCyjEck7lUk{xPodo3!=_L66+}g6>4e&QNQCDfOxE{NfYf2ZtT(@e`5o`H^GZ))O z`T)7Nv$P5FR?XNgH9?TeZ#O~E1VI`GJSI=HAQz(k4*&rF{{vWSvH$=821!IgR09AD W(=5LGM3N%_00007ki=raYB4owQFM`oGzCdpUsXgc z)EA81U%EJgAyPQ0nc=?9W-JsdB{^#p3}tw$}{tVd?i30&ooS2)rh^)lSA#(yY01QV-DLs9=B`RX;)yCW9<>@xKJFmn;GR@S~*20 zU&vE=8D6O)zv^3Cd7(<&uju02QjRXy>YggjW`Bw8wyX3`^gNc2ZEVi;kXJLsUFJk(9U ze2yxCE-BR7v}cfcc7$$l>%sx;RZANNv?;W6wDf|l(b+!6EN^m-O;Rs2T$M@Z=w+5I z(m{EBOS)RhYA*Mk4BKl$H--Z`&qfuwD%5d>b+_p(ejrWipX>LTWS9irk?xb~vDLJ3 zbEt!GK!#p9&C=3Z-jL>MSR0yI7C@KDX{*%i)}{iMOF7ZZtJwt`aa*xP7Ddlc)08R5Y zQwJ>(pee=u4$J4# zr_lx9D4vU{AzzEtK~K@mO&l;=q+6q_n@z&v9s_B}*Wv)0)n)&faW|~_W?RXdi#5fO zO4IfHJr1B{4Dy6ssYlMs3(>Ic;c~VT;fMpsGR_=FS>Q017o)3{BUoOKz=t@1V5O4X zis1o`g9Yd=#c(k-!5q{MYHHF7NC=h?hE`m$Hy_E#Q|g(VwYVOBjJiZ+e;Uv6{l;R zhy%#7pALRt#GWchKN9Kt*l_?+x`lDyQ+7`qija#HrIsj8Yi;L7+?N1(&PoDwi2(AH zS^ISAAP>6)C^tY0{3Bm;QnT9}i?syR5#B+D-{rBmClv}7$!2s>>1qjb9}Z{%_i*m7 zAg_(Q$nYEUd>xu%IG|toNlssrn%gW#Imj=eMT7%--^?>%o{{6@(s`-b%;kJsHSEI} z8=8DLp#MG2vt7TsPWoG8v)EZB>T-TiVQY21TL zxV@C~gb99Wsiu-;2jsRLHq$(7Ce^OnrS(#WWExB^r}Z2#yOh@nT+S}{jH(S##vskS zJOT2Yy#y!$sz4y{kvp#B2@0RR7|78)D?000I_L_t&o0LtL$ug|4JZ~y=R07*qo IM6N<$f1%&#EP)@I!ZT^~2@`@JiI`}#+ZGIIC7Sqw>9)mSyNUbYZfl^d zRzM+OlPWabYQ%&GKLH7e3G#r62|lRki^jBp+7DSf-8r6V>)V!lXPGky zEH#>pvv=O_DLess<@hJJl>_u4(6d}6%ukz9(6(#@k3Xqe~bWPHv;haQg&hi zP@DB<<~ijfxT7+lg(;2L!pDSJ-U6WxK%5dbz0cZg*;c(ZFK+iFK1R&ZR*|JtNQe*E zz#S~F!QSzOp43Nosvf8e$g!xA0BThe=j@00FrWDk9h|@Hfb+d4@i8FqBoOY%nOkuu z5?_|&JfPSelmVd-^$e(7HF3fAL*y~gI#qw_fE;HP0)$i(7j8eY1W|>mKV?9w3IA*T z3?RuFHGm8t2?0s7nL!4Sgn*=3*9^+=7s7Lha4HA^z?ZB^mhYhj5K;Dd_nymwaC;C6 zJM*o4pY^KmbU2|FKogZyC;DEFjK`x-Oa`Lv?GxdtD@S=ezK0e-Yi6oj7angc+SUFV z9~vsND>u5&rhKoZ1rVZmYp!biLeIeH=Rs)h+N$$__>S*%IH49moOd+>+=qw{2Bbzn zsOGx9hb}-CcpU`T4oSA z*c+~yy+7F%*_!NXen_`UYX92I&&#|0MYEVq3!v$eilg!N_RL}l{jYAViHhq(Ix1-a zRBg|;?LBYLy+-tvRrV_;c=f(E#Gx ziyD6Xu#Mk$0zsQ@@nYcPT#IXh@0*rO?3P^?Pyz!;axx4c14u$Z(rjkX3IUo06r+TA zCYw3y%ERIDfzcQe#KzDKOno`!n?(|zYcuX~M z;r659*E(8$RrRL~Xe<)RCOVp4=fr1N^Q>YE*YlY~XLFKoe|RBQ&Au|Af74|#y9)r1 z5z%!hl8tHH0QL-y{S0{AJOk>Fw*C?>r9FJPZ2`phxcCoTvk?Eg*-PFIqM%1y&x!6G z%9j?8X(2oVa*v9?7@0{%BbO7=rd`R-$i_rxq=bb9rjjLZyAvJF=UvaPcdyC|kk=x` z+}{9_oIL}`09uBC;%+m8B%uBQ00960gg&nx00006Nkl$|*V)+W;FHtLP+0H9l-Oxp zY^`<+s97&%BZmoR6AR8}tKqbi7WZN%aF_@2r71lut#k)S&N>>sY@~*@#wptt_hL(q zW?g7I_)I)EfHaQ{3J);JX3DkILE}-#8PY+f;DAhuXhInj9;RzC<=P6FYX`1Fxr;<@ z04c0uv9(kDLm*RnSDUh2h5EwiuH+E=QEzwuzf&NxQUfG zIUX=>CM(Ai`u0o?*^Jo-1XO2Jh?O}7SZ*cGtRVIQX_U>1AMRZTx$OfA7m4$1_5mr3 zI;rmDea#|AsIYAWG5laVseM4x70M@t)Az#rKZH(o z!FD<~fHXd^U8qmIf1q*5$0w^{H-IK_5(-~sRZ(`61_|if?51X(h-56OzC=?!}fI4DQO@0+Ol^;tU&koRB`3hgPI< z%8MzntprRT#62MJ*ll)R_zB%ojYp_albhv`RIm(9gNUP&ntsO6ntC z>?XYm`*ay3Cmn2?eLzWFjWIlp#gLCXzGOphu;^`6Ic3Wv);2G;!Vt#sHgoPGIP2fZ z*#jgOSITY!93_PgzNNU2%SDuHD`kQ$R43I>NV4l%yCQb(faJQIMqPtq977DfEV7D9 zP+^-uxtU32*X`ri(6?~6Gr35VQ_|bq05#}^s6aiz^fASJT(H2jDQznX@DcvR4nkU# z(!+4&+yE^=3pCzjF1fCmiyShA8+eTBfgBH!{Vh8{vgIUol4;v1IRY3;{DqpM-3vquo*D(eM^gHBKDi?(3@|JV?6IaSZ!G0`5;1`*} z0LiI5foCE6_vIzz{^Lr-u|McfEr_N)ta*K=Ss&BwjxG7(MBxfc{&@pXsM@ z$@C)ge^WrinZxAe=qZz`%>Ye7KJS%pBurxFgU?yM4(c%})C^Dw1{rWS1D>ERQ2A<7 z`w6d?5*#&Y!VFNGn!o{d3|*?0Dxy@LN@}n5dXb(C2*nJ1{?{%MAfKl{0u%vCL%?u# vv<3Nq`WFBI|No%Ge}(`600v1!K~w_(OYoPVr)7Az00000NkvXXu0mjfs?q(H diff --git a/suixinkan_ios/Assets.xcassets/TabProfileUnselected.imageset/tab_profile_unselected.png b/suixinkan_ios/Assets.xcassets/TabProfileUnselected.imageset/tab_profile_unselected.png deleted file mode 100644 index 9c24f0628e0fe9deb2c55757bc70aa40faaa1762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1922 zcmV-|2YvX7P)wmZo#cxywa$i6HOHV3+W$hR;U8fH<8mTpG@<%U8=d0pti?Dh;FAluIY zKclMFBjQX1m`dA8WEp@k0TAXQU{SXZ`KAC5RMa#+-q7&9@F6#6nxlZGoX0Zcum=E3 z$)*8-i_EH#50Wpg$ z(rLo7$>+ma@e1`eUJD@8h)f3#IlTqc@g3(dhk6ppYJlxs4XV~v~ef{tLy z0oBlgNsH%v9mz)5-fIjEv6TY~1Dx$Oc?Z4> zci~CZVUz>fRFwZM0B=*BsI?w%%Q8BDwf3{;p&Zb)@F?ySUfXo&FI|%zE-6{wt~#6+ zK*(U1>O?K{I$Vai&B7<9ZY_XJ2p>g+Z(_#1i>DWQnWZKsvj<7!q@gqdK`=sIjpaqb~Ge8UG z)rjk5T0D=@=LnhV77^N=6vN|jUr{aIqo)m!2oNZF?r#=0U!?5=WGW#Etph?^#2{^L zO)DUgbyZ2;DGZyh(7DkO@mYn@%sDPJg|-U4Xd2o90j&*HYnJ|2?a7#DUk+{p%xSr>V4yWL>lioupqzzN77p z!bkYFre5^<3*A48BP4zASaTFmPgQkv)Tu7YKU?L=JLvc16;~Iz=aEgU_P8_2hWI`1 zY5tq4J+gUzkLlFqmo ze8muU(|J(+Z4LN;`otK6v15>8{2{c2W<_mi)w1(&{$rLf86&h=wazJH)T~j-T z-?xSh9k$bqz}HmRR=Uo929*Aoh*?6DP8_$IXdHH3y|TS4{r;6AHYk261JwQGD(yCm znR^+7jg;rpWJAexw+uSjTuieufGo1x8*Eyw@`>2E0g2~wyur|{?DouklqBsMFp-Ej z`XnmF6Kxm*P61%`sfbPGHBArre4o>gt)eS-iwn@JTec)m{?p8*%Y-IMp${Hdps2kx zx=dLD2K%%#t#z5t_g-AHI4(fx;nAfC>>WUu0R8NR0QVrm=B|v?H4w)uCO~55R0La! zC~hTL23db?cYq0%v;?ddImeQuZ9rnbPU{+#OABK~ECKsyOkrAhV?xpw864 zrUIgPAiO`%oLf0$AZPwb=OVUGGHn48hjMfobYp=-sU7kD=u3Aii@Ix(OimgQ=lCRPjwc)F?Jg>M z9_WIcfa>YGZ7XP2X>^$WGV%ScfknSz2*>dYBI8p``8P} z;o)SKK0;=Y6rfHsB6h92WdsL^51p!986}ge6d(rdF%nBA8$^vgB~y$PAOxH)BQ}tH zWNVTF#5s%}NX5(KYI2aez?K38*mqCQ%M=@n52D;ZT?!EAILOu?y0yn4T?VWaAfhcE zf|Ai2Fg{e%ahYW0009I@>j^mHcx^^myD`@aAH0RR78u60oW000I_L_t&o0AhlFuPZV@NB{r;07*qo IM6N<$f_x%^tN;K2 diff --git a/suixinkan_ios/Assets.xcassets/icon_scan.imageset/Contents.json b/suixinkan_ios/Assets.xcassets/icon_scan.imageset/Contents.json new file mode 100644 index 0000000..c5d9acc --- /dev/null +++ b/suixinkan_ios/Assets.xcassets/icon_scan.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "icon_scan.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icon_scan@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icon_scan@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan.png b/suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan.png new file mode 100644 index 0000000000000000000000000000000000000000..a03cfd14b15993881cc0971e20fbfba4391b484c GIT binary patch literal 381 zcmV-@0fPRCP)o? z2bT)>$uzNdq6XZ61@Su( zE#ZXhyckQ*7PQwld)m4Kz}DoPu~bKcth0kS{w zDr9LxN3_Jts09-V4e36hX@U@&*2pwW5M$CiaZ3}7SiGY|3lq#31HNYU>Gnl;2!+2I bJZSR)*otm-In#S@00000NkvXXu0mjfId-8U literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan@2x.png b/suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1f76573f9ef99c276e427976e45a3a78760c72f3 GIT binary patch literal 675 zcmV;U0$lxxP) zTXMr75Cr8^Zk!w=KC|;hxk?rik6mU3-QP*U&M+V(S!^2s002mMs5?;1&+Aq7_s_>I zYKz&)TCqzBXiA(8d5NAQh#A^Wj21nI&%)@ozG zO5!JsYVJ2+Me!2`wf7mYviONk4cZMr{5Kt1`0s?_lr{qx{hu^yQoplnZ0Pk@|38o4 zmX^eASMHYU62Qp6rc$GCuYM$2MqdO{zpYZ3qdWnO{&Fg`;wnf?*@DqA`j4g{?^w5D z-q(T!nFNTrHh{UmodWGhfEWxAb8Z0BPd^tLk^nInASQ1B(~lh|T9N=U`JEaGuqCrA zCIMnFK+LfLOh5KyG$jFIFhC3jh;ex)eAnl|S9m-~A^~DBKnwd#J?d4GqOT-COx^$%VmnT>BmrVDK+L%TOhf%#Xh;IY zV1Srw1DJ-|;WuLODIeVfKT(iSeyX6m4}~)a2@q3m0Bb=x6GAYV#FqmL0R>pz_^_&5#D?8vJ*{cQ#=_-#N&xZH6@_f0000Gh<|G_wHSSo*lhp+002ov JPDHLkV1kkxB2oYV literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan@3x.png b/suixinkan_ios/Assets.xcassets/icon_scan.imageset/icon_scan@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..72e33400b04b796617cf2493492bfb490bbb6742 GIT binary patch literal 1022 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 literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/tab_data_selected.imageset/tab_data_selected@3x.png b/suixinkan_ios/Assets.xcassets/tab_data_selected.imageset/tab_data_selected@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..50a064009cc0e0003271faa7ca8e54ab9732310a GIT binary patch literal 3015 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 JPDHLkV1kQ(6k7lQ literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/TabDataUnselected.imageset/Contents.json b/suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/Contents.json similarity index 76% rename from suixinkan_ios/Assets.xcassets/TabDataUnselected.imageset/Contents.json rename to suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/Contents.json index faa503c..254b4fb 100644 --- a/suixinkan_ios/Assets.xcassets/TabDataUnselected.imageset/Contents.json +++ b/suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/Contents.json @@ -6,10 +6,12 @@ "scale" : "1x" }, { + "filename" : "tab_data_unselected@2x.png", "idiom" : "universal", "scale" : "2x" }, { + "filename" : "tab_data_unselected@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/tab_data_unselected.png b/suixinkan_ios/Assets.xcassets/tab_data_unselected.imageset/tab_data_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..cd2a5597fe84b51ecc7306c2bfe996621fa5ac39 GIT binary patch literal 1169 zcmV;C1aA9@P)P000>X1^@s6#OZ}&000D7Nkl4@s3lhDX%FVs^eCP3f=M-VrrPNBh++00K zy~Q={w%YuVUO?k2Ze#?#h*7^nO>6(S@(SO_$l(tITxLS`Sr) zh(J{URe%UY1Y>H)%d&(>bx+FTo9inVy4!(h3qUzZNWQxHL#NT0i_5Y^QRD)x>p%qP z#C-x(b-W?(JhQRr_n#*>R+c*>dt;DRnwoCAU0uET{rRY|=f^>Rv#LGDRF0Wy4243s zl~@%O5g~{gCfnR>Utei;M|Ov=l;Y0qpx7Jz;(U0b$aA4>005BXB~%s88d$^FP9;$l z?*l6G!5{8v|5TD($^cSsrKtgt=6ixO&WFvS$aEF}0DN-p6uwwKhr=(=qbMs7P4k9{ zxF~XUK3tIbxibK1D@_eIR}WHs!7N$p6rinw5rLT?qKHC|_uqLF$KN=F*Iqq$`qlte0ka0CFl-FC%5tzUt788sGYkNoPRFQHIHYaOAZHPH2USHF z_?b>;d4WMzpsZy2KotN5oleJ0f>eNJBgGA)gQ|jvCR8`_l^`Pc_=C6c`KL=bFuw=Y zBoT-}q=VY-5QK=72u3Xv^!kM^QvJ!|+ri+BxKot*xx|?vbS?ffA9uXA7UUuZ-D);FHPG7lqGF3W;Mt2+SDTU;B7PbrRX2gTm#SLegyd7dc~@no+u zhPQf`Gce54z05L1P&x0p$Ore`)Bbx&=TZiuT6nFr%Sm#1Krq*gb;QI9MHL3FPRTf3 zZk!?jm^>G$yRfy609;Fw%Y#<8%cIl-n4Tw5G#5)%B7cE-;+$t|EjBlI&Xci(lY}IW zW4^Jn+{yaS+LcuIobwzt8YXHqjPrqU&a<C}6%z%;7=nf%4sx+l2m=%>khZjQ&R%PMKI}QC=Q1-rXQop$;Y;?M z%v$UJ_y6s+{>xr#1MlL03tX3W=0KvJ$K!6YamdWcT zvJ(j|V2GGyAds74?buD$*_&ew5+DLgiYkLbKqNq8EPV*KRSs>)frnzXnrprwFt1Tr z23D(##rm-;T;gtyit$vE0006;fTChdoZA!DzkWrvT8-rco_BmVM1a_tJ+L8Nmp<&0 zWV`o1o=OrO)&S8tXM9mS>x;%G?%cIwrs-fEf5yhf2mmhimpPl9?Td!U#j@Kxwm3A)%Taj|Ak-v{%-@5nA1!W!5CvGT`KAOBm>%#_3`OZ zSqWr&Yo|l}fFueUY+aFvF=BXCiZe$}LySUE1jHz8+He|@#4V8sAc%^hAujs*cYc2Q zahprDh-7nRc*FWFfX)lP0GHsRP1PYr7(-ZVU<{W`pa}wu(F5Q)t_Wwf+uT84G{4LTRjlHRzp;Jtv*-PR_ZH-{Y>%%s6U zmdP(G}f=_<dN* z+TGk6D-CB>dgszw!mzaiR^Hb1`?es+*jKt+dx%K>#Z$Why95Nkzq_e-X$AMJ6afub z!k+>VVu%4UobK-HCE_p>3V+aA%Z`Hoorg%n;Qd>$@nCmni%2!k1pq#=uL63(7+3C; zEr1YX#}#Ae(0IarE!yA10+MwJ0Pd><_fosf9YmTL?e?#H?u{t?gNEV)r94TjTfGX_ z7$nZZ8iO^f)0VH2#G0=D)x&9r{F>nu))-WrE9Hk5tc*$-u-r1G{$AZV@kaTob$s== z=MmLvHA^z=+FN@l#(1S9Lqbgn2{0t;jRHS=@G&@RAqWIA#_6Bu5Vw))>bHoM3|mL!-M13^3j0JYjr>_pq~Mn^)No}Ly! z)PV<0(b(^j$~oQ_Y7dMg(I`9~`Rg+s>&}oE8mfSEL?3-(A7Yzj)))+>NlX5*C;#2i zZ%C{fn*a4dpj?vB7sZRda1S20wSC6AkYzH}D&wAS)ow|W^rl8*HWIzHxiO|gSWw40 zH-=!_h(Y^1i6|yXY8v(Wp4+d#e6nd{hdtdw)f@uAqF%qZQJ;O*xx@&F-Q$+)%>6oh zxn-J|qEUakakzdT09LELL8v#glgcvj&RsiRGKRO69zx7VW~Ct@k}PAV;q7~?SH6~I z;(WXDiySND1THm=b+6~n+CA^&u|n|SmgMmCtw0{j+31@{CwAXct2*m$1_AF+(Ls+* z3;_5LzBzf__)RAgT=eNmVwPoQ^4f{q7yhac{B)9}CMo?!5JI`+mQeweJLM5T5TL{* zrcxO)A^4|#;jembi}EbXj80H8^?Mi!0NQ!i17{A|^lE@#vd(R79fo=j#UKrM7z&BT zT3UPjFw}ehJc%C`_4>Vc?%MHEn+;1p3~e9RemuQ#%zQ%1Y)g33*Zo_qXZ9#c$wn<;Qe#XxfvT92ddY9;Xh5C1Q$Okn|002t}1^@s6I8J)%000i(NklUFw=%m=wDe;6s4{aNd(f& z2+=wywn>9fH~ps|LdZ;nK!94Q6>C&f3PDgx)(|Ih(l~e%2Y;=--ko{xo*#d_nccN_ zW_Nb88?Ph(q|r+6op;}TzdiTdbI(2Z0M~F0*KiG259EV;6$Jze#iAS;7?3?cI1k?9u*0C2UxVAaSX zDfvo8a{wv;_Kf8S0Hu=HO1+~{paQ^=fr>QVQ_kf~L{^2kl_pEd<+6^A!Iet++T0t3 zLOCb_2W~kUjyrDd-ZQi$KOZ?^P8d3Uv;m3bOzU0RUmakc1==phj{Ez?4AF zQgBMhlMp#3316Yfn-f#xKYX_I*aQF+3Zou4j8dr>fcLL$@0Tnom&=;ZSTz_TIm)@nM{RKE(ua70#Q|kI$sww zgd|Q#c@4CG61Z>t!Efij2LQQp+3gt{W2sbHmfc(yS>Y+rLEX)jXZR!=k{hc}ctNma6?8}$;e<@gU z=X2$caNt{gHJ*J~R33)NeHow8T3j;_1gNV>&SI!*p%{gd&30;BoeltBHVc1Y z>(2k#Q^UjO3WZVMu&?c6NgvZ7YVUz^Ul-&{qWYNg+LOd_I>ZFJ)HYWe1QG$fk0OL5 zT(DpVrv%R&+Lu4w_?~v#(sl(41!^Uq50CFJug{9?1>{jx=}F=^CP@e!))-L$Ab=;y zB#vWM?NODzS<2og{^a?Mm3%%le6=>)S{#J}wO9m;2P+$^VvjlTUlgF%%z~sOT@@fL zIQ7nmi4g3M(cus7fAp766$+;9ILqy@D!^gQS1OtaAM)b%In`ccNUkQL06;`tU`U+P zUhnlW)RKpCgz(q^5es}&+5Fw%MNDe|ev!eAwz52K@_3yv1Q(9OX? z02uW#-u=AKWbdd=UnE3yHI%BESH@Kgx)9X3HjOCC-h?E4>XDI=?_iOoP)p5vuu$+r zLqkcj?!-?)T%7Xa+8R;Lu?iW_wTP!;raWwCkVx|!d`-fmm3Zm59L1aN~|G_}EA9#0}dw&)lol68yvW z$MC&>f34A{6@7Q({iMcNdat$Zx=$a)pb-zkhl(tTY=f{ zzZ}iTl1ifu&pQbASx9DLPb=HWRKsM3iOV!!()%l{)R*;vVrGCykNW5aAdTfWLlc`t z>=^@dg>nYuF7JIdgn+BuwQ7mfZU#8jt`KbZ$jHA%C&um#0Oj&f^nA@C02Hxf;<%&8 zRu^SJ&~Wv7?2AD_gecnqQC$B&7mj(L*mM@2r&)z!QA(wf6%M}CpCD`!07Bu1mZ~~v z1Py(WWOtQHr7@(6w6JCk3=9YWR4v{^VuOVM%7>dO3WPKe?1@<22>?gxJj}&B%^Dlq zA^@O~--^UKZ5jSe!)P~qay9&=m4KN+1fBGH9RTd9^Dr0lG;4hO(R7)XgzX~INwX!- zgd~szgNi^^pb7wlam6;HR~Dqu30(Ofy$O>eitOi8n62)(5?)z&~A%d2g)p|B0YFwjJy@()~A&!$7wfCxs zyj%A0CMaY8A(O3S=8@HRy1$;xArlr7h_>)9uMh|zBmo`S2s^Lqo0+I5CZ}=s+y#j0 zvL;y-NC*L-oCoIcFbAzSEJSKdbz9cT98Ulsv3X+;?!RX@cJJH+DJO#k04g6qZtJ2D0A@rs^0@o<8}Purw_S37+otvC>B{1z zZ~hC;oWHn?kdjKU018_U!zRm}GbuC1cS90_G~&Nk8Zzs8Y}>K{W`|!H9|HBB9P*o&JQibqXrIfE78K^XM#24I=wj}-$$P2p0X2cbR2-SHAL%AS8D9^%$R)DbO!Ia!(WUZpvBU(D^rOrm zqOaCu;y>#dMAod8mMs?w8lDlvl%!y-y#@^YBfeJPA(z4BNM^<=BZ+nQ`Iz)qz#ays0z&zfKPvU-)EnEWMm|I zZg@CuCf{WJM1Ww#>2s4Uhluy?lK*}PhI8jHqS^jr zno*;dXjcft#N<@Vh->6s`-^Cikj-}L^wi|*!tnP1@al;ZEywnPt&Wb4`WKEKmCcjA z&qlsuIF75Vrv)uK6kDMghYOwZSqb^(a_Qbzl;8K zT)C_}jw91Wep#IRErO0_ay6%S*KHLA8k>bfukFO|0YGJu!<&m~76IVUzWh{(GmAzv)%?t7_v&%7S_H zYY_w!?;>v&CP{nz=nnbXp0O=bDh(~F0PVzI2n<>!|CxY{e<4ZinGkHkiSwi_`84R2 z1c{*Hd@!3x7!G*K3*}tSfWfxTPPY}TDwV_v1=IbHe)<%;*f7l3YOjZxpf@?;CG*{ z{0tF357D0$;VrIF*8zZqBrSXanou~Cqq^+64n#e;2?(63Lp_WH(vT!^0?2DZ`$qx( zc4yDIZx0U-$5*7T!`$c7+A}#e#{QEBD-S4=pNGgT7I2%0Zh>HfbFRbt%uL?-yow=p zHYh?66r{)8q(SGriXrJq-MBW5V0IDY1(NTo$T3s-A!^~_dRftUlHvs4qkxn*h(YW;E)w#5EiWw{f zkOs3kwP=8gLR=&;3Gg%^Z;9&b4B<_I91Yp2|K9)TZ=3=ewP=81aWJez<)f9hAyO`v z^*d+I=*aLR$=r0MT)CXt@z2LySN~1hDN}o>(N+ce8&!@7^hlayy-vk-njr>x9wIe> zlZ`4z0r+1RFfLw>Pm;%aClH!dR2mpSSd&$bn&DdgtoQYvbZ%Uw%4}=eDZYklxQ1)E a68L{o$lLC`P000>X1^@s6#OZ}&0009jNkl_}aH<`*p#{{*sv9Xwmg~mFF zXd*}~gmjwGXu!fWN?`8eoMmy(y}9!+6UV*s4WsOG_e$x8XZ$7ae&2-#SIx zJ%=S4l%40mHwG4c5Z}uTr-hYh_a<4$(s~!w+xeF8j>^2gkr1-`rZlHA)W<3B#n~PH zyOK->9LocGJ~HQs0dgAub~Hk%hoR4Hdc%kD`*xyRo3@;V^=O>P=ghfe&Jlf$l>b5i zrIh*_wIk+TbUdH69?h&EiYdWLv=;N2+IfWoHn(K|b_kR%g)0)Yjw7XJUj*Zji*El?dJ|lkoY=K2ednsm zgGSnYlT21qDU4im$RmzMGoEZgE8N^O`*(^!xM@KPh0G9Dxa+c6ssBfEJD zL#gOivQA}9+nw1BjT_uk<`&pfxEuVW{x2fmLT?vY8yuhxMG4UX$w1+Uh9`d~G$Jn#?=C<;Dsd z;gaxVr;y3s^i*Egc*Rowh`*$JaZv4UgPGl!_@#@p^H$Rc#yDr_ltQWP?vGaJYjBs! zp-!G-t@RD1vO8O?LS=~3x!HNgDVbEv)wpbEQ6{Ez3K9S9R~Oh1~T9{RhXRUyG7>sJs9G002ovPDHLkV1h(EuHXOw literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected@2x.png b/suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..50f856bf4d8e05a0e773d5608d67f9def6846dee GIT binary patch literal 1673 zcmV;426p+0P)pWe4LIZf>DOX z3JJ!>j~9Y9XpA2b42c>|jGt(Np+Nac1>~a*EkWkqbCwVH-095ynBHM#$~^E-&coej zpS{+9ueI0SYwgP$*jR{l88tKP8#DGkDI(WJ?wVmH3-a`nGm}NH@7iJQEHaaY*{H#u zd^fJbM{yClctrS>((imdo*epSl~_HInJgCEWlx^3_GN|ZwY+PIglwM55$SH}cDKdR z1vgwJq16#tJfqY3N#SN~7phSityrnh!o0)MUUTuYp|M^AUK^3cv$#9oDSQPtXrZf; z3NdEvR12w8s&u6vVAfnbwZyvXPGs@S?aHf#12);B11gjgjngAkXk*^PYG1NH?j4db zAy!7DFJNz;qqbL?)^@h;3J46N(o*U;Asq0Eo81v7S4w6wB8y#VIxi8vWy+Ph$W@W( zqY_FbD)+1Ga$EdsC9Zb*SU!`5h-^rFTH%*Axl%_ZS}ALJ)^SA zT--g*GQ&jr9e3vr;SQy?ZWAhB52RX4q4Gazr@8pF(2AI@@x z(q%g84MPG#sjF7{kdCdeIOiGVGS{tBy0v=r<7K#Z@YN_H@7u6M`bh5|Y#K#m^BGWO zwRrPj!zd!h*I$oS1+8Bt|57@^}Ri#%l`*Eka4$YAp@k#P7-=(8%+9vN&J zCQ^GyCC8?!uO~vNQFwIl)#$}ud#NF^k({hIxs_vT&kep@ytDU|4lfGNDrgd?je(R3 zgclTE!YQ3CCenAL(sAiof!IJqLN-3~ta-zq83!T^~?*dt;HOwLIWuzjb@O(DZ%Y zP5DDyvuM0wSt*qYl^3);1|D2Wd?}GxNrrPh>V*F)T(C^!3a32xBJiE)*qNIgh?nq_ z<{8FJPMMAQX6i0nl)jC2vuHwZooSB>DoPi96Hw zWaVtPn~h$K-D-KKm3AszuGU{4rF zi^Rg4C%o#g(#4JYEGI04XzIbCWs9(7q?F#RRjMZ}ZuAy9wFh;Yg+4-)5r@WRW4t+@ z6Mmx*>WPmkWfLZAoiR^$VUbRHkCIBEcE4|Xad0DChKN&TmX?D$j%hV9V={zLEc;A; zFH>nNbR5U`MC7<@?`0NPgchyPk$G0YvE<{cDXeUF5J_MQ+I;N>G|ZYyjo!guF!J+k}p?l zpT+9csQpL!D-M{8`xbOq29saCMWk(6dao@yF2be4J8+J0o^+l`ZormGukeg?LO3oR z5&ofY*yEmXDCXDlPX#?}%QIgGUcuiyR_GMjJ9&-!!^~P?U;hlZ(f@q&2FBz6u=3D< TKc{vl00000NkvXXu0mjfG!;Qm literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected@3x.png b/suixinkan_ios/Assets.xcassets/tab_home_selected.imageset/tab_home_selected@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c4f2c7d3d9db94b6fa448204b5343685bb8f04 GIT binary patch literal 2910 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 YKUc|{U_eHR%m4rY07*qoM6N<$f{{}C^#A|> literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/tab_home_unselected.imageset/tab_home_unselected@3x.png b/suixinkan_ios/Assets.xcassets/tab_home_unselected.imageset/tab_home_unselected@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..95bc97d50cd96059600f6bd65d3fda7bf12f5123 GIT binary patch literal 3892 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 P00000NkvXXu0mjfp0itN literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/tab_order_selected.imageset/tab_order_selected@2x.png b/suixinkan_ios/Assets.xcassets/tab_order_selected.imageset/tab_order_selected@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9a189278b34a27b8848f88d56020d8b1e2d6d8ac GIT binary patch literal 1246 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 Y4`tfWUfeG#%>V!Z07*qoM6N<$f)|C1y8r+H literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/TabOrderUnselected.imageset/Contents.json b/suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/Contents.json similarity index 76% rename from suixinkan_ios/Assets.xcassets/TabOrderUnselected.imageset/Contents.json rename to suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/Contents.json index 0241d89..89b0894 100644 --- a/suixinkan_ios/Assets.xcassets/TabOrderUnselected.imageset/Contents.json +++ b/suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/Contents.json @@ -6,10 +6,12 @@ "scale" : "1x" }, { + "filename" : "tab_order_unselected@2x.png", "idiom" : "universal", "scale" : "2x" }, { + "filename" : "tab_order_unselected@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/tab_order_unselected.png b/suixinkan_ios/Assets.xcassets/tab_order_unselected.imageset/tab_order_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..90a3d32da8fd571a0c41199e27bc2cc9458c581a GIT binary patch literal 1026 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 literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/TabProfileSelected.imageset/Contents.json b/suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/Contents.json similarity index 76% rename from suixinkan_ios/Assets.xcassets/TabProfileSelected.imageset/Contents.json rename to suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/Contents.json index 3c5e11e..33d4fa6 100644 --- a/suixinkan_ios/Assets.xcassets/TabProfileSelected.imageset/Contents.json +++ b/suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/Contents.json @@ -6,10 +6,12 @@ "scale" : "1x" }, { + "filename" : "tab_profile_selected@2x.png", "idiom" : "universal", "scale" : "2x" }, { + "filename" : "tab_profile_selected@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected.png b/suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f747733c25df4e9a070b0ed2b082a400716c3e GIT binary patch literal 710 zcmV;%0y+JOP)P000>X1^@s6#OZ}&0007wNklI67%~aG7?0`s!kV)x z)X3=JUw^1w@K*YE8E65dt^FnU3g7EHW8WCvQdQRUjs0!kdDrc=mNDx#zn&unDTJ47 zw1A{9$(^fj-`J+p`d%bO6L(beAv>z}-7_j7Em)UirNC1&ajPJaq!dIFP9cc}Wo_;! z$*Dtet05^2qiAdUtEAR!_dM0@^WSFTRzVI~+>~WWU^Y0~9JAVo%WRgn@K>@&d}PbB zZX;AJEJ+IY;I>cw?s)@o!WL#)+o8Vuy{Yhm!lv9}O1IQLu;sEH_sq(eA)6Yhc?TBX6PpV5O0r5=x2|%b>)UHTOit?KYPBT9 z!g;j}6m9$yUEc;W83*BmbAtE`N=G68| z_Te_+21&wGIHz>Rl0SJc{w1a8M=<&7OirYe3df@cpGzOXJ(7Leigm5`R5+*hJrBlr z*Vq^n6B0>5B!|=W3J+jxGJE!3zyV!>f2ETwJy}2F4_kbK+B4uJf>M4(h6eqJhmMsm&_A=m&PX8%yI> zwDBrOM~FyvxI^inMU_x$_F_UPEvl3bdfuImN4;t39%*cxClWeo#w9<|cDtTBuSRnu zwYJdnTMKS?GXB%AX3bWmx$_U@Uh$mU6yBlg7v9EpRuC!_Zno22uz!;rTL;aF?8!kF zZne#0SEJBXshk7z&CN6?ax5oe<*X%-YvpjpN77QLoVDneV7_@7X-*^}>7=4R z8+lY3O4V@?dAtk{dngukQqi;-_RWliobaDDr|mJb4&+&@StCm-vr1iOTy%$17IIiu zY1R@+NBCwuXVE>n&YDr88aciXBjq8!t<-haqK`Wjm-=(oc%%HJ=aIoEf1|cXw7gw~ zN-ZR5=y28VIkhCT6bkhG&XT*Fhzpa9@Ql4814L~;l}^M3&v>_f!W8Ew>5>)bMet;ooYf)ho%H!o0%E6?RFEsm3X@ zqc9nfl)|wg8%^Kvu(owfnuOSRL^`Qh_iWu)Q(mEEr{0KXOCekoo_2p+T6JykV#e5V z&4~=}?fcTJg`06e*oRjNvud-O_R>&-fh z_bAdO1BJL+6A0(kB$YsO`0CEJ>GzzjZli z<%v*c`J(6V_<{%G`)hn}fX$r_micI!lYAM66sS~rV4RK^o$@qLD%GfcN9m~hFK(eSZ>w_-&o3F=_{wy{+14qBrP9EZpc)!AD^wd^T^hzU8=&F?tIg;MnS0P7# zr?P%fgFf+juhMl!%Wg|5n~BrYN2R5-(eU8TS>y_lS!3{2N_d3a2vLJdj z@?w32$T8gFA6~O6#v!aFG8h6Yw`iHmQqQ#`BA+!&bHZC!#W;kuL>^xjsoyj;C2>;p zwXdY~W~{_GgtbKWEZ=lvo}sQik;te2l(*KNwL~^*h;#Y&IxDl+4w0*7m>YG=dPD{_ z`m`nQ($>Br!8JpXhttRM|7-fl=r`R-g=c+Q>7$YzS0=tKA}mNA^@MLb9gV*``M<)( ndwTj2eEk4C00000NkvXXu0mjfegWvD literal 0 HcmV?d00001 diff --git a/suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected@3x.png b/suixinkan_ios/Assets.xcassets/tab_profile_selected.imageset/tab_profile_selected@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b2996b3d9b83cac5727ed0fc033b65dbae6a124d GIT binary patch literal 2264 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 [String: Any] { + private func makeTabBarItemAttributes(for tab: AppTab) -> [String: String] { [ CYLTabBarItemTitle: tab.title, CYLTabBarItemImage: tab.unselectedImageName, @@ -98,13 +96,6 @@ final class MainTabBarController: CYLTabBarController { ] } - /// CYL 会根据属性字典重建 TabBarItem,因此在设置控制器后补充自动化标识。 - private func applyTabAccessibilityIdentifiers() { - for tab in AppTab.allCases { - tabNavigationControllers[tab]?.tabBarItem.accessibilityIdentifier = "main.tab.\(tab.rawValue)" - } - } - /// 绑定角标 ViewModel 回调。 private func bindBadgeViewModel() { badgeViewModel.onChange = { [weak self] in diff --git a/suixinkan_ios/Features/Main/Views/MainScanPlusButton.swift b/suixinkan_ios/Features/Main/Views/MainScanPlusButton.swift index 9e1ffbb..6df5d96 100644 --- a/suixinkan_ios/Features/Main/Views/MainScanPlusButton.swift +++ b/suixinkan_ios/Features/Main/Views/MainScanPlusButton.swift @@ -16,10 +16,20 @@ final class MainScanPlusButton: CYLPlusButton, CYLPlusButtonSubclassing { /// 构建中间扫码按钮实例,供 CYLTabBarController 注册使用。 static func plusButton() -> Any { - let button = MainScanPlusButton(type: .custom) - button.frame = CGRect(x: 0, y: 0, width: 70, height: 64) - button.configureAppearance() - button.addTarget(button, action: #selector(handleScanTap), for: .touchUpInside) + let button = MainScanPlusButton() + button.setImage(UIImage(named: "icon_scan"), for: .normal) + button.titleLabel?.textAlignment = .center + + button.titleLabel?.font = UIFont.systemFont(ofSize: 10) + + button.setTitle("发布", for: .normal) + button.setTitleColor(UIColor.gray, for: .normal) + + button.setTitle("选中", for: .selected) + button.setTitleColor(UIColor(red:255.0/255.0,green:102.0/255.0,blue:0,alpha:1.0), for: .selected) + + button.adjustsImageWhenHighlighted = false + button.sizeToFit() return button } @@ -46,7 +56,7 @@ final class MainScanPlusButton: CYLPlusButton, CYLPlusButtonSubclassing { let symbolConfig = UIImage.SymbolConfiguration(pointSize: 30, weight: .bold) let iconView = UIImageView( - image: UIImage(systemName: "qrcode.viewfinder", withConfiguration: symbolConfig) + image: UIImage(named: "icon_scan") ) iconView.tintColor = .white iconView.contentMode = .scaleAspectFit diff --git a/suixinkan_ios/SceneDelegate.swift b/suixinkan_ios/SceneDelegate.swift index f3edfe3..6b74e0b 100644 --- a/suixinkan_ios/SceneDelegate.swift +++ b/suixinkan_ios/SceneDelegate.swift @@ -6,6 +6,7 @@ // import UIKit +import CYLTabBarController /// 窗口 Scene 代理,负责创建根窗口并挂载会话协调器。 class SceneDelegate: UIResponder, UIWindowSceneDelegate { @@ -23,6 +24,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { ) { guard let windowScene = scene as? UIWindowScene else { return } + MainScanPlusButton.register() + AppUITestLaunchState.resetIfNeeded() let rootViewController = RootViewController() diff --git a/suixinkan_iosTests/MainScanPlusButtonTests.swift b/suixinkan_iosTests/MainScanPlusButtonTests.swift index 4db61dc..0b4bebb 100644 --- a/suixinkan_iosTests/MainScanPlusButtonTests.swift +++ b/suixinkan_iosTests/MainScanPlusButtonTests.swift @@ -41,6 +41,21 @@ final class MainScanPlusButtonTests: XCTestCase { ) } } + + /// 测试各 Tab 的图标资源可被加载并挂载到 tabBarItem。 + func testMainTabBarControllerTabBarItemsHaveImages() { + let services = AppServices(apiClient: APIClient(session: MainTabRecordingURLSession())) + let controller = MainTabBarController(services: services) + controller.loadViewIfNeeded() + + for tab in AppTab.allCases { + let item = controller.navigationController(for: tab)?.tabBarItem + XCTAssertNotNil(item?.image, "tab \(tab.rawValue) image should not be nil") + XCTAssertNotNil(item?.selectedImage, "tab \(tab.rawValue) selectedImage should not be nil") + XCTAssertGreaterThan(item?.image?.size.width ?? 0, 0) + XCTAssertGreaterThan(item?.selectedImage?.size.width ?? 0, 0) + } + } } /// 主 Tab 测试使用的空网络会话,确保容器加载不触发真实请求。