chore: Initial clean commit
- Removed YuMi/Library/ (138 MB, not tracked) - Removed YuMi/Resources/ (23 MB, not tracked) - Removed old version assets (566 files, not tracked) - Excluded Pods/, xcuserdata/ and other build artifacts - Clean repository optimized for company server deployment
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
YuMi/Library/SudMGP.framework/SudMGP filter=lfs diff=lfs merge=lfs -text
|
||||||
|
YuMi/Library/SudMGP.framework/SudMGP !text !filter !merge !diff
|
28
.gitignore
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# CocoaPods
|
||||||
|
Pods/
|
||||||
|
|
||||||
|
# Large resource directories
|
||||||
|
YuMi/Library/
|
||||||
|
YuMi/Resources/
|
||||||
|
|
||||||
|
# Xcode user state
|
||||||
|
*.xcuserstate
|
||||||
|
*.xcworkspace/xcuserdata/
|
||||||
|
*.xcodeproj/xcuserdata/
|
||||||
|
DerivedData/
|
||||||
|
|
||||||
|
# Old version assets (likely deprecated)
|
||||||
|
YuMi/Assets.xcassets/1.0.15/
|
||||||
|
YuMi/Assets.xcassets/1.0.16/
|
||||||
|
YuMi/Assets.xcassets/1.0.17/
|
||||||
|
YuMi/Assets.xcassets/1.0.18/
|
||||||
|
YuMi/Assets.xcassets/1.0.30/
|
||||||
|
YuMi/Assets.xcassets/1.0.31/
|
||||||
|
YuMi/Assets.xcassets/1.0.34/
|
||||||
|
YuMi/Assets.xcassets/20.20.50/
|
||||||
|
YuMi/Assets.xcassets/20.20.51/
|
||||||
|
YuMi/Assets.xcassets/20.20.54/
|
||||||
|
YuMi/Assets.xcassets/20.20.56/
|
||||||
|
YuMi/Assets.xcassets/20.20.59/
|
||||||
|
YuMi/Assets.xcassets/20.20.61/
|
||||||
|
YuMi/Assets.xcassets/20.20.62/
|
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"git.ignoreLimitWarning": true
|
||||||
|
}
|
85
Podfile
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
# Uncomment the next line to define a global platform for your project
|
||||||
|
platform :ios, '13.0'
|
||||||
|
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
|
||||||
|
target 'YuMi' do
|
||||||
|
use_frameworks!
|
||||||
|
#pag动画
|
||||||
|
pod 'libpag'
|
||||||
|
pod 'Bugly'
|
||||||
|
pod 'FBSDKLoginKit'
|
||||||
|
pod 'FBSDKCoreKit'
|
||||||
|
pod 'FBSDKShareKit'
|
||||||
|
# 滑动标签栏
|
||||||
|
pod 'JXCategoryView'
|
||||||
|
pod 'JXPagingView/Pager'
|
||||||
|
#模型转化
|
||||||
|
pod 'MJExtension'
|
||||||
|
#图片加载
|
||||||
|
pod 'SDWebImage'
|
||||||
|
# pod 'SDWebImageWebPCoder' 用于加载 webP
|
||||||
|
pod 'FLAnimatedImage'
|
||||||
|
pod 'SDWebImageFLPlugin' # 对FLAnimatedImage和SDWebImage的桥接
|
||||||
|
pod 'AFNetworking'
|
||||||
|
#文字自动滚动
|
||||||
|
pod 'MarqueeLabel'
|
||||||
|
pod 'YYText'
|
||||||
|
pod 'Masonry'
|
||||||
|
#输入
|
||||||
|
pod 'SZTextView'
|
||||||
|
#头饰显示
|
||||||
|
pod 'YYWebImage'
|
||||||
|
#轮播图
|
||||||
|
pod 'SDCycleScrollView'
|
||||||
|
pod 'ReactiveObjC'
|
||||||
|
pod 'MBProgressHUD'
|
||||||
|
pod 'FFPopup'
|
||||||
|
#下拉刷新控件
|
||||||
|
pod 'MJRefresh'
|
||||||
|
pod 'IQKeyboardManager'
|
||||||
|
pod 'TZImagePickerController'
|
||||||
|
#TRTC
|
||||||
|
pod 'TXLiteAVSDK_TRTC'
|
||||||
|
#vap礼物动画
|
||||||
|
pod 'QGVAPlayer'
|
||||||
|
#上传音乐
|
||||||
|
pod 'CocoaAsyncSocket',:modular_headers => true
|
||||||
|
#声网
|
||||||
|
|
||||||
|
pod 'SSKeychain'
|
||||||
|
pod 'Base64'
|
||||||
|
#pop动画
|
||||||
|
pod 'pop'
|
||||||
|
#云信
|
||||||
|
pod 'NIMSDK_LITE', '~> 10.9.40'
|
||||||
|
pod 'GKCycleScrollView'
|
||||||
|
pod 'SVGAPlayer'
|
||||||
|
pod 'GoogleSignIn'
|
||||||
|
pod 'mob_linksdk_pro'
|
||||||
|
pod 'mob_sharesdk'
|
||||||
|
pod 'mob_sharesdk/ShareSDKPlatforms/Apple'
|
||||||
|
pod 'mob_sharesdk/ShareSDKExtension'
|
||||||
|
|
||||||
|
pod 'UMCommon'
|
||||||
|
pod 'UMDevice'
|
||||||
|
pod 'ZLCollectionViewFlowLayout'
|
||||||
|
pod 'TABAnimated'
|
||||||
|
pod 'YuMi',:path=>'yum'
|
||||||
|
pod 'QCloudCOSXML'
|
||||||
|
pod 'TYCyclePagerView'
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.generated_projects.each do |project|
|
||||||
|
project.targets.each do |target|
|
||||||
|
target.build_configurations.each do |config|
|
||||||
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
|
||||||
|
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
|
||||||
|
config.build_settings['ENABLE_BITCODE'] = 'NO'
|
||||||
|
xcconfig_path = config.base_configuration_reference.real_path
|
||||||
|
xcconfig = File.read(xcconfig_path)
|
||||||
|
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
|
||||||
|
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
305
Podfile.lock
Normal file
@@ -0,0 +1,305 @@
|
|||||||
|
PODS:
|
||||||
|
- AFNetworking (4.0.1):
|
||||||
|
- AFNetworking/NSURLSession (= 4.0.1)
|
||||||
|
- AFNetworking/Reachability (= 4.0.1)
|
||||||
|
- AFNetworking/Security (= 4.0.1)
|
||||||
|
- AFNetworking/Serialization (= 4.0.1)
|
||||||
|
- AFNetworking/UIKit (= 4.0.1)
|
||||||
|
- AFNetworking/NSURLSession (4.0.1):
|
||||||
|
- AFNetworking/Reachability
|
||||||
|
- AFNetworking/Security
|
||||||
|
- AFNetworking/Serialization
|
||||||
|
- AFNetworking/Reachability (4.0.1)
|
||||||
|
- AFNetworking/Security (4.0.1)
|
||||||
|
- AFNetworking/Serialization (4.0.1)
|
||||||
|
- AFNetworking/UIKit (4.0.1):
|
||||||
|
- AFNetworking/NSURLSession
|
||||||
|
- AppAuth (1.7.6):
|
||||||
|
- AppAuth/Core (= 1.7.6)
|
||||||
|
- AppAuth/ExternalUserAgent (= 1.7.6)
|
||||||
|
- AppAuth/Core (1.7.6)
|
||||||
|
- AppAuth/ExternalUserAgent (1.7.6):
|
||||||
|
- AppAuth/Core
|
||||||
|
- Base64 (1.1.2)
|
||||||
|
- Bugly (2.6.1)
|
||||||
|
- CocoaAsyncSocket (7.6.5)
|
||||||
|
- FBAEMKit (14.1.0):
|
||||||
|
- FBSDKCoreKit_Basics (= 14.1.0)
|
||||||
|
- FBSDKCoreKit (14.1.0):
|
||||||
|
- FBAEMKit (= 14.1.0)
|
||||||
|
- FBSDKCoreKit_Basics (= 14.1.0)
|
||||||
|
- FBSDKCoreKit_Basics (14.1.0)
|
||||||
|
- FBSDKLoginKit (14.1.0):
|
||||||
|
- FBSDKCoreKit (= 14.1.0)
|
||||||
|
- FBSDKShareKit (14.1.0):
|
||||||
|
- FBSDKCoreKit (= 14.1.0)
|
||||||
|
- FFPopup (1.1.5)
|
||||||
|
- FLAnimatedImage (1.0.17)
|
||||||
|
- FlyVerifyCSDK (1.0.7)
|
||||||
|
- GKCycleScrollView (1.2.3)
|
||||||
|
- GoogleSignIn (7.1.0):
|
||||||
|
- AppAuth (< 2.0, >= 1.7.3)
|
||||||
|
- GTMAppAuth (< 5.0, >= 4.1.1)
|
||||||
|
- GTMSessionFetcher/Core (~> 3.3)
|
||||||
|
- GTMAppAuth (4.1.1):
|
||||||
|
- AppAuth/Core (~> 1.7)
|
||||||
|
- GTMSessionFetcher/Core (< 4.0, >= 3.3)
|
||||||
|
- GTMSessionFetcher/Core (3.5.0)
|
||||||
|
- IQKeyboardManager (6.5.19)
|
||||||
|
- JXCategoryView (1.6.8)
|
||||||
|
- JXPagingView/Pager (2.1.3)
|
||||||
|
- libpag (4.4.32)
|
||||||
|
- MarqueeLabel (4.4.0)
|
||||||
|
- Masonry (1.1.0)
|
||||||
|
- MBProgressHUD (1.2.0)
|
||||||
|
- MJExtension (3.4.1)
|
||||||
|
- MJRefresh (3.7.6)
|
||||||
|
- mob_linksdk_pro (3.3.20):
|
||||||
|
- MOBFoundation
|
||||||
|
- mob_sharesdk (4.4.35):
|
||||||
|
- mob_sharesdk/ShareSDK (= 4.4.35)
|
||||||
|
- MOBFoundation (>= 3.2.9)
|
||||||
|
- mob_sharesdk/ShareSDK (4.4.35):
|
||||||
|
- MOBFoundation (>= 3.2.9)
|
||||||
|
- mob_sharesdk/ShareSDKExtension (4.4.35):
|
||||||
|
- mob_sharesdk/ShareSDK
|
||||||
|
- MOBFoundation (>= 3.2.9)
|
||||||
|
- mob_sharesdk/ShareSDKPlatforms/Apple (4.4.35):
|
||||||
|
- mob_sharesdk/ShareSDK
|
||||||
|
- MOBFoundation (>= 3.2.9)
|
||||||
|
- MOBFoundation (20250528):
|
||||||
|
- FlyVerifyCSDK (>= 0.0.7)
|
||||||
|
- NIMSDK_LITE (10.9.42):
|
||||||
|
- NIMSDK_LITE/NOS (= 10.9.42)
|
||||||
|
- YXArtemis_XCFramework
|
||||||
|
- NIMSDK_LITE/NOS (10.9.42):
|
||||||
|
- YXArtemis_XCFramework
|
||||||
|
- pop (1.0.12)
|
||||||
|
- Protobuf (3.29.5)
|
||||||
|
- QCloudCore (6.4.9):
|
||||||
|
- QCloudCore/Default (= 6.4.9)
|
||||||
|
- QCloudCore/Default (6.4.9):
|
||||||
|
- QCloudTrack/Beacon (= 6.4.9)
|
||||||
|
- QCloudCOSXML (6.4.9):
|
||||||
|
- QCloudCOSXML/Default (= 6.4.9)
|
||||||
|
- QCloudCOSXML/Default (6.4.9):
|
||||||
|
- QCloudCore (= 6.4.9)
|
||||||
|
- QCloudTrack/Beacon (6.4.9)
|
||||||
|
- QGVAPlayer (1.0.19)
|
||||||
|
- ReactiveObjC (3.1.1)
|
||||||
|
- SDCycleScrollView (1.82):
|
||||||
|
- SDWebImage (>= 5.0.0)
|
||||||
|
- SDWebImage (5.21.1):
|
||||||
|
- SDWebImage/Core (= 5.21.1)
|
||||||
|
- SDWebImage/Core (5.21.1)
|
||||||
|
- SDWebImageFLPlugin (0.6.0):
|
||||||
|
- FLAnimatedImage (>= 1.0.11)
|
||||||
|
- SDWebImage/Core (~> 5.10)
|
||||||
|
- SSKeychain (1.4.1)
|
||||||
|
- SSZipArchive (2.4.3)
|
||||||
|
- SVGAPlayer (2.5.7):
|
||||||
|
- SVGAPlayer/Core (= 2.5.7)
|
||||||
|
- SVGAPlayer/ProtoFiles (= 2.5.7)
|
||||||
|
- SVGAPlayer/Core (2.5.7):
|
||||||
|
- SSZipArchive (>= 1.8.1)
|
||||||
|
- SVGAPlayer/ProtoFiles
|
||||||
|
- SVGAPlayer/ProtoFiles (2.5.7):
|
||||||
|
- Protobuf (~> 3.4)
|
||||||
|
- SZTextView (1.3.0)
|
||||||
|
- TABAnimated (2.6.6)
|
||||||
|
- TXLiteAVSDK_TRTC (12.6.18866):
|
||||||
|
- TXLiteAVSDK_TRTC/TRTC (= 12.6.18866)
|
||||||
|
- TXLiteAVSDK_TRTC/TRTC (12.6.18866)
|
||||||
|
- TYCyclePagerView (1.2.0)
|
||||||
|
- TZImagePickerController (3.8.9):
|
||||||
|
- TZImagePickerController/Basic (= 3.8.9)
|
||||||
|
- TZImagePickerController/Location (= 3.8.9)
|
||||||
|
- TZImagePickerController/Basic (3.8.9)
|
||||||
|
- TZImagePickerController/Location (3.8.9)
|
||||||
|
- UMCommon (7.5.2):
|
||||||
|
- UMDevice
|
||||||
|
- UMDevice (3.4.0)
|
||||||
|
- YuMi (0.0.1)
|
||||||
|
- YXArtemis_XCFramework (1.1.6)
|
||||||
|
- YYCache (1.0.4)
|
||||||
|
- YYImage (1.0.4):
|
||||||
|
- YYImage/Core (= 1.0.4)
|
||||||
|
- YYImage/Core (1.0.4)
|
||||||
|
- YYText (1.0.7)
|
||||||
|
- YYWebImage (1.0.5):
|
||||||
|
- YYCache
|
||||||
|
- YYImage
|
||||||
|
- ZLCollectionViewFlowLayout (1.4.9)
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- AFNetworking
|
||||||
|
- Base64
|
||||||
|
- Bugly
|
||||||
|
- CocoaAsyncSocket
|
||||||
|
- FBSDKCoreKit
|
||||||
|
- FBSDKLoginKit
|
||||||
|
- FBSDKShareKit
|
||||||
|
- FFPopup
|
||||||
|
- FLAnimatedImage
|
||||||
|
- GKCycleScrollView
|
||||||
|
- GoogleSignIn
|
||||||
|
- IQKeyboardManager
|
||||||
|
- JXCategoryView
|
||||||
|
- JXPagingView/Pager
|
||||||
|
- libpag
|
||||||
|
- MarqueeLabel
|
||||||
|
- Masonry
|
||||||
|
- MBProgressHUD
|
||||||
|
- MJExtension
|
||||||
|
- MJRefresh
|
||||||
|
- mob_linksdk_pro
|
||||||
|
- mob_sharesdk
|
||||||
|
- mob_sharesdk/ShareSDKExtension
|
||||||
|
- mob_sharesdk/ShareSDKPlatforms/Apple
|
||||||
|
- NIMSDK_LITE (~> 10.9.40)
|
||||||
|
- pop
|
||||||
|
- QCloudCOSXML
|
||||||
|
- QGVAPlayer
|
||||||
|
- ReactiveObjC
|
||||||
|
- SDCycleScrollView
|
||||||
|
- SDWebImage
|
||||||
|
- SDWebImageFLPlugin
|
||||||
|
- SSKeychain
|
||||||
|
- SVGAPlayer
|
||||||
|
- SZTextView
|
||||||
|
- TABAnimated
|
||||||
|
- TXLiteAVSDK_TRTC
|
||||||
|
- TYCyclePagerView
|
||||||
|
- TZImagePickerController
|
||||||
|
- UMCommon
|
||||||
|
- UMDevice
|
||||||
|
- YuMi (from `yum`)
|
||||||
|
- YYText
|
||||||
|
- YYWebImage
|
||||||
|
- ZLCollectionViewFlowLayout
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
|
||||||
|
- AFNetworking
|
||||||
|
- AppAuth
|
||||||
|
- Base64
|
||||||
|
- Bugly
|
||||||
|
- CocoaAsyncSocket
|
||||||
|
- FBAEMKit
|
||||||
|
- FBSDKCoreKit
|
||||||
|
- FBSDKCoreKit_Basics
|
||||||
|
- FBSDKLoginKit
|
||||||
|
- FBSDKShareKit
|
||||||
|
- FFPopup
|
||||||
|
- FLAnimatedImage
|
||||||
|
- FlyVerifyCSDK
|
||||||
|
- GKCycleScrollView
|
||||||
|
- GoogleSignIn
|
||||||
|
- GTMAppAuth
|
||||||
|
- GTMSessionFetcher
|
||||||
|
- IQKeyboardManager
|
||||||
|
- JXCategoryView
|
||||||
|
- JXPagingView
|
||||||
|
- libpag
|
||||||
|
- MarqueeLabel
|
||||||
|
- Masonry
|
||||||
|
- MBProgressHUD
|
||||||
|
- MJExtension
|
||||||
|
- MJRefresh
|
||||||
|
- mob_linksdk_pro
|
||||||
|
- mob_sharesdk
|
||||||
|
- MOBFoundation
|
||||||
|
- NIMSDK_LITE
|
||||||
|
- pop
|
||||||
|
- Protobuf
|
||||||
|
- QCloudCore
|
||||||
|
- QCloudCOSXML
|
||||||
|
- QCloudTrack
|
||||||
|
- QGVAPlayer
|
||||||
|
- ReactiveObjC
|
||||||
|
- SDCycleScrollView
|
||||||
|
- SDWebImage
|
||||||
|
- SDWebImageFLPlugin
|
||||||
|
- SSKeychain
|
||||||
|
- SSZipArchive
|
||||||
|
- SVGAPlayer
|
||||||
|
- SZTextView
|
||||||
|
- TABAnimated
|
||||||
|
- TXLiteAVSDK_TRTC
|
||||||
|
- TYCyclePagerView
|
||||||
|
- TZImagePickerController
|
||||||
|
- UMCommon
|
||||||
|
- UMDevice
|
||||||
|
- YXArtemis_XCFramework
|
||||||
|
- YYCache
|
||||||
|
- YYImage
|
||||||
|
- YYText
|
||||||
|
- YYWebImage
|
||||||
|
- ZLCollectionViewFlowLayout
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
YuMi:
|
||||||
|
:path: yum
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
|
||||||
|
AppAuth: d4f13a8fe0baf391b2108511793e4b479691fb73
|
||||||
|
Base64: cecfb41a004124895a7bcee567a89bae5a89d49b
|
||||||
|
Bugly: 217ac2ce5f0f2626d43dbaa4f70764c953a26a31
|
||||||
|
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
|
||||||
|
FBAEMKit: a899515e45476027f73aef377b5cffadcd56ca3a
|
||||||
|
FBSDKCoreKit: 24f8bc8d3b5b2a8c5c656a1329492a12e8efa792
|
||||||
|
FBSDKCoreKit_Basics: 6e578c9bdc7aa1365dbbbde633c9ebb536bcaa98
|
||||||
|
FBSDKLoginKit: 787de205d524c3a4b17d527916f1d066e4361660
|
||||||
|
FBSDKShareKit: b9c1cd1fa6a320a50f0f353cf30d589049c8db77
|
||||||
|
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
|
||||||
|
FLAnimatedImage: bbf914596368867157cc71b38a8ec834b3eeb32b
|
||||||
|
FlyVerifyCSDK: e0a13f11d4f29aca7fb7fdcff3f27e3b7ba2de5d
|
||||||
|
GKCycleScrollView: 8ed79d2142e62895a701973358b6f94b661b4829
|
||||||
|
GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db
|
||||||
|
GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de
|
||||||
|
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
|
||||||
|
IQKeyboardManager: c8665b3396bd0b79402b4c573eac345a31c7d485
|
||||||
|
JXCategoryView: 262d503acea0b1278c79a1c25b7332ffaef4d518
|
||||||
|
JXPagingView: afdd2e9af09c90160dd232b970d603cc6e7ddd0e
|
||||||
|
libpag: 6e8253018ee4e7f310c8c07d9d9a89d7ae58ae27
|
||||||
|
MarqueeLabel: d2388949ac58d587303178d56a792ba8a001b037
|
||||||
|
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
|
||||||
|
MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
|
||||||
|
MJExtension: 21c5f6f8c4d5d8844b7ae8fbae08fed0b501f961
|
||||||
|
MJRefresh: 2fe7fb43a5167ceda20bb7e63f130c04fd1814a5
|
||||||
|
mob_linksdk_pro: d6ac555e9bb8d2743a8634032a70ea1d34119a50
|
||||||
|
mob_sharesdk: 409503324d18f231dd27b4d26428c0c168b20c36
|
||||||
|
MOBFoundation: a1f193058aba95440dadeb799fb398ff92cfe45e
|
||||||
|
NIMSDK_LITE: 67f6815667acefdc8f9969f8c955b5c1fab490df
|
||||||
|
pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
|
||||||
|
Protobuf: 164aea2ae380c3951abdc3e195220c01d17400e0
|
||||||
|
QCloudCore: 0e70cda608d1ac485e039e83be1c4a1197197e6b
|
||||||
|
QCloudCOSXML: b7f0b9cac61780a03318d40367a879f8d7eb3d86
|
||||||
|
QCloudTrack: cc101dd57be7f87bffc3f2fb692a781d5efeda98
|
||||||
|
QGVAPlayer: a0bca68c9bd6f1c8de5ac2d10ddf98be6038cce9
|
||||||
|
ReactiveObjC: 011caa393aa0383245f2dcf9bf02e86b80b36040
|
||||||
|
SDCycleScrollView: a0d74c3384caa72bdfc81470bdbc8c14b3e1fbcf
|
||||||
|
SDWebImage: f29024626962457f3470184232766516dee8dfea
|
||||||
|
SDWebImageFLPlugin: 72efd2cfbf565bc438421abb426f4bcf7b670754
|
||||||
|
SSKeychain: 55cc80f66f5c73da827e3077f02e43528897db41
|
||||||
|
SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
|
||||||
|
SVGAPlayer: 318b85a78b61292d6ae9dfcd651f3f0d1cdadd86
|
||||||
|
SZTextView: 094dc6acc9beec537685c545d6e3e0d4975174e1
|
||||||
|
TABAnimated: 75fece541a774193565697c7a11539d3c6f631b3
|
||||||
|
TXLiteAVSDK_TRTC: 09552a5bb5571c85c851d8dd858064724639f55e
|
||||||
|
TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
|
||||||
|
TZImagePickerController: 456f470b5dea97b37226ec7a694994a8663340b2
|
||||||
|
UMCommon: 72513a01ebca2dead52f2112b4d7c6196dbbe412
|
||||||
|
UMDevice: dcdf7ec167387837559d149fbc7d793d984faf82
|
||||||
|
YuMi: 6c5f00f1eccbcea3304feae03cbe659025fdb9cb
|
||||||
|
YXArtemis_XCFramework: d9a8b9439d7a6c757ed00ada53a6d2dd9b13f9c7
|
||||||
|
YYCache: 8105b6638f5e849296c71f331ff83891a4942952
|
||||||
|
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54
|
||||||
|
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||||
|
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
|
||||||
|
ZLCollectionViewFlowLayout: c99024652ce9f0c57d33ab53052c9b85e4a936b7
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 7ad0836a1e150b834d6bc44d667cccc19171d570
|
||||||
|
|
||||||
|
COCOAPODS: 1.16.2
|
13825
YuMi.xcodeproj/project.pbxproj
Normal file
7
YuMi.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "self:">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
85
YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1250"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "189DD52826DE255300AB55B1"
|
||||||
|
BuildableName = "YuMi.app"
|
||||||
|
BlueprintName = "YuMi"
|
||||||
|
ReferencedContainer = "container:YuMi.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "189DD52826DE255300AB55B1"
|
||||||
|
BuildableName = "YuMi.app"
|
||||||
|
BlueprintName = "YuMi"
|
||||||
|
ReferencedContainer = "container:YuMi.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
<EnvironmentVariables>
|
||||||
|
<EnvironmentVariable
|
||||||
|
key = "OS_ACTIVITY_MODE"
|
||||||
|
value = "disable"
|
||||||
|
isEnabled = "NO">
|
||||||
|
</EnvironmentVariable>
|
||||||
|
</EnvironmentVariables>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "189DD52826DE255300AB55B1"
|
||||||
|
BuildableName = "YuMi.app"
|
||||||
|
BlueprintName = "YuMi"
|
||||||
|
ReferencedContainer = "container:YuMi.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
10
YuMi.xcworkspace/contents.xcworkspacedata
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "group:YuMi.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
8
YuMi.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
21
YuMi/Appdelegate/AppDelegate+ThirdConfig.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
//
|
||||||
|
// AppDelegate+ThirdConfig.h
|
||||||
|
// YUMI
|
||||||
|
//
|
||||||
|
// Created by YUMI on 2021/9/13.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "AppDelegate.h"
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface AppDelegate (ThirdConfig)
|
||||||
|
/// 初始化一些第三方配置
|
||||||
|
- (void)initThirdConfig;
|
||||||
|
/**
|
||||||
|
设置广告页
|
||||||
|
*/
|
||||||
|
- (void)setupLaunchADView;
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
243
YuMi/Appdelegate/AppDelegate+ThirdConfig.m
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
//
|
||||||
|
// AppDelegate+ThirdConfig.m
|
||||||
|
// YUMI
|
||||||
|
//
|
||||||
|
// Created by YUMI on 2021/9/13.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "AppDelegate+ThirdConfig.h"
|
||||||
|
///Third
|
||||||
|
#import <NIMSDK/NIMSDK.h>
|
||||||
|
#import <ShareSDK/ShareSDK.h>
|
||||||
|
#import <UserNotifications/UNUserNotificationCenter.h>
|
||||||
|
#import <UserNotifications/UserNotifications.h>
|
||||||
|
#import <MOBFoundation/MobSDK+Privacy.h>
|
||||||
|
///Tool
|
||||||
|
#import "YUMIConstant.h"
|
||||||
|
#import "CustomAttachmentDecoder.h"
|
||||||
|
#import "QEmotionHelper.h"
|
||||||
|
#import "XPAdvertiseView.h"
|
||||||
|
#import "XPAdImageTool.h"
|
||||||
|
#import "YUMIMacroUitls.h"
|
||||||
|
#import "AdvertiseModel.h"
|
||||||
|
#import "XPWebViewController.h"
|
||||||
|
#import "XPRoomViewController.h"
|
||||||
|
#import "XCCurrentVCStackManager.h"
|
||||||
|
#import "ClientConfig.h"
|
||||||
|
#import <UserNotifications/UserNotifications.h>
|
||||||
|
|
||||||
|
#import <Bugly/Bugly.h>
|
||||||
|
#import "BuglyManager.h"
|
||||||
|
#import <UIKit/UIDevice.h>
|
||||||
|
|
||||||
|
#import "YuMi-swift.h"
|
||||||
|
|
||||||
|
UIKIT_EXTERN NSString * kYouMiNumberCountKey;
|
||||||
|
UIKIT_EXTERN NSString * adImageName;
|
||||||
|
|
||||||
|
@implementation AppDelegate (ThirdConfig)
|
||||||
|
|
||||||
|
/// 初始化一些第三方配置
|
||||||
|
- (void)initThirdConfig{
|
||||||
|
[self setLanguage];
|
||||||
|
[self configShareSDK];
|
||||||
|
[self configNIMSDK];
|
||||||
|
[self configBugly];
|
||||||
|
[self registerNot];
|
||||||
|
[self initEmojiData];
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)setLanguage{
|
||||||
|
UISemanticContentAttribute attribute = UISemanticContentAttributeForceLeftToRight;
|
||||||
|
if (isMSRTL()) {
|
||||||
|
attribute = UISemanticContentAttributeForceRightToLeft;
|
||||||
|
}
|
||||||
|
|
||||||
|
[UIView appearance].semanticContentAttribute = attribute;
|
||||||
|
[UISearchBar appearance].semanticContentAttribute = attribute;
|
||||||
|
}
|
||||||
|
|
||||||
|
-(void)registerNot{
|
||||||
|
if (@available(iOS 10.0, *)) {
|
||||||
|
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
||||||
|
[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError * _Nullable error) {
|
||||||
|
if (granted) {
|
||||||
|
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
|
||||||
|
if (settings.authorizationStatus == UNAuthorizationStatusAuthorized){
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
|
[[UIApplication sharedApplication] registerForRemoteNotifications];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
崩溃收集 Bugly
|
||||||
|
*/
|
||||||
|
|
||||||
|
- (void) configBugly {
|
||||||
|
// 使用 BuglyManager 统一管理 Bugly 配置
|
||||||
|
#ifdef DEBUG
|
||||||
|
[[BuglyManager sharedManager] configureWithAppId:@"c937fd00f7" debug:YES];
|
||||||
|
#else
|
||||||
|
[[BuglyManager sharedManager] configureWithAppId:@"8627948559" debug:NO];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
- (void)configNIMSDK {
|
||||||
|
//推荐在程序启动的时候初始化 NIMSDK
|
||||||
|
NSString *appKey = [[ClientConfig shareConfig].configInfo nimKey];
|
||||||
|
if ([NSString isEmpty:appKey]) {
|
||||||
|
appKey = KeyWithType(KeyType_NetEase);
|
||||||
|
}
|
||||||
|
|
||||||
|
NIMSDKOption *option = [NIMSDKOption optionWithAppKey:appKey];
|
||||||
|
#ifdef DEBUG
|
||||||
|
option.apnsCername = @"pikoDevelopPush";
|
||||||
|
#else
|
||||||
|
option.apnsCername = @"newPiko";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
[[NIMSDK sharedSDK] registerWithOption:option];
|
||||||
|
|
||||||
|
// NIM SDK初始化
|
||||||
|
[NIMCustomObject registerCustomDecoder:[[CustomAttachmentDecoder alloc] init]];
|
||||||
|
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
|
||||||
|
[NIMSDKConfig sharedConfig].shouldConsiderRevokedMessageUnreadCount = YES;
|
||||||
|
|
||||||
|
// cdn统计回调不触发
|
||||||
|
[NIMSDKConfig sharedConfig].cdnTrackInterval = 0;
|
||||||
|
|
||||||
|
// 最小时间间隔设置为最小边界值
|
||||||
|
[NIMSDKConfig sharedConfig].chatroomMessageReceiveMinInterval = 50;
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
[NIMSDKConfig sharedConfig].enabledHttpsForInfo = NO;
|
||||||
|
[NIMSDKConfig sharedConfig].enabledHttpsForMessage = NO;
|
||||||
|
#else
|
||||||
|
// 生产环境启用HTTPS
|
||||||
|
[NIMSDKConfig sharedConfig].enabledHttpsForInfo = YES;
|
||||||
|
[NIMSDKConfig sharedConfig].enabledHttpsForMessage = YES;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)configShareSDK {
|
||||||
|
|
||||||
|
// [PILineLoginManager registerLine];
|
||||||
|
|
||||||
|
[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
|
||||||
|
///faceBook
|
||||||
|
// [platformsRegister setupFacebookWithAppkey:@"1266232494209868" appSecret:@"c9b170b383f8be9cdf118823b8632821" displayName:YMLocalizedString(@"AppDelegate_ThirdConfig0")];
|
||||||
|
[platformsRegister setupLineAuthType:SSDKAuthorizeTypeBoth];
|
||||||
|
}];
|
||||||
|
|
||||||
|
NSString *isUpload = [[NSUserDefaults standardUserDefaults]valueForKey:@"kMobLinkUploadPrivacy"];
|
||||||
|
if (isUpload == nil){
|
||||||
|
[MobSDK uploadPrivacyPermissionStatus:YES onResult:nil];
|
||||||
|
[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"kMobLinkUploadPrivacy"];
|
||||||
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - 表情
|
||||||
|
- (void)initEmojiData {
|
||||||
|
dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
||||||
|
NSArray * dicArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"emoji" ofType:@"plist"]];
|
||||||
|
NSDictionary * dic = [dicArray firstObject];
|
||||||
|
NSArray * emojiArray = dic[@"data"];
|
||||||
|
NSMutableArray * array = [NSMutableArray array];
|
||||||
|
for (int i = 0; i < emojiArray.count; i++) {
|
||||||
|
|
||||||
|
NSDictionary * emotionDic = [emojiArray xpSafeObjectAtIndex:i];
|
||||||
|
if (!emotionDic) continue;
|
||||||
|
|
||||||
|
UIImage * image = [UIImage imageNamed:emotionDic[@"file"]];
|
||||||
|
QEmotion * info = [[QEmotion alloc] init];
|
||||||
|
|
||||||
|
info.displayName = emotionDic[@"tag"];
|
||||||
|
info.identifier = emotionDic[@"id"];
|
||||||
|
info.image = image;
|
||||||
|
|
||||||
|
[array addObject:info];
|
||||||
|
}
|
||||||
|
//在这里强烈建议先预加载一下表情
|
||||||
|
QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper];
|
||||||
|
faceManager.emotionArray = array;
|
||||||
|
|
||||||
|
// 清理 emoji 缓存,确保新的尺寸设置生效
|
||||||
|
[QEmotionHelper clearEmojiCache];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - 广告
|
||||||
|
|
||||||
|
/**
|
||||||
|
设置广告页
|
||||||
|
*/
|
||||||
|
- (void)setupLaunchADView {
|
||||||
|
NSUserDefaults * kUserDefaults = NSUserDefaults.standardUserDefaults;
|
||||||
|
// 判断沙盒中是否存在广告图片,如果存在,直接显示
|
||||||
|
NSString *adName = [kUserDefaults stringForKey:adImageName];
|
||||||
|
NSString *filePath = [XPAdImageTool.shareImageTool getFilePathWithImageName:adName];
|
||||||
|
BOOL isExist = [XPAdImageTool.shareImageTool isFileExistWithFilePath:filePath];
|
||||||
|
|
||||||
|
if (isExist) {// 图片存在
|
||||||
|
// if ([kUserDefaults integerForKey:@"adShow"] > 4) {
|
||||||
|
@kWeakify(self);
|
||||||
|
AdvertiseModel *info = [XPAdImageTool.shareImageTool getAdInfoFromCacheInMainWith:adName];
|
||||||
|
XPAdvertiseView *advertiseView = [[XPAdvertiseView alloc] initWithFrame:self.window.bounds];
|
||||||
|
advertiseView.type = info.type;
|
||||||
|
advertiseView.fileModel = info.fillVo;
|
||||||
|
advertiseView.filePath = filePath;
|
||||||
|
advertiseView.dismissHandler = ^(BOOL shouldJump) {
|
||||||
|
@kStrongify(self)
|
||||||
|
if (!shouldJump || info == nil) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
[self advertiseJumpHandleWithInfo:info];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
[advertiseView show];
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// 闪屏广告跳转处理
|
||||||
|
- (void)advertiseJumpHandleWithInfo:(AdvertiseModel *)info {
|
||||||
|
if (UIApplication.sharedApplication.keyWindow != self.window) {
|
||||||
|
//当前窗口不是主控制器所在窗口时,拦截跳转(目前可能情况时,闪屏后出现新人引导
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (info.type) {
|
||||||
|
case SplashInfoSkipTypeRoom: {
|
||||||
|
if (![[XPAdImageTool shareImageTool] isImLogin]) {
|
||||||
|
return; // 必须登录后才可以跳转
|
||||||
|
}
|
||||||
|
// 跳转房间
|
||||||
|
if (info.link.length > 0) {
|
||||||
|
[XPRoomViewController openRoom:info.link viewController:[XCCurrentVCStackManager shareManager].getCurrentVC];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SplashInfoSkipTypeWeb:
|
||||||
|
case SplashInfoSkipTypeWeb_CP:
|
||||||
|
case SplashInfoSkipTypeWeb_Custom:
|
||||||
|
case SplashInfoSkipTypeWeb_WeekStar: {
|
||||||
|
// 跳转 H5
|
||||||
|
if (info.link.length > 0) {
|
||||||
|
XPWebViewController *webView = [[XPWebViewController alloc] initWithRoomUID:nil];
|
||||||
|
webView.url = info.link;
|
||||||
|
[[[XCCurrentVCStackManager shareManager]currentNavigationController] pushViewController:webView animated:YES];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@end
|
20
YuMi/Appdelegate/AppDelegate.h
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
//
|
||||||
|
// AppDelegate.h
|
||||||
|
// YUMI
|
||||||
|
//
|
||||||
|
// Created by admin on 2023/3/9.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#import <CoreData/CoreData.h>
|
||||||
|
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
||||||
|
|
||||||
|
@property (strong, nonatomic) UIWindow *window;
|
||||||
|
@property(nonatomic,strong,readonly)NSManagedObjectContext *managedObjectContext;
|
||||||
|
@property(nonatomic,strong,readonly)NSManagedObjectModel *managedObjectModel;
|
||||||
|
@property(nonatomic,strong,readonly)NSPersistentStoreCoordinator *persistentStoreCoordinator;
|
||||||
|
|
||||||
|
- (void)saveContext;
|
||||||
|
- (NSURL *)applicationDocumentsDirectory;
|
||||||
|
@end
|
||||||
|
|
326
YuMi/Appdelegate/AppDelegate.m
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
//
|
||||||
|
// AppDelegate.m
|
||||||
|
// YUMI
|
||||||
|
//
|
||||||
|
// Created by admin on 2023/3/9.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#import "AppDelegate.h"
|
||||||
|
#import <UMCommon/UMCommon.h>
|
||||||
|
#import <MobLinkPro/MobLink.h>
|
||||||
|
#import <MobLinkPro/MLSDKScene.h>
|
||||||
|
#import "TabbarViewController.h"
|
||||||
|
#import "BaseNavigationController.h"
|
||||||
|
#import "AppDelegate+ThirdConfig.h"
|
||||||
|
#import <NIMSDK/NIMSDK.h>
|
||||||
|
#import <AppTrackingTransparency/AppTrackingTransparency.h>
|
||||||
|
#import "ClientConfig.h"
|
||||||
|
#import <GoogleSignIn/GoogleSignIn.h>
|
||||||
|
#import <GoogleSignIn/GoogleSignIn.h>
|
||||||
|
#import "LoginViewController.h"
|
||||||
|
#import "AccountModel.h"
|
||||||
|
#import "YuMi-swift.h"
|
||||||
|
#import "SessionViewController.h"
|
||||||
|
#import "LoginFullInfoViewController.h"
|
||||||
|
#import "UIView+VAP.h"
|
||||||
|
#import "SocialShareManager.h"
|
||||||
|
|
||||||
|
UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
||||||
|
|
||||||
|
@interface AppDelegate ()<IMLSDKRestoreDelegate>
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation AppDelegate
|
||||||
|
|
||||||
|
//日志接口
|
||||||
|
void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const char* func, NSString *module, NSString *format, ...) {
|
||||||
|
|
||||||
|
// 屏蔽 MP4 播放 log
|
||||||
|
return;
|
||||||
|
|
||||||
|
// if (format.UTF8String == nil) {
|
||||||
|
// NSLog(@"log包含非utf-8字符");
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// if (level > VAPLogLevelDebug) {
|
||||||
|
// va_list argList;
|
||||||
|
// va_start(argList, format);
|
||||||
|
// NSString* message = [[NSString alloc] initWithFormat:format arguments:argList];
|
||||||
|
// file = [NSString stringWithUTF8String:file].lastPathComponent.UTF8String;
|
||||||
|
// NSLog(@"<%@> %s(%@):%s [%@] - %@",@(level), file, @(line), func, module, message);
|
||||||
|
// va_end(argList);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||||
|
|
||||||
|
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||||
|
|
||||||
|
UIStoryboard *launchStoryboard = [UIStoryboard storyboardWithName:@"Launch Screen" bundle:nil];
|
||||||
|
UIViewController *launchScreenVC = [launchStoryboard instantiateInitialViewController];
|
||||||
|
self.window.rootViewController = launchScreenVC;
|
||||||
|
[self.window makeKeyAndVisible];
|
||||||
|
|
||||||
|
[VAPView registerHWDLog:qg_VAP_Logger_handler];
|
||||||
|
|
||||||
|
///初始化一些 sdk配置
|
||||||
|
[self initThirdConfig];
|
||||||
|
[self initUM:application launchOptions:launchOptions];
|
||||||
|
|
||||||
|
@kWeakify(self);
|
||||||
|
[[ClientConfig shareConfig] clientConfig:^{
|
||||||
|
@kStrongify(self);
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
|
[self loadMainPage];
|
||||||
|
[self setupLaunchADView];
|
||||||
|
});
|
||||||
|
}];
|
||||||
|
|
||||||
|
if (@available(iOS 15, *)) {
|
||||||
|
[[UITableView appearance] setSectionHeaderTopPadding:0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)initUM:(UIApplication *)application
|
||||||
|
launchOptions:(NSDictionary *)launchOptions {
|
||||||
|
// 只有同意过了隐私协议 才初始化
|
||||||
|
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"kYouMinumbernnagna"]) {
|
||||||
|
///初始化友盟
|
||||||
|
[UMConfigure initWithAppkey:@"6434c6dfd64e686139618269"
|
||||||
|
channel:@"appstore"];
|
||||||
|
}
|
||||||
|
[MobLink setDelegate:self];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)loadMainPage {
|
||||||
|
AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo];
|
||||||
|
if (accountModel == nil ||
|
||||||
|
accountModel.uid == nil ||
|
||||||
|
accountModel.access_token == nil) {
|
||||||
|
[self toLoginPage];
|
||||||
|
}else{
|
||||||
|
[self toHomeTabbarPage];
|
||||||
|
}
|
||||||
|
|
||||||
|
[[ClientConfig shareConfig] clientInit];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)toLoginPage {
|
||||||
|
LoginViewController *lvc = [[LoginViewController alloc] init];
|
||||||
|
BaseNavigationController * navigationController = [[BaseNavigationController alloc] initWithRootViewController:lvc];
|
||||||
|
navigationController.modalPresentationStyle = UIModalPresentationFullScreen;
|
||||||
|
self.window.rootViewController = navigationController;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)toHomeTabbarPage {
|
||||||
|
TabbarViewController *vc = [[TabbarViewController alloc] init];
|
||||||
|
BaseNavigationController *navigationController = [[BaseNavigationController alloc] initWithRootViewController:vc];
|
||||||
|
self.window.rootViewController = navigationController;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)IMLSDKWillRestoreScene:(MLSDKScene *)scene
|
||||||
|
Restore:(void (^)(BOOL, RestoreStyle))restoreHandler {
|
||||||
|
NSString *inviteCode = scene.params[@"inviteCode"];
|
||||||
|
if (inviteCode != nil && [[AccountInfoStorage instance]getUid].length == 0){
|
||||||
|
ClientConfig *config = [ClientConfig shareConfig];
|
||||||
|
config.inviteCode = inviteCode;
|
||||||
|
}
|
||||||
|
restoreHandler(YES, MLDefault);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
||||||
|
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
|
||||||
|
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:count];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||||
|
[self getAdvertisingTrackingAuthority];
|
||||||
|
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAppDidBecomeActive" object:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)getAdvertisingTrackingAuthority {
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
if (@available(iOS 14, *)) {
|
||||||
|
ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
|
||||||
|
switch (status) {
|
||||||
|
case ATTrackingManagerAuthorizationStatusDenied:
|
||||||
|
// NSLog(@"用户拒绝IDFA");
|
||||||
|
break;
|
||||||
|
case ATTrackingManagerAuthorizationStatusAuthorized:
|
||||||
|
// NSLog(@"用户允许IDFA");
|
||||||
|
break;
|
||||||
|
case ATTrackingManagerAuthorizationStatusNotDetermined: {
|
||||||
|
// NSLog(@"用户未做选择或未弹窗IDFA");
|
||||||
|
//请求弹出用户授权框,只会在程序运行是弹框1次,除非卸载app重装,通地图、相机等权限弹框一样
|
||||||
|
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
|
||||||
|
// NSLog(@"app追踪IDFA权限:%lu",(unsigned long)status);
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
||||||
|
// 上传devicetoken至云信服务器。
|
||||||
|
[[NIMSDK sharedSDK] updateApnsToken:deviceToken ];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{
|
||||||
|
|
||||||
|
NSString *data = userInfo[@"data"];
|
||||||
|
if(data){
|
||||||
|
NSDictionary *dataDic = [data mj_JSONObject];
|
||||||
|
NSString *userId = dataDic[@"uid"];
|
||||||
|
if(userId){
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
[[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"type":@"kOpenChat",@"uid":userId,@"isNoAttention":@(YES)}];
|
||||||
|
ClientConfig *config = [ClientConfig shareConfig];
|
||||||
|
config.pushChatId = userId;
|
||||||
|
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
NSString *userId = userInfo[@"uid"];
|
||||||
|
if(userId){
|
||||||
|
[[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"type":@"kOpenChat",@"uid":userId,@"isNoAttention":@(YES)}];
|
||||||
|
ClientConfig *config = [ClientConfig shareConfig];
|
||||||
|
config.pushChatId = userId;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
///URL Scheme跳转
|
||||||
|
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
|
||||||
|
[[SocialShareManager sharedManager] handleURL:url];
|
||||||
|
|
||||||
|
return [GIDSignIn.sharedInstance handleURL:url];
|
||||||
|
}
|
||||||
|
|
||||||
|
//- (void)__oldApplicationOpenURLMethod:(NSURL *)url {
|
||||||
|
// NSString *text = [url query];
|
||||||
|
// if(text.length){
|
||||||
|
// NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
|
||||||
|
// NSArray *paramArray = [text componentsSeparatedByString:@"&"];
|
||||||
|
// for (NSString *param in paramArray) {
|
||||||
|
// if (param && param.length) {
|
||||||
|
// NSArray *parArr = [param componentsSeparatedByString:@"="];
|
||||||
|
// if (parArr.count == 2) {
|
||||||
|
// [paramsDict setObject:parArr[1] forKey:parArr[0]];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if(paramsDict[@"type"] != nil){
|
||||||
|
// NSInteger type = [paramsDict[@"type"] integerValue];
|
||||||
|
// if (type == 2) {
|
||||||
|
// NSString *uid = [NSString stringWithFormat:@"%@",paramsDict[@"uid"]];
|
||||||
|
// [[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"uid":uid}];
|
||||||
|
// ClientConfig *config = [ClientConfig shareConfig];
|
||||||
|
// config.roomId = uid;
|
||||||
|
// }else if(type == 7){
|
||||||
|
// NSString *uid = [NSString stringWithFormat:@"%@",paramsDict[@"uid"]];
|
||||||
|
// [[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"type":@"kOpenChat",@"uid":uid}];
|
||||||
|
// ClientConfig *config = [ClientConfig shareConfig];
|
||||||
|
// config.chatId = uid;
|
||||||
|
// }else if (type == 8){
|
||||||
|
// NSString *inviteCode = paramsDict[@"inviteCode"];
|
||||||
|
// if (inviteCode != nil && [[AccountInfoStorage instance]getUid].length == 0){
|
||||||
|
// ClientConfig *config = [ClientConfig shareConfig];
|
||||||
|
// config.inviteCode = inviteCode;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//// return YES;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
#pragma mark - Core Data stack
|
||||||
|
@synthesize managedObjectContext = _managedObjectContext;
|
||||||
|
@synthesize managedObjectModel = _managedObjectModel;
|
||||||
|
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
|
||||||
|
|
||||||
|
-(NSURL *)applicationDocumentsDirectory{
|
||||||
|
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSManagedObjectModel *)managedObjectModel {
|
||||||
|
// The managed object model for the application. It is a fatal error for the application not to be able to find and load its model.
|
||||||
|
if (_managedObjectModel != nil) {
|
||||||
|
return _managedObjectModel;
|
||||||
|
}
|
||||||
|
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"_1_______" withExtension:@"momd"];
|
||||||
|
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
|
||||||
|
return _managedObjectModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
|
||||||
|
// The persistent store coordinator for the application. This implementation creates and returns a coordinator, having added the store for the application to it.
|
||||||
|
if (_persistentStoreCoordinator != nil) {
|
||||||
|
return _persistentStoreCoordinator;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the coordinator and store
|
||||||
|
|
||||||
|
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
|
||||||
|
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"_1_______.sqlite"];
|
||||||
|
NSError *error = nil;
|
||||||
|
NSString *failureReason = @"There was an error creating or loading the application's saved data.";
|
||||||
|
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
|
||||||
|
// Report any error we got.
|
||||||
|
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
||||||
|
dict[NSLocalizedDescriptionKey] = @"Failed to initialize the application's saved data";
|
||||||
|
dict[NSLocalizedFailureReasonErrorKey] = failureReason;
|
||||||
|
dict[NSUnderlyingErrorKey] = error;
|
||||||
|
error = [NSError errorWithDomain:@"YOUR_ERROR_DOMAIN" code:9999 userInfo:dict];
|
||||||
|
// Replace this with code to handle the error appropriately.
|
||||||
|
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
|
||||||
|
// NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _persistentStoreCoordinator;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (NSManagedObjectContext *)managedObjectContext {
|
||||||
|
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.)
|
||||||
|
if (_managedObjectContext != nil) {
|
||||||
|
return _managedObjectContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
|
||||||
|
if (!coordinator) {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
|
||||||
|
[_managedObjectContext setPersistentStoreCoordinator:coordinator];
|
||||||
|
return _managedObjectContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma mark - Core Data Saving support
|
||||||
|
|
||||||
|
- (void)saveContext {
|
||||||
|
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
|
||||||
|
if (managedObjectContext != nil) {
|
||||||
|
NSError *error = nil;
|
||||||
|
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
|
||||||
|
// Replace this implementation with code to handle the error appropriately.
|
||||||
|
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
|
||||||
|
// NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
16
YuMi/Appdelegate/YYTextAsyncLayer+PITextAsyncLayer.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// YYTextAsyncLayer+PITextAsyncLayer.h
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/10/28.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <YYText/YYTextAsyncLayer.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface YYTextAsyncLayer (PITextAsyncLayer)
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
26
YuMi/Appdelegate/YYTextAsyncLayer+PITextAsyncLayer.m
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// YYTextAsyncLayer+PITextAsyncLayer.m
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/10/28.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "YYTextAsyncLayer+PITextAsyncLayer.h"
|
||||||
|
|
||||||
|
@implementation YYTextAsyncLayer (PITextAsyncLayer)
|
||||||
|
///iOS17bug,如果不把方法替换会闪退
|
||||||
|
+(void)load {
|
||||||
|
Method displayMethod = class_getInstanceMethod(self, @selector(display));
|
||||||
|
Method swizzingMethod = class_getInstanceMethod(self, @selector(swizzing_display));
|
||||||
|
method_exchangeImplementations(displayMethod, swizzingMethod);
|
||||||
|
}
|
||||||
|
-(void)swizzing_display{
|
||||||
|
//通过变量名称获取类中的实例成员变量
|
||||||
|
if (self.bounds.size.width <= 0 || self.bounds.size.height <= 0) {
|
||||||
|
self.contents = nil;
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
[self swizzing_display];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@end
|
BIN
YuMi/Assets.xcassets/AppIcon.appiconset/1024_副本.png
Normal file
After Width: | Height: | Size: 45 KiB |
14
YuMi/Assets.xcassets/AppIcon.appiconset/Contents.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "1024_副本.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"platform" : "ios",
|
||||||
|
"size" : "1024x1024"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
6
YuMi/Assets.xcassets/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
6
YuMi/Assets.xcassets/Language/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
6
YuMi/Assets.xcassets/Language/ar/Contents.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
21
YuMi/Assets.xcassets/Language/ar/YearActivity_goto_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "YearActivity_goto_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/YearActivity_goto_ar.imageset/YearActivity_goto_ar.png
vendored
Normal file
After Width: | Height: | Size: 4.7 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchorPK_result_fail_headWear_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchorPK_result_fail_headWear_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 38 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchorPK_result_tie_headWear_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchorPK_result_tie_headWear_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 35 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchorPK_result_win_headWear_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchorPK_result_win_headWear_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 33 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchorPk_micro_result_fail_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchorPk_micro_result_fail_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 8.8 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchorPk_micro_result_tie_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchorPk_micro_result_tie_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 10 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchorPk_micro_result_win_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchorPk_micro_result_win_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 9.1 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchor_fansTeam_nameplate_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchor_fansTeam_nameplate_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 3.4 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchor_fansTeam_task_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchor_fansTeam_task_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/anchor_fansTeam_task_ar.imageset/anchor_fansTeam_task_ar.png
vendored
Normal file
After Width: | Height: | Size: 2.4 KiB |
21
YuMi/Assets.xcassets/Language/ar/anchor_hour_rank_icon_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "anchor_hour_rank_icon_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/anchor_hour_rank_icon_ar.imageset/anchor_hour_rank_icon_ar.png
vendored
Normal file
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
21
YuMi/Assets.xcassets/Language/ar/bravo_speaker_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "4cc1494e9e1f9153726ebc7fb2d5d12ef75635b53fe46-nx2IAX_fw480@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
21
YuMi/Assets.xcassets/Language/ar/common_super_admin_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "common_super_admin_arpng.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/common_super_admin_ar.imageset/common_super_admin_arpng.png
vendored
Normal file
After Width: | Height: | Size: 3.8 KiB |
21
YuMi/Assets.xcassets/Language/ar/cp_message_icon_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "icon@3x (1).png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/cp_message_icon_ar.imageset/icon@3x (1).png
vendored
Normal file
After Width: | Height: | Size: 41 KiB |
21
YuMi/Assets.xcassets/Language/ar/entrance_activities_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "游戏@3x (1).png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/entrance_activities_ar.imageset/游戏@3x (1).png
vendored
Normal file
After Width: | Height: | Size: 202 KiB |
21
YuMi/Assets.xcassets/Language/ar/gift_first_recharge_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "gift_first_recharge_bg_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/gift_first_recharge_bg_ar.imageset/gift_first_recharge_bg_ar.png
vendored
Normal file
After Width: | Height: | Size: 2.9 KiB |
21
YuMi/Assets.xcassets/Language/ar/gift_twelve_star_Banner_naming_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "gift_twelve_star_Banner_naming_bg_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 96 KiB |
21
YuMi/Assets.xcassets/Language/ar/gift_twelve_star_Banner_rich_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "gift_twelve_star_Banner_rich_bg_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 92 KiB |
21
YuMi/Assets.xcassets/Language/ar/mine_album_reviewing_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "album_reviewing_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/mine_album_reviewing_ar.imageset/album_reviewing_ar.png
vendored
Normal file
After Width: | Height: | Size: 2.5 KiB |
21
YuMi/Assets.xcassets/Language/ar/mine_dressup_noble_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "mine_dressup_noble_bg_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/mine_dressup_noble_bg_ar.imageset/mine_dressup_noble_bg_ar.png
vendored
Normal file
After Width: | Height: | Size: 31 KiB |
21
YuMi/Assets.xcassets/Language/ar/mine_info_recharge_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "mine_info_recharge_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/mine_info_recharge_ar.imageset/mine_info_recharge_ar.png
vendored
Normal file
After Width: | Height: | Size: 7.7 KiB |
22
YuMi/Assets.xcassets/Language/ar/mine_noble_center_rank_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_noble_center_rank_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_noble_center_rank_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/mine_noble_center_rank_ar.imageset/mine_noble_center_rank_ar@2x.png
vendored
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
YuMi/Assets.xcassets/Language/ar/mine_noble_center_rank_ar.imageset/mine_noble_center_rank_ar@3x.png
vendored
Normal file
After Width: | Height: | Size: 21 KiB |
22
YuMi/Assets.xcassets/Language/ar/mine_noble_center_tag_title_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_noble_center_tag_title_bg_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "mine_noble_center_tag_title_bg_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 973 B |
After Width: | Height: | Size: 1.9 KiB |
21
YuMi/Assets.xcassets/Language/ar/monents_common_landLordFlag_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "monents_common_landLordFlag_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 934 B |
21
YuMi/Assets.xcassets/Language/ar/monents_info_top_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "monents_info_top_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/monents_info_top_ar.imageset/monents_info_top_ar.png
vendored
Normal file
After Width: | Height: | Size: 1.3 KiB |
22
YuMi/Assets.xcassets/Language/ar/ms_room_game_victory_top_fail_icon_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "ms_room_game_victory_top_fail_icon_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "ms_room_game_victory_top_fail_icon_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 128 KiB |
22
YuMi/Assets.xcassets/Language/ar/ms_room_game_victory_top_icon_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "ms_room_game_victory_top_icon_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "ms_room_game_victory_top_icon_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 128 KiB |
21
YuMi/Assets.xcassets/Language/ar/noble_myLevel_head_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "noble_myLevel_head_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/noble_myLevel_head_ar.imageset/noble_myLevel_head_ar@3x.png
vendored
Normal file
After Width: | Height: | Size: 9.1 KiB |
21
YuMi/Assets.xcassets/Language/ar/noble_privilege_icon_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "noble_privilege_icon_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/noble_privilege_icon_ar.imageset/noble_privilege_icon_ar.png
vendored
Normal file
After Width: | Height: | Size: 1.1 KiB |
21
YuMi/Assets.xcassets/Language/ar/pi_webView_code_top_text_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "pi_webView_code_top_text_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 37 KiB |
22
YuMi/Assets.xcassets/Language/ar/pk_top_charms_mark_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "pk_top_charms_mark_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "pk_top_charms_mark_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/pk_top_charms_mark_ar.imageset/pk_top_charms_mark_ar@2x.png
vendored
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
YuMi/Assets.xcassets/Language/ar/pk_top_charms_mark_ar.imageset/pk_top_charms_mark_ar@3x.png
vendored
Normal file
After Width: | Height: | Size: 5.4 KiB |
22
YuMi/Assets.xcassets/Language/ar/pk_top_momey_mark_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "pk_top_momey_mark_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "pk_top_momey_mark_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
YuMi/Assets.xcassets/Language/ar/pk_top_momey_mark_ar.imageset/pk_top_momey_mark_ar@2x.png
vendored
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
YuMi/Assets.xcassets/Language/ar/pk_top_momey_mark_ar.imageset/pk_top_momey_mark_ar@3x.png
vendored
Normal file
After Width: | Height: | Size: 5.4 KiB |
21
YuMi/Assets.xcassets/Language/ar/room_across_pk_result_fail_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "room_across_pk_result_fail_bg_arpng.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 188 KiB |
21
YuMi/Assets.xcassets/Language/ar/room_across_pk_result_tie_bg_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "room_across_pk_result_tie_bg_ar.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 216 KiB |
22
YuMi/Assets.xcassets/Language/ar/room_across_pk_result_top_draw_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_across_pk_result_top_draw_ar@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_across_pk_result_top_draw_ar@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 47 KiB |
22
YuMi/Assets.xcassets/Language/ar/room_across_pk_result_top_fail_ar.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_across_pk_result_top_fail_en@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "room_across_pk_result_top_fail_en@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 112 KiB |