前言

从今天开始,我们出一个系列叫做拆包达人:通过对 IPA 包的拆解,逆向的方式来学习,废话不多说,现在开始。

Jaco

中东直播应用,对标 TikTok 或者抖音,其 APP 长这样:

应用截图

拆完 IPA 包后,我们看到目录如下:

.
├── _CodeSignature
│   └── CodeResources
├── ai_generating.pag
├── ai_preparing.pag
├── AliVideoCert-com_weo_projectz-20240418175247.crt
├── AppAuthCore_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── AppsFlyerLib_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── ar.lproj
│   ├── AppLocalizable.strings
│   ├── InfoPlist.strings
│   ├── JacoLocalizable.strings
│   ├── LaunchScreen.strings
│   ├── LiveLocalizable.strings
│   ├── Localizable.strings
│   ├── Main.strings
│   ├── MessageLocalizable.strings
│   ├── RongCloudKit.strings
│   └── RongSticker.strings
├── Assets.car
├── AVPlayerPage.txt
├── Base.lproj
│   ├── LaunchScreen.storyboardc
│   └── Main.storyboardc
├── batter_full_like.json
├── batter_like_avatar.json
├── batter_like_heart.json
├── batter_like_soccer.json
├── BeetoADBundle.bundle
│   ├── Assets.car
│   ├── Info.plist
│   └── zh-cn.lproj
├── big_playback_lottie.json
├── big_record_lottie.json
├── BMeiSheSDK.bundle
│   ├── Info.plist
│   └── meishe.lic
├── box_open.json
├── box_unclick.json
├── box_win.json
├── Bubble Tea.png
├── caption.bundle
│   ├── 0C1A0ABB-3ECA-46B3-95C4-07555BBA3A5F.1.captionstyle
│   ├── 0C1A0ABB-3ECA-46B3-95C4-07555BBA3A5F.lic
│   ├── 0D4D1A68-5CE2-46E8-8635-7672EBA35FA2.1.captionstyle
│   ├── 0D4D1A68-5CE2-46E8-8635-7672EBA35FA2.lic
│   ├── 1C7EE477-20E9-494F-BF48-4D37E834A725.1.captionstyle
│   ├── 1C7EE477-20E9-494F-BF48-4D37E834A725.lic
│   ├── 1E61C62D-1317-4A5C-8773-830A19514735.1.captionstyle
│   ├── 1E61C62D-1317-4A5C-8773-830A19514735.lic
│   ├── 2044EE5C-D0B6-4E76-B6D5-391F0C4AD05E.1.captionstyle
│   ├── 2044EE5C-D0B6-4E76-B6D5-391F0C4AD05E.lic
│   ├── 24206D2B-F06E-4AA5-B4DF-5E103DF9DAB7.1.captionstyle
│   ├── 24206D2B-F06E-4AA5-B4DF-5E103DF9DAB7.lic
│   ├── 2C7609BE-7563-4E79-853D-B5540F593A11.1.captionstyle
│   ├── 2C7609BE-7563-4E79-853D-B5540F593A11.lic
│   ├── 2FE34C0F-F984-456F-8E2F-60EB1FEFEB90.9.captionstyle
│   ├── 2FE34C0F-F984-456F-8E2F-60EB1FEFEB90.lic
│   ├── 315FEA0F-A05B-4396-9C8D-2D3EDA001C81.1.captionstyle
│   ├── 315FEA0F-A05B-4396-9C8D-2D3EDA001C81.lic
│   ├── 39B0B7E1-D914-4AA6-BFBB-53123FA6607C.1.captionstyle
│   ├── 39B0B7E1-D914-4AA6-BFBB-53123FA6607C.lic
│   ├── 3A23D76E-4D68-4842-AE7E-DDC1CDE2B36C.1.captionstyle
│   ├── 3A23D76E-4D68-4842-AE7E-DDC1CDE2B36C.lic
│   ├── 3F23B70F-05B4-4108-B001-C3FB866DF72A.1.captionstyle
│   ├── 3F23B70F-05B4-4108-B001-C3FB866DF72A.lic
│   ├── 43B73C4F-0652-4EA4-952A-4204F678A47E.1.captionstyle
│   ├── 43B73C4F-0652-4EA4-952A-4204F678A47E.lic
│   ├── 49566C3C-D1E3-46C0-BFEC-BDB785530BAF.1.captionstyle
│   ├── 49566C3C-D1E3-46C0-BFEC-BDB785530BAF.lic
│   ├── 4A625662-8FC9-4033-A661-FBD3D2CF1FEA.1.captionstyle
│   ├── 4A625662-8FC9-4033-A661-FBD3D2CF1FEA.lic
│   ├── 4C76AACA-19AC-481F-AE1E-0F32625B2EC3.4.captionstyle
│   ├── 4C76AACA-19AC-481F-AE1E-0F32625B2EC3.lic
│   ├── 5726F064-1EB5-4D5A-8192-8B3949C0E4EA.1.captionstyle
│   ├── 5726F064-1EB5-4D5A-8192-8B3949C0E4EA.lic
│   ├── 5A0EFE09-AD94-4C01-9CC8-610D5873DEAE.1.captionstyle
│   ├── 5A0EFE09-AD94-4C01-9CC8-610D5873DEAE.lic
│   ├── 5BDEA66F-2326-4DFD-A7C5-75C75655CCC6.1.captionstyle
│   ├── 5BDEA66F-2326-4DFD-A7C5-75C75655CCC6.lic
│   ├── 656B18C0-8C65-4286-93C8-1690E5EE9E88.1.captionstyle
│   ├── 656B18C0-8C65-4286-93C8-1690E5EE9E88.lic
│   ├── 65A85DA8-E2A6-4408-9699-05AB791AD6B4.1.captionstyle
│   ├── 65A85DA8-E2A6-4408-9699-05AB791AD6B4.lic
│   ├── 66CBBEB8-FB1D-4DA3-B6E2-48DECEF95A07.1.captionstyle
│   ├── 66CBBEB8-FB1D-4DA3-B6E2-48DECEF95A07.lic
│   ├── 690C25D3-56FA-43F5-B7DD-5230EECF81DD.2.captionstyle
│   ├── 690C25D3-56FA-43F5-B7DD-5230EECF81DD.lic
│   ├── 73B20460-8228-4101-BE96-BCABE60F794D.1.captionstyle
│   ├── 73B20460-8228-4101-BE96-BCABE60F794D.lic
│   ├── 8027447F-73A1-4A64-8B13-4876E8F1567E.1.captionstyle
│   ├── 8027447F-73A1-4A64-8B13-4876E8F1567E.lic
│   ├── 82EFFD41-E686-4BA4-9BF6-74F648E0E3FB.1.captionstyle
│   ├── 82EFFD41-E686-4BA4-9BF6-74F648E0E3FB.lic
│   ├── 867C5CE6-849C-496F-9150-90E8B3B7D0AF.1.captionstyle
│   ├── 867C5CE6-849C-496F-9150-90E8B3B7D0AF.lic
│   ├── 916609BB-1B9A-40AA-9C87-596998DD2D0F.1.captionstyle
│   ├── 916609BB-1B9A-40AA-9C87-596998DD2D0F.lic
│   ├── 93338969-F0BE-457F-9E31-CFCB95F1F937.5.captionstyle
│   ├── 93338969-F0BE-457F-9E31-CFCB95F1F937.lic
│   ├── 96CE3810-928D-426D-84D8-1791641D5930.1.captionstyle
│   ├── 96CE3810-928D-426D-84D8-1791641D5930.lic
│   ├── 9C0ABC4C-6AA7-4394-95E8-50CC2DEF7191.1.captionstyle
│   ├── 9C0ABC4C-6AA7-4394-95E8-50CC2DEF7191.lic
│   ├── 9D252FC7-8587-418F-9BF8-974FF8593171.4.captionstyle
│   ├── 9D252FC7-8587-418F-9BF8-974FF8593171.lic
│   ├── A21DA7C1-4CA8-4A60-A764-78D036CAA18E.1.captionstyle
│   ├── A21DA7C1-4CA8-4A60-A764-78D036CAA18E.lic
│   ├── A983E9E2-CA00-45C1-9DB0-6204EABE2361.1.captionstyle
│   ├── A983E9E2-CA00-45C1-9DB0-6204EABE2361.lic
│   ├── B1CE8932-092A-421A-AF34-B43C61AB08EE.1.captionstyle
│   ├── B1CE8932-092A-421A-AF34-B43C61AB08EE.lic
│   ├── B3967436-19CF-4521-82E5-B607FDE87F68.1.captionstyle
│   ├── B3967436-19CF-4521-82E5-B607FDE87F68.lic
│   ├── B9B1C935-04F3-4CA0-B512-AB1450BC462F.1.captionstyle
│   ├── B9B1C935-04F3-4CA0-B512-AB1450BC462F.lic
│   ├── BB2B9917-C49E-4A4E-9722-C6ED1B35489A.1.captionstyle
│   ├── BB2B9917-C49E-4A4E-9722-C6ED1B35489A.lic
│   ├── BF688B3C-42C2-41A6-9EDB-DFB0A8D9393D.1.captionstyle
│   ├── BF688B3C-42C2-41A6-9EDB-DFB0A8D9393D.lic
│   ├── C0B02545-0233-4916-AB60-8A079373E9D8.1.captionstyle
│   ├── C0B02545-0233-4916-AB60-8A079373E9D8.lic
│   ├── C48AA6C4-486A-4101-A269-9689EFB529E7.1.captionstyle
│   ├── C48AA6C4-486A-4101-A269-9689EFB529E7.lic
│   ├── caption_style1.png
│   ├── caption_style2.png
│   ├── caption_style3.png
│   ├── caption_style4.png
│   ├── caption_style5.png
│   ├── caption.json
│   ├── D085861B-0A01-4D2B-A061-4DF4D8BBDDB2.2.captionstyle
│   ├── D085861B-0A01-4D2B-A061-4DF4D8BBDDB2.lic
│   ├── D3B7527A-811B-4098-AFBE-208F034C394D.1.captionstyle
│   ├── D3B7527A-811B-4098-AFBE-208F034C394D.lic
│   ├── D929CC52-C463-4042-89BD-F7686CD9851A.1.captionstyle
│   ├── D929CC52-C463-4042-89BD-F7686CD9851A.lic
│   ├── E06AC0E0-8C8E-4A81-A30C-C65839CEED91.1.captionstyle
│   ├── E06AC0E0-8C8E-4A81-A30C-C65839CEED91.lic
│   ├── EA8CB895-9EFC-48AB-9CFC-035A93CBF0FD.2.captionstyle
│   ├── EA8CB895-9EFC-48AB-9CFC-035A93CBF0FD.lic
│   ├── EADEB54E-411C-46AC-A88B-547D80DDDDBF.1.captionstyle
│   ├── EADEB54E-411C-46AC-A88B-547D80DDDDBF.lic
│   ├── EC2BBA40-981B-450F-A582-104187FAEC17.2.captionstyle
│   └── EC2BBA40-981B-450F-A582-104187FAEC17.lic
├── capture_tip.gif
├── category.json
├── ComposeMakeup.bundle
│   └── ComposeMakeup
├── cross_room.json
├── dark.json
├── Deep.png
├── DGCharts.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── dm_livecard_live.json
├── dm_voice_delete.json
├── dm_voice_lock_img.png
├── dm_voice_lock.json
├── doubleLike.json
├── doubleLikeSoccer.json
├── Emoji.plist
├── EmojiList.plist
├── en.lproj
│   ├── AppLocalizable.strings
│   ├── InfoPlist.strings
│   ├── JacoLocalizable.strings
│   ├── LaunchScreen.strings
│   ├── LiveLocalizable.strings
│   ├── Localizable.strings
│   ├── Main.strings
│   ├── MessageLocalizable.strings
│   ├── RongCloudKit.strings
│   └── RongSticker.strings
├── engaging.json
├── enter_live_arrow.pag
├── FBLPromises_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── feed_voice_wave.json
├── filter.bundle
│   ├── filter.json
│   ├── mopian_6945244021867921415
│   ├── qingkong_6945244054134538270
│   ├── tongnian_6945244030104649736
│   └── Warmfood_7165158837891104769
├── filters.json
├── FMDB_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── Frameworks
│   ├── AgoraAiEchoCancellationExtension.framework
│   ├── AgoraAiNoiseSuppressionExtension.framework
│   ├── Agorafdkaac.framework
│   ├── Agoraffmpeg.framework
│   ├── AgoraReplayKitExtension.framework
│   ├── AgoraRtcKit.framework
│   ├── AgoraSoundTouch.framework
│   ├── AgoraVideoDecoderExtension.framework
│   ├── AgoraVideoEncoderExtension.framework
│   ├── alivcffmpeg.framework
│   ├── AliyunMediaDownloader.framework
│   ├── AliyunPlayer.framework
│   ├── aosl.framework
│   ├── IQKeyboardManagerSwift.framework
│   ├── libpag.framework
│   ├── NveEffectKit.framework
│   ├── NvStreamingSdkCore.framework
│   ├── RongChatRoom.framework
│   ├── RongCustomerService.framework
│   ├── RongDiscussion.framework
│   ├── RongIMKit.framework
│   ├── RongIMLib.framework
│   ├── RongIMLibCore.framework
│   ├── RongPublicService.framework
│   ├── RongSight.framework
│   ├── SCSDKCameraKit.framework
│   ├── SCSDKCoreKit.framework
│   ├── SCSDKCreativeKit.framework
│   ├── Sentry.framework
│   ├── tsr_client.framework
│   ├── video_dec.framework
│   ├── video_enc.framework
│   └── ZegoExpressEngine.framework
├── GCDWebUploader.bundle
│   └── Contents
├── gift_guidance_border.pag
├── gift_sound.mp3
├── gold_coins_animation.json
├── GoogleCast.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── GoogleCastCoreResources.bundle
│   ├── af.lproj
│   ├── ar.lproj
│   ├── bg.lproj
│   ├── bn.lproj
│   ├── ca.lproj
│   ├── CastFrameworkDB.momd
│   ├── cs.lproj
│   ├── da.lproj
│   ├── de.lproj
│   ├── el.lproj
│   ├── en_GB.lproj
│   ├── en.lproj
│   ├── es_419.lproj
│   ├── es.lproj
│   ├── et.lproj
│   ├── fa.lproj
│   ├── fi.lproj
│   ├── fil.lproj
│   ├── fr.lproj
│   ├── hi.lproj
│   ├── hr.lproj
│   ├── hu.lproj
│   ├── hy.lproj
│   ├── Icons
│   ├── id.lproj
│   ├── is.lproj
│   ├── it.lproj
│   ├── iw.lproj
│   ├── ja.lproj
│   ├── ka.lproj
│   ├── km.lproj
│   ├── ko.lproj
│   ├── lo.lproj
│   ├── lt.lproj
│   ├── lv.lproj
│   ├── mk.lproj
│   ├── mn.lproj
│   ├── mr.lproj
│   ├── ms.lproj
│   ├── my.lproj
│   ├── ne.lproj
│   ├── nl.lproj
│   ├── no.lproj
│   ├── pl.lproj
│   ├── pt_PT.lproj
│   ├── pt.lproj
│   ├── ro.lproj
│   ├── ru.lproj
│   ├── si.lproj
│   ├── sk.lproj
│   ├── sl.lproj
│   ├── sr.lproj
│   ├── sv.lproj
│   ├── sw.lproj
│   ├── ta.lproj
│   ├── th.lproj
│   ├── tr.lproj
│   ├── uk.lproj
│   ├── vi.lproj
│   ├── zh_CN.lproj
│   ├── zh_TW.lproj
│   └── zh.lproj
├── GoogleCastUIResources.bundle
│   ├── af.lproj
│   ├── ar.lproj
│   ├── Base.lproj
│   ├── bg.lproj
│   ├── bn.lproj
│   ├── ca.lproj
│   ├── cs.lproj
│   ├── da.lproj
│   ├── de.lproj
│   ├── el.lproj
│   ├── en_GB.lproj
│   ├── en.lproj
│   ├── es_419.lproj
│   ├── es.lproj
│   ├── et.lproj
│   ├── fa.lproj
│   ├── fi.lproj
│   ├── fil.lproj
│   ├── fr.lproj
│   ├── hi.lproj
│   ├── hr.lproj
│   ├── hu.lproj
│   ├── hy.lproj
│   ├── Icons
│   ├── id.lproj
│   ├── is.lproj
│   ├── it.lproj
│   ├── iw.lproj
│   ├── ja.lproj
│   ├── ka.lproj
│   ├── km.lproj
│   ├── ko.lproj
│   ├── lo.lproj
│   ├── lt.lproj
│   ├── lv.lproj
│   ├── mk.lproj
│   ├── mn.lproj
│   ├── mr.lproj
│   ├── ms.lproj
│   ├── my.lproj
│   ├── ne.lproj
│   ├── nl.lproj
│   ├── no.lproj
│   ├── pl.lproj
│   ├── pt_PT.lproj
│   ├── pt.lproj
│   ├── ro.lproj
│   ├── ru.lproj
│   ├── si.lproj
│   ├── sk.lproj
│   ├── sl.lproj
│   ├── sr.lproj
│   ├── sv.lproj
│   ├── sw.lproj
│   ├── ta.lproj
│   ├── th.lproj
│   ├── tr.lproj
│   ├── uk.lproj
│   ├── vi.lproj
│   ├── zh_CN.lproj
│   ├── zh_TW.lproj
│   └── zh.lproj
├── GoogleService-Info.plist
├── GoogleSignIn.bundle
│   ├── ar.lproj
│   ├── ca.lproj
│   ├── cs.lproj
│   ├── da.lproj
│   ├── de.lproj
│   ├── el.lproj
│   ├── en_GB.lproj
│   ├── en.lproj
│   ├── es_MX.lproj
│   ├── es.lproj
│   ├── fi.lproj
│   ├── fr_CA.lproj
│   ├── fr.lproj
│   ├── google.png
│   ├── google@2x.png
│   ├── google@3x.png
│   ├── he.lproj
│   ├── hi.lproj
│   ├── hr.lproj
│   ├── hu.lproj
│   ├── id.lproj
│   ├── Info.plist
│   ├── it.lproj
│   ├── ja.lproj
│   ├── ko.lproj
│   ├── ms.lproj
│   ├── nb.lproj
│   ├── nl.lproj
│   ├── pl.lproj
│   ├── PrivacyInfo.xcprivacy
│   ├── pt_BR.lproj
│   ├── pt_PT.lproj
│   ├── pt.lproj
│   ├── ro.lproj
│   ├── Roboto-Bold.ttf
│   ├── ru.lproj
│   ├── sk.lproj
│   ├── sv.lproj
│   ├── th.lproj
│   ├── tr.lproj
│   ├── uk.lproj
│   ├── vi.lproj
│   ├── zh_CN.lproj
│   └── zh_TW.lproj
├── GoogleUtilities_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── GTMAppAuth_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── GTMSessionFetcher_Core_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── home_interest_selection_guide.pag
├── icon_logo_new.png
├── Info.plist
├── InfoDebug.plist
├── JACO
├── Jaco Style.png
├── jaco_3_0_home_heart.pag
├── jaco_3_0_home_viewers.pag
├── jaco_3.0_support_coin.pag
├── jaco_3.0_support_flower.pag
├── jaco_profile_guide_side.pag
├── jaco_profile_guide_swip.pag
├── JacoCategoryJson.json
├── JacoIcon60x60@2x.png
├── JacoIcon76x76@2x~ipad.png
├── JXCategoryView.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── JXPagingView.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── Kingfisher.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── ko_lightning.json
├── ko_red_warn.json
├── ko_sector_countdown.json
├── LicenseBag.bundle
│   └── huoshan.licbag
├── light.json
├── live_bottom_barItem_newGift.pag
├── live_combo_send_x100.pag
├── live_combo_send_x15.pag
├── live_combo_send_x30.pag
├── live_combo_send_x50.pag
├── live_face.json
├── live_gift_combo_level1.pag
├── live_gift_combo_level2.pag
├── live_gift_combo_level3.pag
├── live_gift_combo_level4.pag
├── live_gift_combo_level5.pag
├── live_gift_combo_level6.pag
├── live_gift_track_burst.pag
├── live_gift_track_donotstop_ar.pag
├── live_gift_track_donotstop.pag
├── live_gift_track_fire_ar.pag
├── live_gift_track_fire.pag
├── live_gift_track_flash.pag
├── live_gift_track_good_ar.pag
├── live_gift_track_good.pag
├── live_gift_track_greate_ar.pag
├── live_gift_track_greate.pag
├── live_gift_track_legend_ar.pag
├── live_gift_track_legend.pag
├── live_im_zoom_in.json
├── live_im_zoom_out.json
├── live_ko_end.json
├── live_link_voice_wave_blue.json
├── live_link_voice_wave_orange.json
├── live_link_voice_wave_red.json
├── live_link_voice_wave.json
├── live_multi_ink.json
├── live_pk_add_arrow.json
├── live_pk_likeOnly_ar.json
├── live_pk_likeOnly_en.json
├── live_pk_progress_catch_up_ko.pag
├── live_pk_progress_catch_up.pag
├── live_pk_progress_emoji_lose.pag
├── live_pk_progress_emoji_win.pag
├── live_pk_progress_normal.pag
├── live_pk_singleGift_ar.json
├── live_pk_singleGift_en.json
├── live_popup_draw.json
├── live_popup_lose.json
├── live_popup_start.json
├── live_popup_win.json
├── live_rom_box_jump.json
├── live_room_box_enter.json
├── live_room_lucky_box_enter.json
├── live_room_lucky_box_rock.json
├── live_room_swip.json
├── live_sei_carrier.jpg
├── live_share_screen.mp4
├── live_single_link.json
├── live_single_voice_or_live.json
├── liveroom_casting.pag
├── liveroom_cion_jump.json
├── liveroom_heart_jump.json
├── livevideo_scatter_flowers.json
├── living_bmp.pag
├── loading.json
├── logo_top_image_web1.webp
├── LottiePrivacyInfo.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── lv_goal_progress_35.json
├── lv_goal_progress_50.json
├── lv_goal_progress_65.json
├── lv_goal_progress_80.json
├── lv_goal_progress_99.json
├── MaterialDialogs.bundle
│   └── Resources
├── MJRefresh.bundle
│   ├── arrow@2x.png
│   ├── en.lproj
│   ├── ko.lproj
│   ├── ru.lproj
│   ├── trail_arrow@2x.png
│   ├── uk.lproj
│   ├── zh-Hans.lproj
│   └── zh-Hant.lproj
├── MJRefresh.Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── ModelResource.bundle
│   ├── facefitting
│   ├── hairparser
│   ├── handmodel
│   ├── idream
│   ├── mattingmodel
│   ├── skeleton_model
│   ├── skin_seg
│   ├── ttfaceattrmodel
│   └── ttfacemodel
├── mopian_6945244021867921415.png
├── Peach Pinky.png
├── PhoneNumberKitPrivacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── PhoneNumberMetadata.json
├── pk_end_tips.pag
├── pk_props.mp4
├── PkgInfo
├── PlugIns
│   ├── BroadcastUpload.appex
│   ├── BroadcastUploadSetupUI.appex
│   └── NotificationService.appex
├── polish_data.json
├── PrivacyInfo.xcprivacy
├── profile_living.json
├── Protobuf_Privacy.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── qingkong_6945244054134538270.png
├── Quality.png
├── RangersAppLog.bundle
│   ├── h5bridge-wkwebview.txt
│   └── Info.plist
├── RCColor.plist
├── RCConfig.plist
├── README.md
├── RecaptchaEnterpriseSDKResources.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── received_rank_badge.json
├── recharge_discount_bg.json
├── reference_loading.pag
├── refresh_yellow.json
├── RongCloud.bundle
│   ├── add@2x.png
│   ├── add@3x.png
│   ├── arrow@2x.png
│   ├── arrow@3x.png
│   ├── audio_press_short@2x.png
│   ├── audio_press_short@3x.png
│   ├── block_notification@2x.png
│   ├── block_notification@3x.png
│   ├── blue.png
│   ├── blue-hover.png
│   ├── broken@2x.png
│   ├── bubble.png
│   ├── burn_video_picture@2x.png
│   ├── burn_video_picture@3x.png
│   ├── burnPicture@2x.png
│   ├── burnPicture@3x.png
│   ├── cancelButton@2x.png
│   ├── chat_from_bg_normal_dark@2x.png
│   ├── chat_from_bg_normal@2x.png
│   ├── chat_to_bg_normal_dark@2x.png
│   ├── chat_to_bg_normal@2x.png
│   ├── chat_to_bg_white_dark@2x.png
│   ├── chat_to_bg_white@2x.png
│   ├── check.png
│   ├── close_burn@2x.png
│   ├── close_burn@3x.png
│   ├── close.png
│   ├── combine_failed@2x.png
│   ├── combine_failed@3x.png
│   ├── combine_loading@2x.png
│   ├── combine_loading@3x.png
│   ├── Comment.png
│   ├── cs_eva_complete_hover@2x.png
│   ├── cs_eva_complete@2x.png
│   ├── cs_no@2x.png
│   ├── cs_yes_hover@2x.png
│   ├── cs_yes@2x.png
│   ├── custom_service_evaluation_no_hover.png
│   ├── custom_service_evaluation_no.png
│   ├── custom_service_evaluation_star_hover.png
│   ├── custom_service_evaluation_star.png
│   ├── custom_service_evaluation_yes_hover.png
│   ├── custom_service_evaluation_yes.png
│   ├── custom_service_switch_to_admin_dark@2x.png
│   ├── custom_service_switch_to_admin_dark@3x.png
│   ├── custom_service_switch_to_admin@2x.png
│   ├── custom_service_switch_to_admin@3x.png
│   ├── default_collection_portrait@2x.png
│   ├── default_collection_portrait@3x.png
│   ├── default_discussion_collection_portrait@2x.png
│   ├── default_discussion_collection_portrait@3x.png
│   ├── default_discussion_portrait@2x.png
│   ├── default_discussion_portrait@3x.png
│   ├── default_group_portrait@2x.png
│   ├── default_group_portrait@3x.png
│   ├── default_portrait_msg@2x.png
│   ├── default_portrait_msg@3x.png
│   ├── default_portrait@2x.png
│   ├── default_portrait@3x.png
│   ├── delete_message_dark@2x.png
│   ├── delete_message_dark@3x.png
│   ├── delete_message@2x.png
│   ├── delete_message@3x.png
│   ├── emoji_btn_delete@2x.png
│   ├── emoji_btn_normal.png
│   ├── ExcelFile@2x.png
│   ├── ExcelFile@3x.png
│   ├── exclamation_dark@2x.png
│   ├── exclamation@2x.png
│   ├── fileicon_video_wall@2x.png
│   ├── fileicon_video_wall@3x.png
│   ├── files_hover.png
│   ├── fire_identify_dark@2x.png
│   ├── fire_identify_dark@3x.png
│   ├── fire_identify@2x.png
│   ├── fire_identify@3x.png
│   ├── folder.png
│   ├── follow-hover.png
│   ├── follow.png
│   ├── forward_message_dark@2x.png
│   ├── forward_message_dark@3x.png
│   ├── forward_message@2x.png
│   ├── forward_message@3x.png
│   ├── forwardIcon_dark@2x.png
│   ├── forwardIcon@2x.png
│   ├── from_burn_picture_dark@2x.png
│   ├── from_burn_picture_dark@3x.png
│   ├── from_burn_picture@2x .png
│   ├── from_burn_picture@3x.png
│   ├── from_burn_video_picture_dark@2x.png
│   ├── from_burn_video_picture_dark@3x.png
│   ├── from_burn_video_picture@2x.png
│   ├── from_burn_video_picture@3x.png
│   ├── from_thumb_image_broken_dark@2x.png
│   ├── from_thumb_image_broken_dark@3x.png
│   ├── from_thumb_image_broken@2x.png
│   ├── from_thumb_image_broken@3x.png
│   ├── from_voice_1_dark@2x.png
│   ├── from_voice_1_dark@3x.png
│   ├── from_voice_1@2x.png
│   ├── from_voice_1@3x.png
│   ├── from_voice_2_dark@2x.png
│   ├── from_voice_2_dark@3x.png
│   ├── from_voice_2@2x.png
│   ├── from_voice_2@3x.png
│   ├── from_voice_3_dark@2x.png
│   ├── from_voice_3_dark@3x.png
│   ├── from_voice_3@2x.png
│   ├── from_voice_3@3x.png
│   ├── gif_loadfailed@2x.png
│   ├── gif_loadfailed@3x.png
│   ├── gif_loading@2x.png
│   ├── gif_loading@3x.png
│   ├── gif_loadprogress@2x.png
│   ├── gif_loadprogress@3x.png
│   ├── gif_needload@2x.png
│   ├── gif_needload@3x.png
│   ├── HQVoiceMsg_failed_tip@2x.png
│   ├── HQVoiceMsg_failed_tip@3x.png
│   ├── icon_sight_close@2x.png
│   ├── inputbar_add_dark@2x.png
│   ├── inputbar_add_dark@3x.png
│   ├── inputbar_add@2x.png
│   ├── inputbar_add@3x.png
│   ├── inputbar_emoji_dark@2x.png
│   ├── inputbar_emoji_dark@3x.png
│   ├── inputbar_emoji@2x.png
│   ├── inputbar_emoji@3x.png
│   ├── inputbar_keyboard_dark@2x.png
│   ├── inputbar_keyboard_dark@3x.png
│   ├── inputbar_keyboard@2x.png
│   ├── inputbar_keyboard@3x.png
│   ├── inputbar_voice_dark@2x.png
│   ├── inputbar_voice_dark@3x.png
│   ├── inputbar_voice@2x.png
│   ├── inputbar_voice@3x.png
│   ├── keyboard_burn@2x.png
│   ├── keyboard_burn@3x.png
│   ├── Keynote@2x.png
│   ├── Keynote@3x.png
│   ├── map_annotation@2x.png
│   ├── map_annotation@3x.png
│   ├── message_cell_destruct@2x.png
│   ├── message_cell_destruct@3x.png
│   ├── message_cell_select_dark@2x.png
│   ├── message_cell_select_dark@3x.png
│   ├── message_cell_select@2x.png
│   ├── message_cell_select@3x.png
│   ├── message_cell_unselect_dark@2x.png
│   ├── message_cell_unselect_dark@3x.png
│   ├── message_cell_unselect@2x.png
│   ├── message_cell_unselect@3x.png
│   ├── message_fail_dark@2x.png
│   ├── message_fail_dark@3x.png
│   ├── message_fail@2x.png
│   ├── message_fail@3x.png
│   ├── message_read_status@2x.png
│   ├── message_read_status@3x.png
│   ├── Mp3File@2x.png
│   ├── Mp3File@3x.png
│   ├── navigator_btn_back_dark@2x.png
│   ├── navigator_btn_back_dark@3x.png
│   ├── navigator_btn_back@2x.png
│   ├── navigator_btn_back@3x.png
│   ├── navigator_white_back@2x.png
│   ├── network_fail_dark@2x.png
│   ├── network_fail_dark@3x.png
│   ├── network_fail@2x.png
│   ├── network_fail@3x.png
│   ├── no_message_img_dark@2x.png
│   ├── no_message_img@2x.png
│   ├── noSolve-hover.png
│   ├── noSolve.png
│   ├── Numbers@2x.png
│   ├── Numbers@3x.png
│   ├── OtherFile@2x.png
│   ├── OtherFile@3x.png
│   ├── Pages@2x.png
│   ├── Pages@3x.png
│   ├── PdfFile@2x.png
│   ├── PdfFile@3x.png
│   ├── photo_burn@2x.png
│   ├── photo_burn@3x.png
│   ├── photo_preview_selected.png
│   ├── photo_preview_unselected.png
│   ├── photopicker_state_normal.png
│   ├── photopicker_state_selected.png
│   ├── PictureFile@2x.png
│   ├── PictureFile@3x.png
│   ├── play_btn_normal@2x.png
│   ├── play_btn_normal@3x.png
│   ├── play_video@2x.png
│   ├── player_shadow_bottom@2x.png
│   ├── player_shadow_top@2x.png
│   ├── player_slider_pan@2x.png
│   ├── player_start_button@2x.png
│   ├── player_suspend_button@2x.png
│   ├── plugin_item_burn_dark@2x.png
│   ├── plugin_item_burn_dark@3x.png
│   ├── plugin_item_burn_highlighted_dark@2x.png
│   ├── plugin_item_burn_highlighted_dark@3x.png
│   ├── plugin_item_burn_highlighted@2x.png
│   ├── plugin_item_burn_highlighted@3x.png
│   ├── plugin_item_burn@2x.png
│   ├── plugin_item_burn@3x.png
│   ├── plugin_item_camera_dark@2x.png
│   ├── plugin_item_camera_dark@3x.png
│   ├── plugin_item_camera_highlighted_dark@2x.png
│   ├── plugin_item_camera_highlighted_dark@3x.png
│   ├── plugin_item_camera_highlighted@2x.png
│   ├── plugin_item_camera_highlighted@3x.png
│   ├── plugin_item_camera@2x.png
│   ├── plugin_item_camera@3x.png
│   ├── plugin_item_card_dark@2x.png
│   ├── plugin_item_card_dark@3x.png
│   ├── plugin_item_card_highlighted_dark@2x.png
│   ├── plugin_item_card_highlighted_dark@3x.png
│   ├── plugin_item_card_highlighted@2x.png
│   ├── plugin_item_card_highlighted@3x.png
│   ├── plugin_item_card@2x.png
│   ├── plugin_item_card@3x.png
│   ├── plugin_item_file_dark@2x.png
│   ├── plugin_item_file_dark@3x.png
│   ├── plugin_item_file_highlighted_dark@2x.png
│   ├── plugin_item_file_highlighted_dark@3x.png
│   ├── plugin_item_file_highlighted@2x.png
│   ├── plugin_item_file_highlighted@3x.png
│   ├── plugin_item_file@2x.png
│   ├── plugin_item_file@3x.png
│   ├── plugin_item_location_dark@2x.png
│   ├── plugin_item_location_dark@3x.png
│   ├── plugin_item_location_highlighted_dark@2x.png
│   ├── plugin_item_location_highlighted_dark@3x.png
│   ├── plugin_item_location_highlighted@2x.png
│   ├── plugin_item_location_highlighted@3x.png
│   ├── plugin_item_location@2x.png
│   ├── plugin_item_location@3x.png
│   ├── plugin_item_picture_dark@2x.png
│   ├── plugin_item_picture_dark@3x.png
│   ├── plugin_item_picture_highlighted_dark@2x.png
│   ├── plugin_item_picture_highlighted_dark@3x.png
│   ├── plugin_item_picture_highlighted@2x.png
│   ├── plugin_item_picture_highlighted@3x.png
│   ├── plugin_item_picture@2x.png
│   ├── plugin_item_picture@3x.png
│   ├── portrait_kefu@2x.png
│   ├── pptFile@2x.png
│   ├── pptFile@3x.png
│   ├── pub_menu_dark@2x.png
│   ├── pub_menu_dark@3x.png
│   ├── pub_menu@2x.png
│   ├── pub_menu@3x.png
│   ├── public_serive_menu_icon@2x.png
│   ├── public_serive_menu_icon@3x.png
│   ├── public_service_submenu_bg@2x.png
│   ├── public_service_submenu_bg@3x.png
│   ├── rc_conversation_list_msg_sending@2x.png
│   ├── rc_conversation_list_msg_sending@3x.png
│   ├── rc_richcontentmsg_placeholder@2x.png
│   ├── rc_setting@2x.png
│   ├── rc_setting@3x.png
│   ├── receipt_hover.png
│   ├── receipt.png
│   ├── referencing_view_dismiss_icon@2x.png
│   ├── referencing_view_dismiss_icon@3x.png
│   ├── Resolved-hover.png
│   ├── Resolved.png
│   ├── return@2x.png
│   ├── return@3x.png
│   ├── right_arrow@2x.png
│   ├── right_arrow@3x.png
│   ├── selected_full.png
│   ├── sendMsg_failed_tip_dark@2x.png
│   ├── sendMsg_failed_tip_dark@3x.png
│   ├── sendMsg_failed_tip@2x.png
│   ├── sendMsg_failed_tip@3x.png
│   ├── sight_camera_switch@2x.png
│   ├── sight_download_failed@2x.png
│   ├── sight_download_failed@3x.png
│   ├── sight_file_icon@2x.png
│   ├── sight_file_icon@3x.png
│   ├── sight_label_shadow@2x.png
│   ├── sight_list_button@2x.png
│   ├── sight_message_icon@2x.png
│   ├── sight_message_icon@3x.png
│   ├── sight_pause_btn@2x.png
│   ├── sight_pause_btn@3x.png
│   ├── sight_play_btn@2x.png
│   ├── sight_play_btn@3x.png
│   ├── sight_preview_cancel@2x.png
│   ├── sight_preview_cancel@3x.png
│   ├── sight_preview_done@2x.png
│   ├── sight_preview_done@3x.png
│   ├── sight_top_toolbar_close@2x.png
│   ├── sight_top_toolbar_close@3x.png
│   ├── sms-received.caf
│   ├── template.json
│   ├── text_burn_img@2x.png
│   ├── text_burn_img@3x.png
│   ├── TextFile@2x.png
│   ├── TextFile@3x.png
│   ├── to_thumb_image_broken_dark@2x.png
│   ├── to_thumb_image_broken_dark@3x.png
│   ├── to_thumb_image_broken@2x.png
│   ├── to_thumb_image_broken@3x.png
│   ├── to_voice_1_dark@2x.png
│   ├── to_voice_1_dark@3x.png
│   ├── to_voice_1@2x.png
│   ├── to_voice_1@3x.png
│   ├── to_voice_2_dark@2x.png
│   ├── to_voice_2_dark@3x.png
│   ├── to_voice_2@2x.png
│   ├── to_voice_2@3x.png
│   ├── to_voice_3_dark@2x.png
│   ├── to_voice_3_dark@3x.png
│   ├── to_voice_3@2x.png
│   ├── to_voice_3@3x.png
│   ├── translation_from_bg_normal_dark@2x.png
│   ├── translation_from_bg_normal@2x.png
│   ├── unselected_full.png
│   ├── up_dark@2x.png
│   ├── up_dark@3x.png
│   ├── up@2x.png
│   ├── up@3x.png
│   ├── video_icon_play@2x.png
│   ├── VideoFile@2x.png
│   ├── VideoFile@3x.png
│   ├── voice_1.png
│   ├── voice_2.png
│   ├── voice_3.png
│   ├── voice_4.png
│   ├── voice_5.png
│   ├── voice_6.png
│   ├── voice_7.png
│   ├── voice_8.png
│   ├── voice_burn@2x.png
│   ├── voice_burn@3x.png
│   ├── voice_unread@2x.png
│   ├── voice_unread@3x.png
│   ├── voice_volume0@2x.png
│   ├── voip
│   ├── WordFile@2x.png
│   └── WordFile@3x.png
├── sayhi.json
├── SC_Info
│   ├── JACO.sinf
│   ├── JACO.supf
│   ├── JACO.supp
│   ├── JACO.supx
│   └── Manifest.plist
├── selective.json
├── share_screen_audio_loading.json
├── shareView_casting.pag
├── shime.json
├── shortVideoPauseRecord.json
├── shortVideoRecording.json
├── shortVideoStartRecord.json
├── Silence.wav
├── small_playback_lottie.json
├── small_record_lottie.json
├── splash_loading_pag_bmp.pag
├── splash_toHome_pag.pag
├── StickerResource.bundle
│   └── stickers
├── supporter_rank_badge.json
├── SwiftProtobuf.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── textPacketColor.json
├── textTF.bundle
│   ├── Almas.png
│   ├── Almas.ttf
│   ├── ArefRuqaa.png
│   ├── ArefRuqaa.ttf
│   ├── CallOfOpsDuty.otf
│   ├── CallOfOpsDuty.png
│   ├── Classic.png
│   ├── Classic.ttf
│   ├── Dortmund.otf
│   ├── Dortmund.png
│   ├── Kayana.otf
│   ├── Kayana.png
│   ├── Kufam.png
│   ├── Kufam.ttf
│   ├── LamaSans-ExtraBold.otf
│   ├── LamaSans.otf
│   ├── LamaSans.png
│   ├── Mailand.otf
│   ├── Mailand.png
│   ├── NotoNastaliqUrdu.png
│   ├── NotoNastaliqUrdu.ttf
│   ├── RedditSans.png
│   ├── RedditSans.ttf
│   ├── Sarmady.otf
│   ├── Sarmady.png
│   ├── Scheherazade.png
│   ├── Scheherazade.ttf
│   ├── SFArabic.ttf
│   ├── SpicyWasabi.png
│   ├── SpicyWasabi.ttf
│   ├── SuperSedan.png
│   ├── SuperSedan.ttf
│   ├── textTF.json
│   ├── Thestral.otf
│   ├── Thestral.png
│   ├── Vazirmatn.png
│   └── Vazirmatn.ttf
├── thin
├── three_dot.json
├── Toast-Swift.bundle
│   ├── Info.plist
│   └── PrivacyInfo.xcprivacy
├── tongnian_6945244030104649736.png
├── tree.txt
├── TuringShield.bundle
│   └── PrivacyInfo.xcprivacy
├── version.info
├── video_double_like.json
├── video_edit_watermark.png
├── video_favorite.json
├── video_follow.json
├── video_live_now.json
├── video_music_play.json
├── video_survey_great.pag
├── video_survey_not_bad.pag
├── video_survey_poor.pag
├── Warm Man.png
├── Warm.png
├── Warmfood_7165158837891104769.png
├── Water Mist.png
└── ZLPhotoBrowser.bundle
    ├── ar.lproj
    ├── de.lproj
    ├── en.lproj
    ├── es-419.lproj
    ├── fr.lproj
    ├── id.lproj
    ├── it.lproj
    ├── ja-US.lproj
    ├── ko.lproj
    ├── ms.lproj
    ├── pt-BR.lproj
    ├── ru.lproj
    ├── tr.lproj
    ├── vi.lproj
    ├── zh-Hans.lproj
    ├── zh-Hant.lproj
    ├── zl_addPhoto@2x.png
    ├── zl_addPhoto@3x.png
    ├── zl_adjust_selected@2x.png
    ├── zl_adjust_selected@3x.png
    ├── zl_adjust@2x.png
    ├── zl_adjust@3x.png
    ├── zl_albumSelect@2x.png
    ├── zl_albumSelect@3x.png
    ├── zl_arrow_down_dark@3x.png
    ├── zl_arrow_down_light@3x.png
    ├── zl_arrow_down@2x.png
    ├── zl_arrow_down@3x.png
    ├── zl_ashbin_open@2x.png
    ├── zl_ashbin_open@3x.png
    ├── zl_ashbin@2x.png
    ├── zl_ashbin@3x.png
    ├── zl_brightness_selected@2x.png
    ├── zl_brightness_selected@3x.png
    ├── zl_brightness@2x.png
    ├── zl_brightness@3x.png
    ├── zl_btn_circle@2x.png
    ├── zl_btn_circle@3x.png
    ├── zl_btn_original_circle@2x.png
    ├── zl_btn_original_circle@3x.png
    ├── zl_btn_original_selected@2x.png
    ├── zl_btn_original_selected@3x.png
    ├── zl_btn_selected_icon@2x.png
    ├── zl_btn_selected_icon@3x.png
    ├── zl_btn_selected@2x.png
    ├── zl_btn_selected@3x.png
    ├── zl_btn_unselected@2x.png
    ├── zl_btn_unselected@3x.png
    ├── zl_camera_close@2x.png
    ├── zl_camera_close@3x.png
    ├── zl_clip@2x.png
    ├── zl_clip@3x.png
    ├── zl_close@2x.png
    ├── zl_close@3x.png
    ├── zl_contrast_selected@2x.png
    ├── zl_contrast_selected@3x.png
    ├── zl_contrast@2x.png
    ├── zl_contrast@3x.png
    ├── zl_defaultphoto.png
    ├── zl_download_close@3x.png
    ├── zl_drawLine_selected@2x.png
    ├── zl_drawLine_selected@3x.png
    ├── zl_drawLine@2x.png
    ├── zl_drawLine@3x.png
    ├── zl_editImage_tag@2x.png
    ├── zl_editImage_tag@3x.png
    ├── zl_filter_selected@2x.png
    ├── zl_filter_selected@3x.png
    ├── zl_filter@2x.png
    ├── zl_filter@3x.png
    ├── zl_flash_off@2x.png
    ├── zl_flash_off@3x.png
    ├── zl_flash_on@2x.png
    ├── zl_flash_on@3x.png
    ├── zl_focus@2x.png
    ├── zl_focus@3x.png
    ├── zl_ic_left@2x.png
    ├── zl_ic_left@3x.png
    ├── zl_ic_right@2x.png
    ├── zl_ic_right@3x.png
    ├── zl_icon_icloud@2x.png
    ├── zl_icon_icloud@3x.png
    ├── zl_imageSticker@2x.png
    ├── zl_imageSticker@3x.png
    ├── zl_livePhoto@2x.png
    ├── zl_livePhoto@3x.png
    ├── zl_loading_dark@2x.png
    ├── zl_loading_dark@3x.png
    ├── zl_loading_light@2x.png
    ├── zl_loading_light@3x.png
    ├── zl_mix_delete@2x.png
    ├── zl_mix_delete@3x.png
    ├── zl_mosaic_selected@2x.png
    ├── zl_mosaic_selected@3x.png
    ├── zl_mosaic@2x.png
    ├── zl_mosaic@3x.png
    ├── zl_mute_off.png
    ├── zl_mute_on.png
    ├── zl_navBack@2x.png
    ├── zl_navBack@3x.png
    ├── zl_navClose_dark@3x.png
    ├── zl_navClose@3x.png
    ├── zl_pauseButtonWhite@2x.png
    ├── zl_pauseButtonWhite@3x.png
    ├── zl_play_icon.png
    ├── zl_playButtonWhite@2x.png
    ├── zl_playButtonWhite@3x.png
    ├── zl_playVideo@2x.png
    ├── zl_playVideo@3x.png
    ├── zl_preview_nav_bg@3x.png
    ├── zl_redo_disable@2x.png
    ├── zl_redo_disable@3x.png
    ├── zl_redo@2x.png
    ├── zl_redo@3x.png
    ├── zl_retake@2x.png
    ├── zl_retake@3x.png
    ├── zl_revoke_disable@2x.png
    ├── zl_revoke_disable@3x.png
    ├── zl_revoke@2x.png
    ├── zl_revoke@3x.png
    ├── zl_right_arrow@2x.png
    ├── zl_right_arrow@3x.png
    ├── zl_right@2x.png
    ├── zl_right@3x.png
    ├── zl_rotateimage@2x.png
    ├── zl_rotateimage@3x.png
    ├── zl_saturation_selected@2x.png
    ├── zl_saturation_selected@3x.png
    ├── zl_saturation@2x.png
    ├── zl_saturation@3x.png
    ├── zl_shadow@3x.png
    ├── zl_takePhoto@2x.png
    ├── zl_takePhoto@3x.png
    ├── zl_textSticker@2x.png
    ├── zl_textSticker@3x.png
    ├── zl_toggle_camera@2x.png
    ├── zl_toggle_camera@3x.png
    ├── zl_video@2x.png
    ├── zl_video@3x.png
    ├── zl_videoLoadFailed@2x.png
    ├── zl_videoLoadFailed@3x.png
    ├── zl_warning@2x.png
    └── zl_warning@3x.png

287 directories, 862 files