Compare commits
3 Commits
hotfix/2.7
...
feature/1.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cfaa21a860 | ||
![]() |
03fd39eff5 | ||
![]() |
569d0d5c02 |
1
.gitignore
vendored
@@ -151,4 +151,3 @@ iOS/Podfile.lock
|
|||||||
Podfile.lock
|
Podfile.lock
|
||||||
*/.DS_Store
|
*/.DS_Store
|
||||||
.DS_Store
|
.DS_Store
|
||||||
YuMi.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
|
|
||||||
|
8
Podfile
@@ -6,6 +6,8 @@ target 'YuMi' do
|
|||||||
#pag动画
|
#pag动画
|
||||||
pod 'libpag'
|
pod 'libpag'
|
||||||
pod 'Bugly'
|
pod 'Bugly'
|
||||||
|
pod 'Adjust'
|
||||||
|
pod 'Firebase/Analytics'
|
||||||
pod 'FBSDKLoginKit'
|
pod 'FBSDKLoginKit'
|
||||||
pod 'FBSDKCoreKit'
|
pod 'FBSDKCoreKit'
|
||||||
pod 'FBSDKShareKit'
|
pod 'FBSDKShareKit'
|
||||||
@@ -17,7 +19,6 @@ target 'YuMi' do
|
|||||||
pod 'MJExtension'
|
pod 'MJExtension'
|
||||||
#图片加载
|
#图片加载
|
||||||
pod 'SDWebImage'
|
pod 'SDWebImage'
|
||||||
# pod 'SDWebImageWebPCoder' 用于加载 webP
|
|
||||||
pod 'FLAnimatedImage'
|
pod 'FLAnimatedImage'
|
||||||
pod 'SDWebImageFLPlugin' # 对FLAnimatedImage和SDWebImage的桥接
|
pod 'SDWebImageFLPlugin' # 对FLAnimatedImage和SDWebImage的桥接
|
||||||
pod 'AFNetworking'
|
pod 'AFNetworking'
|
||||||
@@ -63,11 +64,13 @@ target 'YuMi' do
|
|||||||
|
|
||||||
pod 'UMCommon'
|
pod 'UMCommon'
|
||||||
pod 'UMDevice'
|
pod 'UMDevice'
|
||||||
|
pod 'lottie-ios'
|
||||||
|
pod 'WeexSDK'
|
||||||
pod 'ZLCollectionViewFlowLayout'
|
pod 'ZLCollectionViewFlowLayout'
|
||||||
|
pod 'WMZDropDownMenu'
|
||||||
pod 'TABAnimated'
|
pod 'TABAnimated'
|
||||||
pod 'YuMi',:path=>'yum'
|
pod 'YuMi',:path=>'yum'
|
||||||
pod 'QCloudCOSXML'
|
pod 'QCloudCOSXML'
|
||||||
pod 'TYCyclePagerView'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
post_install do |installer|
|
post_install do |installer|
|
||||||
@@ -75,7 +78,6 @@ post_install do |installer|
|
|||||||
project.targets.each do |target|
|
project.targets.each do |target|
|
||||||
target.build_configurations.each do |config|
|
target.build_configurations.each do |config|
|
||||||
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
|
||||||
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
|
|
||||||
xcconfig_path = config.base_configuration_reference.real_path
|
xcconfig_path = config.base_configuration_reference.real_path
|
||||||
xcconfig = File.read(xcconfig_path)
|
xcconfig = File.read(xcconfig_path)
|
||||||
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
|
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
|
||||||
|
@@ -50,13 +50,6 @@
|
|||||||
ReferencedContainer = "container:YuMi.xcodeproj">
|
ReferencedContainer = "container:YuMi.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</BuildableProductRunnable>
|
</BuildableProductRunnable>
|
||||||
<EnvironmentVariables>
|
|
||||||
<EnvironmentVariable
|
|
||||||
key = "OS_ACTIVITY_MODE"
|
|
||||||
value = "disable"
|
|
||||||
isEnabled = "NO">
|
|
||||||
</EnvironmentVariable>
|
|
||||||
</EnvironmentVariables>
|
|
||||||
</LaunchAction>
|
</LaunchAction>
|
||||||
<ProfileAction
|
<ProfileAction
|
||||||
buildConfiguration = "Release"
|
buildConfiguration = "Release"
|
||||||
|
@@ -24,52 +24,62 @@
|
|||||||
#import "XPRoomViewController.h"
|
#import "XPRoomViewController.h"
|
||||||
#import "XCCurrentVCStackManager.h"
|
#import "XCCurrentVCStackManager.h"
|
||||||
#import "ClientConfig.h"
|
#import "ClientConfig.h"
|
||||||
|
#import <Adjust/Adjust.h>
|
||||||
#import <UserNotifications/UserNotifications.h>
|
#import <UserNotifications/UserNotifications.h>
|
||||||
|
|
||||||
#import <Bugly/Bugly.h>
|
#import <Bugly/Bugly.h>
|
||||||
|
|
||||||
#import "YuMi-swift.h"
|
#import "YuMi-swift.h"
|
||||||
|
|
||||||
|
|
||||||
UIKIT_EXTERN NSString * kYouMiNumberCountKey;
|
UIKIT_EXTERN NSString * kYouMiNumberCountKey;
|
||||||
UIKIT_EXTERN NSString * adImageName;
|
UIKIT_EXTERN NSString * adImageName;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@implementation AppDelegate (ThirdConfig)
|
@implementation AppDelegate (ThirdConfig)
|
||||||
|
|
||||||
|
|
||||||
/// 初始化一些第三方配置
|
/// 初始化一些第三方配置
|
||||||
- (void)initThirdConfig{
|
- (void)initThirdConfig {
|
||||||
[self setLanguage];
|
|
||||||
[self configShareSDK];
|
[self configShareSDK];
|
||||||
[self configNIMSDK];
|
[self configNIMSDK];
|
||||||
|
[self initEmojiData];
|
||||||
|
[self configAdjust];
|
||||||
[self configBugly];
|
[self configBugly];
|
||||||
[self registerNot];
|
[self registerNot];
|
||||||
[self initEmojiData];
|
[self setLanguage];
|
||||||
}
|
}
|
||||||
|
|
||||||
-(void)setLanguage{
|
-(void)setLanguage{
|
||||||
UISemanticContentAttribute attribute = UISemanticContentAttributeForceLeftToRight;
|
|
||||||
if (isMSRTL()) {
|
if (isMSRTL()) {
|
||||||
attribute = UISemanticContentAttributeForceRightToLeft;
|
[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||||||
|
[UISearchBar appearance].semanticContentAttribute = UISemanticContentAttributeForceRightToLeft;
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
[UIView appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||||||
|
[UISearchBar appearance].semanticContentAttribute = UISemanticContentAttributeForceLeftToRight;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[UIView appearance].semanticContentAttribute = attribute;
|
|
||||||
[UISearchBar appearance].semanticContentAttribute = attribute;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-(void)registerNot{
|
-(void)registerNot{
|
||||||
if (@available(iOS 10.0, *)) {
|
if (@available(iOS 10.0, *)) {
|
||||||
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
||||||
[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError * _Nullable error) {
|
[center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError * _Nullable error) {
|
||||||
if (granted) {
|
if (granted) {
|
||||||
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
|
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
|
||||||
if (settings.authorizationStatus == UNAuthorizationStatusAuthorized){
|
if (settings.authorizationStatus == UNAuthorizationStatusAuthorized){
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
[[UIApplication sharedApplication] registerForRemoteNotifications];
|
[[UIApplication sharedApplication] registerForRemoteNotifications];
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
}];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -78,23 +88,23 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
- (void) configBugly {
|
- (void) configBugly {
|
||||||
|
|
||||||
BuglyConfig *config = [[BuglyConfig alloc] init];
|
BuglyConfig *config = [[BuglyConfig alloc] init];
|
||||||
|
|
||||||
config.blockMonitorTimeout = 5;
|
config.blockMonitorTimeout = 5;
|
||||||
|
config.unexpectedTerminatingDetectionEnable = YES; // 非正常退出事件记录开关,默认关闭
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
config.debugMode = NO;//YES; // debug 模式下,开启调试模式
|
config.debugMode = YES; // debug 模式下,开启调试模式
|
||||||
config.channel = [YYUtility getAppSource];
|
config.channel = [YYUtility getAppSource];; config.blockMonitorEnable = YES; // 卡顿监控开关,默认关闭
|
||||||
// config.blockMonitorEnable = YES; // 卡顿监控开关,默认关闭
|
config.reportLogLevel = BuglyLogLevelVerbose; // 设置打印日志级别
|
||||||
config.reportLogLevel = BuglyLogLevelSilent; // BuglyLogLevelVerbose; // 设置打印日志级别
|
[Bugly startWithAppId:@"86cf73b8d5" config:config];
|
||||||
[Bugly startWithAppId:@"c937fd00f7" config:config];
|
|
||||||
#else
|
#else
|
||||||
config.unexpectedTerminatingDetectionEnable = YES; // 非正常退出事件记录开关,默认关闭
|
|
||||||
config.debugMode = NO; // release 模式下,关闭调试模式
|
config.debugMode = NO; // release 模式下,关闭调试模式
|
||||||
config.channel = [YYUtility getAppSource];;
|
config.channel = [YYUtility getAppSource];; config.blockMonitorEnable = NO; // 卡顿监控开关,默认关闭
|
||||||
config.blockMonitorEnable = NO; // 卡顿监控开关,默认关闭
|
|
||||||
config.reportLogLevel = BuglyLogLevelWarn; // 设置自定义日志上报的级别,默认不上报自定义日志
|
config.reportLogLevel = BuglyLogLevelWarn; // 设置自定义日志上报的级别,默认不上报自定义日志
|
||||||
NSString *buylyKey = @"8627948559"; // isEnterprise == NO ? @"5334684d86" : @"d65df59a68";
|
NSString *buylyKey = isEnterprise == NO ? @"5334684d86" : @"d65df59a68";
|
||||||
[Bugly startWithAppId:buylyKey config:config];
|
[Bugly startWithAppId:buylyKey config:config];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
- (void)configNIMSDK {
|
- (void)configNIMSDK {
|
||||||
//推荐在程序启动的时候初始化 NIMSDK
|
//推荐在程序启动的时候初始化 NIMSDK
|
||||||
@@ -105,7 +115,10 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
#else
|
#else
|
||||||
option.apnsCername = @"newPiko";
|
option.apnsCername = @"newPiko";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[[NIMSDK sharedSDK] registerWithOption:option];
|
[[NIMSDK sharedSDK] registerWithOption:option];
|
||||||
|
|
||||||
// NIM SDK初始化
|
// NIM SDK初始化
|
||||||
@@ -119,6 +132,25 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-(void)configAdjust{
|
||||||
|
NSString *appToken = @"p5sndfu9udq8";
|
||||||
|
NSString *environment;
|
||||||
|
#ifdef DEBUG
|
||||||
|
environment = ADJEnvironmentSandbox;
|
||||||
|
#else
|
||||||
|
environment = ADJEnvironmentProduction;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ADJConfig*adjustConfig = [ADJConfig configWithAppToken:appToken
|
||||||
|
environment:environment];
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
[adjustConfig setLogLevel:ADJLogLevelVerbose];
|
||||||
|
#else
|
||||||
|
|
||||||
|
#endif
|
||||||
|
[Adjust appDidLaunch:adjustConfig];
|
||||||
|
}
|
||||||
- (void)configShareSDK {
|
- (void)configShareSDK {
|
||||||
|
|
||||||
[PILineLoginManager registerLine];
|
[PILineLoginManager registerLine];
|
||||||
@@ -128,10 +160,11 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
// [platformsRegister setupFacebookWithAppkey:@"1266232494209868" appSecret:@"c9b170b383f8be9cdf118823b8632821" displayName:YMLocalizedString(@"AppDelegate_ThirdConfig0")];
|
// [platformsRegister setupFacebookWithAppkey:@"1266232494209868" appSecret:@"c9b170b383f8be9cdf118823b8632821" displayName:YMLocalizedString(@"AppDelegate_ThirdConfig0")];
|
||||||
[platformsRegister setupLineAuthType:SSDKAuthorizeTypeBoth];
|
[platformsRegister setupLineAuthType:SSDKAuthorizeTypeBoth];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
NSString *isUpload = [[NSUserDefaults standardUserDefaults]valueForKey:@"kMobLinkUploadPrivacy"];
|
NSString *isUpload = [[NSUserDefaults standardUserDefaults]valueForKey:@"kMobLinkUploadPrivacy"];
|
||||||
if (isUpload == nil){
|
if (isUpload == nil){
|
||||||
[MobSDK uploadPrivacyPermissionStatus:YES onResult:nil];
|
[MobSDK uploadPrivacyPermissionStatus:YES onResult:^(BOOL success) {
|
||||||
|
|
||||||
|
}];
|
||||||
[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"kMobLinkUploadPrivacy"];
|
[[NSUserDefaults standardUserDefaults] setValue:@"YES" forKey:@"kMobLinkUploadPrivacy"];
|
||||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||||
}
|
}
|
||||||
@@ -139,24 +172,22 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
|
|
||||||
#pragma mark - 表情
|
#pragma mark - 表情
|
||||||
- (void)initEmojiData {
|
- (void)initEmojiData {
|
||||||
dispatch_async(dispatch_get_global_queue(0, 0), ^{
|
NSArray * dicArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"emoji" ofType:@"plist"]];
|
||||||
NSArray * dicArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"emoji" ofType:@"plist"]];
|
NSDictionary * dic = [dicArray firstObject];
|
||||||
NSDictionary * dic = [dicArray firstObject];
|
NSArray * emojiArray = dic[@"data"];
|
||||||
NSArray * emojiArray = dic[@"data"];
|
NSMutableArray * array = [NSMutableArray array];
|
||||||
NSMutableArray * array = [NSMutableArray array];
|
for (int i = 0; i < emojiArray.count; i++) {
|
||||||
for (int i = 0; i < emojiArray.count; i++) {
|
NSDictionary * dic = [emojiArray objectAtIndex:i];
|
||||||
NSDictionary * dic = [emojiArray objectAtIndex:i];
|
UIImage * image = [UIImage imageNamed:dic[@"file"]];
|
||||||
UIImage * image = [UIImage imageNamed:dic[@"file"]];
|
QEmotion * info = [[QEmotion alloc] init];
|
||||||
QEmotion * info = [[QEmotion alloc] init];
|
info.identifier = dic[@"id"];
|
||||||
info.identifier = dic[@"id"];
|
info.image = image;
|
||||||
info.image = image;
|
info.displayName = dic[@"tag"];
|
||||||
info.displayName = dic[@"tag"];
|
[array addObject:info];
|
||||||
[array addObject:info];
|
}
|
||||||
}
|
//在这里强烈建议先预加载一下表情
|
||||||
//在这里强烈建议先预加载一下表情
|
QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper];
|
||||||
QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper];
|
faceManager.emotionArray = array;
|
||||||
faceManager.emotionArray = array;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - 广告
|
#pragma mark - 广告
|
||||||
@@ -167,17 +198,23 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
- (void)setupLaunchADView {
|
- (void)setupLaunchADView {
|
||||||
NSUserDefaults * kUserDefaults = NSUserDefaults.standardUserDefaults;
|
NSUserDefaults * kUserDefaults = NSUserDefaults.standardUserDefaults;
|
||||||
// 判断沙盒中是否存在广告图片,如果存在,直接显示
|
// 判断沙盒中是否存在广告图片,如果存在,直接显示
|
||||||
NSString *adName = [kUserDefaults stringForKey:adImageName];
|
NSString *filePath = [XPAdImageTool.shareImageTool getFilePathWithImageName:[kUserDefaults valueForKey:adImageName]];
|
||||||
NSString *filePath = [XPAdImageTool.shareImageTool getFilePathWithImageName:adName];
|
|
||||||
BOOL isExist = [XPAdImageTool.shareImageTool isFileExistWithFilePath:filePath];
|
BOOL isExist = [XPAdImageTool.shareImageTool isFileExistWithFilePath:filePath];
|
||||||
|
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
|
||||||
|
|
||||||
|
if ([userDefault integerForKey:@"adShow"]) {
|
||||||
|
[userDefault setInteger:[userDefault integerForKey:@"adShow"]+1 forKey:@"adShow"];
|
||||||
|
} else {
|
||||||
|
[userDefault setInteger:1 forKey:@"adShow"];
|
||||||
|
}
|
||||||
|
|
||||||
if (isExist) {// 图片存在
|
if (isExist) {// 图片存在
|
||||||
// if ([kUserDefaults integerForKey:@"adShow"] > 4) {
|
|
||||||
|
if ([userDefault integerForKey:@"adShow"] > 4) {
|
||||||
@kWeakify(self);
|
@kWeakify(self);
|
||||||
AdvertiseModel *info = [XPAdImageTool.shareImageTool getAdInfoFromCacheInMainWith:adName];
|
NSString *imageName = [kUserDefaults valueForKey:adImageName];
|
||||||
|
AdvertiseModel *info = [XPAdImageTool.shareImageTool getAdInfoFromCacheInMainWith:imageName];
|
||||||
XPAdvertiseView *advertiseView = [[XPAdvertiseView alloc] initWithFrame:self.window.bounds];
|
XPAdvertiseView *advertiseView = [[XPAdvertiseView alloc] initWithFrame:self.window.bounds];
|
||||||
advertiseView.type = info.type;
|
|
||||||
advertiseView.fileModel = info.fillVo;
|
|
||||||
advertiseView.filePath = filePath;
|
advertiseView.filePath = filePath;
|
||||||
advertiseView.dismissHandler = ^(BOOL shouldJump) {
|
advertiseView.dismissHandler = ^(BOOL shouldJump) {
|
||||||
@kStrongify(self)
|
@kStrongify(self)
|
||||||
@@ -185,17 +222,21 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
[self advertiseJumpHandleWithInfo:info];
|
[self performSelectorOnMainThread:@selector(advertiseJumpHandleWithInfo:) withObject:info waitUntilDone:NO];
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
[advertiseView show];
|
[advertiseView show];
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// 闪屏广告跳转处理
|
/// 闪屏广告跳转处理
|
||||||
- (void)advertiseJumpHandleWithInfo:(AdvertiseModel *)info {
|
- (void)advertiseJumpHandleWithInfo:(AdvertiseModel *)info {
|
||||||
|
if (![ClientConfig shareConfig].canOpen) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (UIApplication.sharedApplication.keyWindow != self.window) {
|
if (UIApplication.sharedApplication.keyWindow != self.window) {
|
||||||
//当前窗口不是主控制器所在窗口时,拦截跳转(目前可能情况时,闪屏后出现新人引导
|
//当前窗口不是主控制器所在窗口时,拦截跳转(目前可能情况时,闪屏后出现新人引导
|
||||||
return;
|
return;
|
||||||
@@ -212,13 +253,10 @@ UIKIT_EXTERN NSString * adImageName;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SplashInfoSkipTypeWeb:
|
case SplashInfoSkipTypeWeb: {
|
||||||
case SplashInfoSkipTypeWeb_CP:
|
|
||||||
case SplashInfoSkipTypeWeb_Custom:
|
|
||||||
case SplashInfoSkipTypeWeb_WeekStar: {
|
|
||||||
// 跳转 H5
|
// 跳转 H5
|
||||||
if (info.link.length > 0) {
|
if (info.link.length > 0) {
|
||||||
XPWebViewController *webView = [[XPWebViewController alloc] initWithRoomUID:nil];
|
XPWebViewController *webView = [[XPWebViewController alloc]init];
|
||||||
webView.url = info.link;
|
webView.url = info.link;
|
||||||
[[[XCCurrentVCStackManager shareManager]currentNavigationController] pushViewController:webView animated:YES];
|
[[[XCCurrentVCStackManager shareManager]currentNavigationController] pushViewController:webView animated:YES];
|
||||||
}
|
}
|
||||||
|
@@ -5,27 +5,26 @@
|
|||||||
// Created by admin on 2023/3/9.
|
// Created by admin on 2023/3/9.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
#import "AppDelegate.h"
|
|
||||||
#import <UMCommon/UMCommon.h>
|
|
||||||
#import <MobLinkPro/MobLink.h>
|
#import <MobLinkPro/MobLink.h>
|
||||||
#import <MobLinkPro/MLSDKScene.h>
|
#import <MobLinkPro/MLSDKScene.h>
|
||||||
|
#import "AppDelegate.h"
|
||||||
#import "TabbarViewController.h"
|
#import "TabbarViewController.h"
|
||||||
#import "BaseNavigationController.h"
|
#import "BaseNavigationController.h"
|
||||||
#import "AppDelegate+ThirdConfig.h"
|
#import "AppDelegate+ThirdConfig.h"
|
||||||
#import <NIMSDK/NIMSDK.h>
|
#import <NIMSDK/NIMSDK.h>
|
||||||
|
#import <UMCommon/UMCommon.h>
|
||||||
|
#import <FBSDKCoreKit/FBSDKCoreKit.h>
|
||||||
#import <AppTrackingTransparency/AppTrackingTransparency.h>
|
#import <AppTrackingTransparency/AppTrackingTransparency.h>
|
||||||
#import "ClientConfig.h"
|
#import "ClientConfig.h"
|
||||||
#import <GoogleSignIn/GoogleSignIn.h>
|
#import <GoogleSignIn/GoogleSignIn.h>
|
||||||
|
#import "GULAppDelegateSwizzler.h"
|
||||||
#import <GoogleSignIn/GoogleSignIn.h>
|
#import <GoogleSignIn/GoogleSignIn.h>
|
||||||
#import "LoginViewController.h"
|
#import "XPLoginViewController.h"
|
||||||
#import "AccountModel.h"
|
#import "AccountModel.h"
|
||||||
#import "YuMi-swift.h"
|
#import "YuMi-swift.h"
|
||||||
#import "SessionViewController.h"
|
#import "SessionViewController.h"
|
||||||
#import "LoginFullInfoViewController.h"
|
#import "LoginFullInfoViewController.h"
|
||||||
#import "UIView+VAP.h"
|
@import Firebase;
|
||||||
#import "SocialShareManager.h"
|
|
||||||
|
|
||||||
UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
||||||
|
|
||||||
@interface AppDelegate ()<IMLSDKRestoreDelegate>
|
@interface AppDelegate ()<IMLSDKRestoreDelegate>
|
||||||
@@ -34,126 +33,78 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
|
|||||||
|
|
||||||
@implementation AppDelegate
|
@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 {
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||||
|
|
||||||
|
|
||||||
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||||
|
|
||||||
UIStoryboard *launchStoryboard = [UIStoryboard storyboardWithName:@"Launch Screen" bundle:nil];
|
AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo];
|
||||||
UIViewController *launchScreenVC = [launchStoryboard instantiateInitialViewController];
|
if (accountModel == nil || accountModel.uid == nil || accountModel.access_token == nil) {
|
||||||
self.window.rootViewController = launchScreenVC;
|
XPLoginViewController *lvc = [[XPLoginViewController alloc] init];
|
||||||
|
BaseNavigationController * nav = [[BaseNavigationController alloc] initWithRootViewController:lvc];
|
||||||
|
nav.modalPresentationStyle = UIModalPresentationFullScreen;
|
||||||
|
self.window.rootViewController = nav;
|
||||||
|
}else{
|
||||||
|
TabbarViewController *vc = [[TabbarViewController alloc] init];
|
||||||
|
BaseNavigationController *bnc = [[BaseNavigationController alloc] initWithRootViewController:vc];
|
||||||
|
self.window.rootViewController = bnc;
|
||||||
|
}
|
||||||
|
|
||||||
[self.window makeKeyAndVisible];
|
[self.window makeKeyAndVisible];
|
||||||
|
///设置广告页
|
||||||
[VAPView registerHWDLog:qg_VAP_Logger_handler];
|
[self setupLaunchADView];
|
||||||
|
///初始化一些 sdk配置
|
||||||
///初始化一些 sdk配置
|
[self initThirdConfig];
|
||||||
[self initThirdConfig];
|
// 只有同意过了隐私协议 才初始化
|
||||||
[self initUM:application launchOptions:launchOptions];
|
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"kYouMinumbernnagna"]) {
|
||||||
|
///初始化友盟
|
||||||
@kWeakify(self);
|
[UMConfigure initWithAppkey:@"6434c6dfd64e686139618269" channel:@"appstore"];
|
||||||
[[ClientConfig shareConfig] clientConfig:^{
|
}
|
||||||
@kStrongify(self);
|
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
[FIRApp configure];
|
||||||
[self loadMainPage];
|
[MobLink setDelegate:self];
|
||||||
[self setupLaunchADView];
|
|
||||||
});
|
|
||||||
}];
|
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initUM:(UIApplication *)application
|
- (void) IMLSDKWillRestoreScene:(MLSDKScene *)scene Restore:(void (^)(BOOL, RestoreStyle))restoreHandler
|
||||||
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"];
|
NSString *inviteCode = scene.params[@"inviteCode"];
|
||||||
if (inviteCode != nil && [[AccountInfoStorage instance]getUid].length == 0){
|
if (inviteCode != nil && [[AccountInfoStorage instance]getUid].length == 0){
|
||||||
ClientConfig *config = [ClientConfig shareConfig];
|
ClientConfig *config = [ClientConfig shareConfig];
|
||||||
config.inviteCode = inviteCode;
|
config.inviteCode = inviteCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
restoreHandler(YES, MLDefault);
|
restoreHandler(YES, MLDefault);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
||||||
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
|
NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount;
|
||||||
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:count];
|
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:count];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||||
[self getAdvertisingTrackingAuthority];
|
[self getAdvertisingTrackingAuthority];
|
||||||
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAppDidBecomeActive" object:nil];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)getAdvertisingTrackingAuthority {
|
- (void)getAdvertisingTrackingAuthority {
|
||||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
if (@available(iOS 14, *)) {
|
if (@available(iOS 14, *)) {
|
||||||
ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
|
ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case ATTrackingManagerAuthorizationStatusDenied:
|
case ATTrackingManagerAuthorizationStatusDenied:
|
||||||
// NSLog(@"用户拒绝IDFA");
|
NSLog(@"用户拒绝IDFA");
|
||||||
break;
|
break;
|
||||||
case ATTrackingManagerAuthorizationStatusAuthorized:
|
case ATTrackingManagerAuthorizationStatusAuthorized:
|
||||||
// NSLog(@"用户允许IDFA");
|
NSLog(@"用户允许IDFA");
|
||||||
break;
|
break;
|
||||||
case ATTrackingManagerAuthorizationStatusNotDetermined: {
|
case ATTrackingManagerAuthorizationStatusNotDetermined: {
|
||||||
// NSLog(@"用户未做选择或未弹窗IDFA");
|
NSLog(@"用户未做选择或未弹窗IDFA");
|
||||||
//请求弹出用户授权框,只会在程序运行是弹框1次,除非卸载app重装,通地图、相机等权限弹框一样
|
//请求弹出用户授权框,只会在程序运行是弹框1次,除非卸载app重装,通地图、相机等权限弹框一样
|
||||||
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
|
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
|
||||||
// NSLog(@"app追踪IDFA权限:%lu",(unsigned long)status);
|
NSLog(@"app追踪IDFA权限:%lu",(unsigned long)status);
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -194,51 +145,66 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
|
|||||||
config.pushChatId = userId;
|
config.pushChatId = userId;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///URL Scheme跳转
|
///URL Scheme跳转
|
||||||
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
|
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
|
||||||
[[SocialShareManager sharedManager] handleURL:url];
|
NSString *bundleID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
|
||||||
|
if ([url.scheme isEqualToString:[NSString stringWithFormat:@"line3rdp.%@",bundleID]]) {
|
||||||
|
return [PILineLoginManager applicationOpenurl:app open: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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if([url.absoluteString containsString:@"fb1266232494209868"]){
|
||||||
|
return [[FBSDKApplicationDelegate sharedInstance] application:app
|
||||||
|
openURL:url
|
||||||
|
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
|
||||||
|
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
|
||||||
|
}
|
||||||
|
|
||||||
return [GIDSignIn.sharedInstance 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
|
#pragma mark - Core Data stack
|
||||||
@synthesize managedObjectContext = _managedObjectContext;
|
@synthesize managedObjectContext = _managedObjectContext;
|
||||||
@@ -280,7 +246,7 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
|
|||||||
error = [NSError errorWithDomain:@"YOUR_ERROR_DOMAIN" code:9999 userInfo:dict];
|
error = [NSError errorWithDomain:@"YOUR_ERROR_DOMAIN" code:9999 userInfo:dict];
|
||||||
// Replace this with code to handle the error appropriately.
|
// 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.
|
// 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]);
|
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -312,7 +278,7 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
|
|||||||
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
|
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
|
||||||
// Replace this implementation with code to handle the error appropriately.
|
// 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.
|
// 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]);
|
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
16
YuMi/Appdelegate/FBSDKSettings+PISDKSettings.h
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// FBSDKSettings+PISDKSettings.h
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/9/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <FBSDKCoreKit/FBSDKCoreKit.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
@interface FBSDKSettings (PISDKSettings)
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
19
YuMi/Appdelegate/FBSDKSettings+PISDKSettings.m
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// FBSDKSettings+PISDKSettings.m
|
||||||
|
// YuMi
|
||||||
|
//
|
||||||
|
// Created by duoban on 2023/9/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "FBSDKSettings+PISDKSettings.h"
|
||||||
|
#import "GULAppDelegateSwizzler.h"
|
||||||
|
|
||||||
|
|
||||||
|
@implementation FBSDKSettings (PISDKSettings)
|
||||||
|
///必须为FBSDKSettings添加setAutoLogAppEventsEnabled方法,不然分享时会闪退
|
||||||
|
+(void)setAutoLogAppEventsEnabled:(BOOL)is{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
Before Width: | Height: | Size: 98 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "1@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "椭圆 6@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 41 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "组 4.jpg@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 242 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "组 4.jpg@3x-2.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 246 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "moli_money_icon@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 3.0 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "组 7122@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 82 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "1@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_flag_lv_1@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 47 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_flag_lv_2@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 49 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_flag_lv_3@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 47 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_flag_lv_4@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 48 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_flag_lv_5@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 48 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_flag_lv_6@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 49 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_head_lv_2@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 150 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_head_lv_3@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 166 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_head_lv_4@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 151 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_head_lv_5@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 192 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_head_lv_6@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 193 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_avatar_heart@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 26 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "容器 8171@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 519 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "框@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
BIN
YuMi/Assets.xcassets/1.0.16/cp_bg.imageset/框@3x.png
vendored
Before Width: | Height: | Size: 196 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "切图 32@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "头像@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 9.8 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "爱心@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 101 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "返回 1@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 39 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "3@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 46 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "3@3x-2.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 39 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "3@3x-3.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 42 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "3@3x-4.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 31 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "3@3x-5.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "切图 32@3x-2.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 41 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "切图 31@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 601 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_bg@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 199 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_lv_0@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_lv_1@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 17 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_lv_2@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_lv_3@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_lv_4@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "cp_relationship_lv_5@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 17 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "切图 45@3x-3.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "切图 45@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "切图 45@3x-2.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 100 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "2@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "矩形 3164@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 996 B |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "容器 8182@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 35 KiB |
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "容器 8192@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"author" : "xcode",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 20 KiB |