feat(勋章): 新增多等级高亮功能并优化勋章展示逻辑

refactor(勋章排行): 重构排行榜分页加载和刷新逻辑

fix(会话): 优化官方账号判断逻辑和跳转处理

style(UI): 调整勋章排行榜和游戏菜单UI布局

chore: 更新Podfile配置和bitcode框架列表
This commit is contained in:
edwinQQQ
2025-07-03 19:35:17 +08:00
parent e32e5653fd
commit 99db078b62
19 changed files with 60452 additions and 14431 deletions

View File

@@ -35,5 +35,6 @@
"Superview",
"Uids",
"XNDJTDD"
]
],
"C_Cpp.errorSquiggles": "disabled"
}

View File

@@ -61,7 +61,7 @@ target 'YuMi' do
pod 'UMCommon'
pod 'UMDevice'
# pod 'ZLCollectionViewFlowLayout'
pod 'ZLCollectionViewFlowLayout'
pod 'TABAnimated'
pod 'YuMi',:path=>'yum'
pod 'QCloudCOSXML'
@@ -74,6 +74,7 @@ post_install do |installer|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.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 diff suppressed because it is too large Load Diff

View File

@@ -157,7 +157,7 @@
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (![[[ClientConfig shareConfig].configInfo officialAccountUids] containsObject:self.session.sessionId]) {
if (![NIMMessageUtils isOfficalAccount:self.session.sessionId]) {
[self.presenter getFansLike:self.session.sessionId];
if (!self.userInfo) {
[self.presenter getUserInfoWithUid:self.session.sessionId];

View File

@@ -22,6 +22,7 @@
#import "XPSkillCardPlayerManager.h"
#import "MessagePresenter.h"
#import "MessageProtocol.h"
#import "NIMMessageUtils.h"
NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
@@ -147,10 +148,25 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
if (userInfo) {
SessionViewController *vc = [[SessionViewController alloc] initWithSession:self.recentSession.session];
vc.openType = self.openType;
vc.userInfo = userInfo;
[self.navigationController pushViewController:vc animated:YES];
if (self.openType == SessionListOpenTypeRoom) {
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:self.recentSession.session];
sessionVC.userInfo = userInfo;
sessionVC.openType = self.openType;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController.view addSubview:sessionVC.view];
[self.mainController addChildViewController:sessionVC];
} else {
SessionViewController *vc = [[SessionViewController alloc] initWithSession:self.recentSession.session];
vc.openType = self.openType;
vc.userInfo = userInfo;
[self.navigationController pushViewController:vc animated:YES];
}
}
}
@@ -160,28 +176,28 @@ NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey";
return;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if (self.openType == SessionListOpenTypeRoom) {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:recentSession.session];
sessionVC.openType = self.openType;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController.view addSubview:sessionVC.view];
[self.mainController addChildViewController:sessionVC];
} else {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
self.recentSession = recentSession;
if ([[[ClientConfig shareConfig].configInfo officialAccountUids] containsObject:self.recentSession.session.sessionId]) {
NIMRecentSession *recentSession = self.recentSessions[indexPath.row];
self.recentSession = recentSession;
if ([NIMMessageUtils isOfficalAccount:self.recentSession.session.sessionId]) {
if (self.openType == SessionListOpenTypeRoom) {
SessionViewController * sessionVC =[[SessionViewController alloc] initWithSession:self.recentSession.session];
sessionVC.openType = self.openType;
CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[self.mainController.view.layer addAnimation:transition forKey:nil];
[self.mainController.view addSubview:sessionVC.view];
[self.mainController addChildViewController:sessionVC];
} else {
SessionViewController *vc = [[SessionViewController alloc] initWithSession:self.recentSession.session];
vc.openType = self.openType;
[self.navigationController pushViewController:vc animated:YES];
} else {
[self.presenter getUserInfoWithUid:recentSession.session.sessionId];
}
} else {
[self.presenter getUserInfoWithUid:recentSession.session.sessionId];
}
}

View File

@@ -75,6 +75,8 @@
}];
self.titleLabel = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:[UIColor whiteColor]];
self.titleLabel.adjustsFontSizeToFitWidth = YES;
self.titleLabel.minimumScaleFactor = 0.5;
self.subLabel = [UILabel labelInitWithText:@"" font:kFontRegular(11) textColor:[UIColor colorWithWhite:1 alpha:0.6]];
self.titleLabel.textAlignment = NSTextAlignmentCenter;
self.subLabel.textAlignment = NSTextAlignmentCenter;
@@ -82,7 +84,7 @@
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self.contentView);
make.top.mas_equalTo(self.imageView.mas_bottom).offset(3);
make.leading.trailing.mas_equalTo(self.contentView).inset(13);
make.leading.trailing.mas_equalTo(self.contentView).inset(10);
}];
[self.contentView addSubview:self.subLabel];
[self.subLabel mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -102,18 +104,18 @@
}];
//
@kWeakify(self);
self.levelIndicatorView.levelSelectedBlock = ^(NSInteger level) {
@kStrongify(self);
//
if (self.currentItemVo && level <= self.currentItemVo.medalVos.count) {
MedalVo *selectedMedalVo = [self.currentItemVo.medalVos xpSafeObjectAtIndex:level - 1];
if (selectedMedalVo) {
self.displayModel = selectedMedalVo;
[self updateDisplayWithCurrentModel];
}
}
};
// @kWeakify(self);
// self.levelIndicatorView.levelSelectedBlock = ^(NSInteger level) {
// @kStrongify(self);
// //
// if (self.currentItemVo && level <= self.currentItemVo.medalVos.count) {
// MedalVo *selectedMedalVo = [self.currentItemVo.medalVos xpSafeObjectAtIndex:level - 1];
// if (selectedMedalVo) {
// self.displayModel = selectedMedalVo;
// [self updateDisplayWithCurrentModel];
// }
// }
// };
//
[self setupNotifications];
@@ -184,11 +186,20 @@
[self.levelIndicatorView setupWithMaxLevel:model.medalLevel];
if (isSquare) {
self.subLabel.hidden = YES;
self.displayModel = [model.medalVos xpSafeObjectAtIndex:model.medalVos.count - 1];
[self.levelIndicatorView setSelectedLevel:model.medalLevel animated:NO];
} else {
self.levelIndicatorView.userInteractionEnabled = YES;
self.displayModel = [model.medalVos xpSafeObjectAtIndex:0];
[self.levelIndicatorView setSelectedLevel:1 animated:NO];
NSMutableArray *arr = @[].mutableCopy;
for (MedalVo *vo in model.medalVos) {
[arr addObject:@(vo.level)];
if (vo.level > self.displayModel.level) {
self.displayModel = vo;
}
}
[self.levelIndicatorView setHighlightLevels:arr animated:NO];
}
self.levelIndicatorView.userInteractionEnabled = !isSquare;
@@ -250,7 +261,7 @@
///
- (void)updateTextLabels {
self.titleLabel.text = self.displayModel.name;
self.titleLabel.text = self.currentItemVo.seriesName;
self.subLabel.text = [self.displayModel expireDateString];
}

View File

@@ -135,7 +135,12 @@
self.displayModel = [detailItemVo.medalVos xpSafeObjectAtIndex:0];
[self.levelIndicatorView setupWithMaxLevel:self.currentSeriesItemVO.medalLevel];
[self.levelIndicatorView setSelectedLevel:1 animated:NO];
for (MedalVo *vo in detailItemVo.medalVos) {
if (vo.level > self.displayModel.level) {
self.displayModel = vo;
}
}
[self.levelIndicatorView setSelectedLevel:self.displayModel.level animated:NO];
[self.levelIndicatorView setSeriesItems:detailItemVo.medalVos];
//

View File

@@ -23,6 +23,13 @@ typedef NS_ENUM(NSInteger, MedalsLevelIndicatorType) {
- (void)setupWithMaxLevel:(NSInteger)maxLevel;
- (void)setSelectedLevel:(NSInteger)level animated:(BOOL)animated;
/**
* 设置多个高亮等级
* @param levels 需要高亮的等级数组
* @param animated 是否使用动画
*/
- (void)setHighlightLevels:(NSArray<NSNumber *> *)levels animated:(BOOL)animated;
/**
* 重置等级指示器到指定等级
* @param level 等级0表示重置到初始状态

View File

@@ -460,6 +460,11 @@
CGFloat itemWidth = 25.0; //
CGFloat leftMargin = 20.0; //
CGFloat rightMargin = 20.0; //
if (_levelItems.count > 4) {
itemWidth = 16;
leftMargin = 0;
rightMargin = 10;
}
//
CGFloat availableWidth = self.bounds.size.width - leftMargin - rightMargin;
@@ -487,6 +492,9 @@
CGFloat totalWidth = totalItemWidth + spacing * (_maxLevel - 1);
// 使
startX = (self.bounds.size.width - totalWidth) / 2.0;
if (_levelItems.count > 4) {
startX -= spacing/2;
}
}
}
@@ -645,6 +653,64 @@
}
}
- (void)setHighlightLevels:(NSArray<NSNumber *> *)levels animated:(BOOL)animated {
if (!levels || levels.count == 0 || _levelItems.count == 0) {
return;
}
// item
for (LevelItemView *item in _levelItems) {
[item setSelected:NO animated:animated];
}
// 线
for (UIView *line in _connectionLines) {
void (^updateBlock)(void) = ^{
line.backgroundColor = UIColorFromRGB(0x8B54E8); //
};
if (animated) {
[UIView animateWithDuration:0.2 animations:updateBlock];
} else {
updateBlock();
}
}
//
NSMutableSet *highlightedLevels = [NSMutableSet set];
for (NSNumber *levelNumber in levels) {
NSInteger level = [levelNumber integerValue];
if (level >= 1 && level <= _maxLevel) {
[highlightedLevels addObject:@(level)];
// item
LevelItemView *item = _levelItems[level - 1];
[item setSelected:YES animated:animated];
}
}
// 线
// 线线
for (NSInteger i = 0; i < _connectionLines.count; i++) {
UIView *line = _connectionLines[i];
NSInteger startLevel = i + 1;
NSInteger endLevel = i + 2;
BOOL isSelected = [highlightedLevels containsObject:@(startLevel)] &&
[highlightedLevels containsObject:@(endLevel)];
void (^updateBlock)(void) = ^{
line.backgroundColor = isSelected ? [UIColor whiteColor] : UIColorFromRGB(0x8B54E8);
};
if (animated) {
[UIView animateWithDuration:0.2 animations:updateBlock];
} else {
updateBlock();
}
}
}
//
- (void)calculateLayoutParams:(CGFloat *)itemWidth spacing:(CGFloat *)spacing startX:(CGFloat *)startX forMaxLevel:(NSInteger)maxLevel {
*itemWidth = 25.0; //

View File

@@ -9,6 +9,8 @@
#import "MedalsPresenter.h"
#import "MedalsViewController.h"
#import "UserInfoModel.h"
#import <MJRefresh/MJRefresh.h>
#import "DJDKMIMOMColor.h"
@interface MedalsRankListCell : UITableViewCell
@@ -17,7 +19,7 @@
@property (nonatomic, strong) NetImageView *avatarImageView;
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UILabel *countLabel;
@property (nonatomic, strong) UILabel *detailLabel;
+ (void)registerTo:(UITableView *)tableView;
+ (instancetype)cellFor:(UITableView *)tableView atIndexPath:(NSIndexPath *)index;
@@ -44,9 +46,8 @@
- (void)updateCell:(MedalsRankUserModel *)userModel atIndex:(NSInteger)index {
self.avatarImageView.imageUrl = userModel.avatar;
self.nameLabel.text = userModel.nick;
self.indexLabel.text = @(userModel.rank).stringValue;
self.indexLabel.text = @(index + 4).stringValue;
self.countLabel.text = @(userModel.medalCount).stringValue;
// self.detailLabel.hidden = userModel.uid == 0;
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
@@ -81,12 +82,12 @@
make.top.mas_equalTo(self.avatarImageView);
}];
UIImageView *rankIcon = [[UIImageView alloc] initWithImage:[kImage(@"medals_icon_rank") ms_SetImageForRTL]];
UIImageView *rankIcon = [[UIImageView alloc] initWithImage:kImage(@"medals_rank")];
[self.contentView addSubview:rankIcon];
[rankIcon mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self.avatarImageView.mas_trailing).offset(6);
make.bottom.mas_equalTo(self.avatarImageView);
make.size.mas_equalTo(CGSizeMake(15, 15));
make.size.mas_equalTo(CGSizeMake(10, 14));
}];
self.countLabel = [UILabel labelInitWithText:@"" font:kFontMedium(14) textColor:[UIColor whiteColor]];
@@ -96,11 +97,11 @@
make.centerY.mas_equalTo(rankIcon);
}];
self.detailLabel = [UILabel labelInitWithText:YMLocalizedString(@"20.20.61_text_13")
UILabel *detailLabel = [UILabel labelInitWithText:YMLocalizedString(@"20.20.61_text_13")
font:kFontRegular(12)
textColor:[UIColor colorWithWhite:1 alpha:0.6]];
[self.contentView addSubview:self.detailLabel];
[self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) {
[self.contentView addSubview:detailLabel];
[detailLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(self.contentView).offset(-28);
make.centerY.mas_equalTo(self.contentView);
}];
@@ -128,7 +129,7 @@
@implementation MedalsRankTopView
{
NetImageView *avataImageView;
NetImageView *avatarImageView;
UIImageView *decorationImageView;
UILabel *nameLabel;
UILabel *honorLabel;
@@ -144,10 +145,10 @@
if (self) {
NetImageConfig *config = [[NetImageConfig alloc] init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
avataImageView = [[NetImageView alloc] initWithConfig:config];
[avataImageView setCornerRadius:50];
[self addSubview:avataImageView];
[avataImageView mas_makeConstraints:^(MASConstraintMaker *make) {
avatarImageView = [[NetImageView alloc] initWithConfig:config];
[avatarImageView setCornerRadius:50];
[self addSubview:avatarImageView];
[avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.mas_equalTo(self);
make.size.mas_equalTo(CGSizeMake(100, 100));
}];
@@ -176,16 +177,13 @@
nameLabel = [UILabel labelInitWithText:@"" font:kFontSemibold(15) textColor:UIColorFromRGB(0xffffff)];
[self addSubview:nameLabel];
medalIconImageView = [[UIImageView alloc] initWithImage:kImage(@"medals_icon_rank")];
medalIconImageView = [[UIImageView alloc] initWithImage:kImage(@"medals_rank")];
medalCountLabel = [UILabel labelInitWithText:@"0" font:kFontMedium(14) textColor:UIColorFromRGB(0xffffff)];
medalCountStack = [[UIStackView alloc] initWithArrangedSubviews:@[
medalIconImageView,
medalCountLabel
]];
[self addSubview:medalCountStack];
[medalIconImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(15, 15));
}];
honorLabel.hidden = YES;
honorImageView.hidden = YES;
@@ -249,7 +247,7 @@
- (void)setUserModel:(MedalsRankUserModel *)userModel {
_userModel = userModel;
if (userModel) {
avataImageView.imageUrl = userModel.avatar;
avatarImageView.imageUrl = userModel.avatar;
nameLabel.text = userModel.nick;
medalCountLabel.text = @(userModel.medalCount).stringValue;
}
@@ -273,6 +271,9 @@
@property (nonatomic, strong) UITableView *rankTableView;
//
@property (nonatomic, assign) NSInteger currentPage;
@end
@implementation MedalsRankViewController
@@ -288,7 +289,11 @@
- (void)viewDidLoad {
[super viewDidLoad];
//
self.currentPage = 1;
[self setupUI];
[self setupRefresh];
[self loadData];
}
@@ -411,46 +416,86 @@
}];
}
- (void)setupRefresh {
//
MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(headerRefresh)];
header.stateLabel.font = [UIFont systemFontOfSize:10.0];
header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0];
header.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor];
self.rankTableView.mj_header = header;
//
MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)];
footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor];
footer.stateLabel.font = [UIFont systemFontOfSize:10.0];
self.rankTableView.mj_footer = footer;
}
#pragma mark -
- (void)loadData {
[self.presenter rankList:1];
[self.presenter rankList:self.currentPage];
}
- (void)rankListSuccess:(MedalsRankModel *)model {
//
[self.rankTableView.mj_header endRefreshing];
[self.rankTableView.mj_footer endRefreshing];
NSInteger currentRank = 4; // 4
if (model) {
self.mineRankModel = model.mine;
self.avatarImageView.imageUrl = self.mineRankModel.avatar;
self.nameLabel.text = self.mineRankModel.nick;
self.indexLabel.text = @(self.mineRankModel.rank).stringValue;
self.countLabel.text = @(self.mineRankModel.medalCount).stringValue;
self.rankList = [NSMutableArray array];
NSInteger currentRank = 4; // 4
for (MedalsRankUserModel *user in model.rankList) {
if (user.rank == 1) {
self.topOne.userModel = user;
} else if (user.rank == 2) {
self.topTwo.userModel = user;
} else if (user.rank == 3) {
self.topThree.userModel = user;
} else {
[self.rankList addObject:user];
currentRank = MAX(currentRank, user.rank + 1);
//
if (self.currentPage == 1) {
self.mineRankModel = model.mine;
self.avatarImageView.imageUrl = self.mineRankModel.avatar;
self.nameLabel.text = self.mineRankModel.nick;
self.indexLabel.text = self.mineRankModel.rank == 0 ? @"-" : @(self.mineRankModel.rank).stringValue;
self.countLabel.text = @(self.mineRankModel.medalCount).stringValue;
self.rankList = [NSMutableArray array];
//
for (MedalsRankUserModel *user in model.rankList) {
if (user.rank == 1) {
self.topOne.userModel = user;
} else if (user.rank == 2) {
self.topTwo.userModel = user;
} else if (user.rank == 3) {
self.topThree.userModel = user;
} else {
[self.rankList addObject:user];
currentRank = MAX(currentRank, user.rank + 1);
}
}
} else {
//
for (MedalsRankUserModel *user in model.rankList) {
if (user.rank > 3) {
[self.rankList addObject:user];
}
}
}
// 10 rankList 7 top
NSInteger targetCount = 7; // 103
while (self.rankList.count < targetCount) {
MedalsRankUserModel *emptyUser = [[MedalsRankUserModel alloc] init];
emptyUser.rank = currentRank;
emptyUser.uid = 0;
emptyUser.avatar = @"";
emptyUser.nick = @"--";
emptyUser.medalCount = 0;
[self.rankList addObject:emptyUser];
currentRank++;
//
if (model.rankList.count < [self.presenter rankListSize]) {
if (self.currentPage == 1) {
// 10 rankList 7 top
NSInteger targetCount = 7; // 103
while (self.rankList.count < targetCount) {
MedalsRankUserModel *emptyUser = [[MedalsRankUserModel alloc] init];
emptyUser.rank = currentRank;
emptyUser.uid = 0;
emptyUser.avatar = @"";
emptyUser.nick = @"--";
emptyUser.medalCount = 0;
[self.rankList addObject:emptyUser];
currentRank++;
}
}
[self.rankTableView.mj_footer endRefreshingWithNoMoreData];
} else {
[self.rankTableView.mj_footer resetNoMoreData];
}
[self.rankTableView reloadData];
@@ -458,7 +503,14 @@
}
- (void)rankListFailure {
//
[self.rankTableView.mj_header endRefreshing];
[self.rankTableView.mj_footer endRefreshing];
// 退
if (self.currentPage > 1) {
self.currentPage--;
}
}
#pragma mark - UITableView DataSource & Delegate
@@ -482,15 +534,11 @@
[tableView deselectRowAtIndexPath:indexPath animated:YES];
MedalsRankUserModel *model = [self.rankList xpSafeObjectAtIndex:indexPath.row];
//
if (model && model.uid != 0) {
[self handleTopViewTap:model];
}
[self handleTopViewTap:model];
}
- (void)handleTopViewTap:(MedalsRankUserModel *)model {
if (model && model.uid != 0) {
if (model) {
UserInfoModel *userInfo = [[UserInfoModel alloc] init];
userInfo.uid = model.uid;
userInfo.avatar = model.avatar;
@@ -518,4 +566,15 @@
return _rankTableView;
}
#pragma mark -
- (void)headerRefresh {
self.currentPage = 1;
[self loadData];
}
- (void)footerRefresh {
self.currentPage++;
[self loadData];
}
@end

View File

@@ -294,7 +294,8 @@ typedef enum : NSInteger {
[bottomBg mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.mas_equalTo(self.view);
make.height.mas_equalTo(kGetScaleWidth(445));
// make.height.mas_equalTo(kGetScaleWidth(445));
make.top.mas_equalTo(topBg.mas_bottom).offset(44);
}];
}
}
@@ -413,7 +414,10 @@ typedef enum : NSInteger {
}];
[self.view addSubview:self.medalDescLabel];
self.medalDescLabel.text = YMLocalizedString(@"20.20.61_text_6");
if (self.displayType != MedalsCenterDisplayType_Square) {
self.medalDescLabel.text = YMLocalizedString(@"20.20.61_text_6");
}
[self.medalDescLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(290));
make.leading.trailing.mas_equalTo(self.view).inset(20);

View File

@@ -100,24 +100,6 @@
return;
}
#ifdef DEBUG
// Debug 使
if ([NSString isEmpty:medalVo.mp4Url] && [NSString isEmpty:medalVo.picUrl]) {
// 使
[self handleLegacyDisplay:medalVo];
return;
}
if (![NSString isEmpty:medalVo.picUrl] && [NSString isEmpty:medalVo.mp4Url]) {
// picUrl mp4Url
if (![NSString isImageFormat:medalVo.picUrl] && ![medalVo.picUrl.lowercaseString hasSuffix:@".mp4"]) {
// picUrl mp4使
[self handleLegacyDisplay:medalVo];
return;
}
}
#endif
// 1. mp4Url
if (![NSString isEmpty:medalVo.mp4Url]) {
// Cell mp4使 picUrl
@@ -136,8 +118,7 @@
if ([NSString isImageFormat:medalVo.picUrl]) {
self.medalImageView.imageUrl = medalVo.picUrl;
} else {
//
self.medalImageView.image = [UIImageConstant defaultEmptyPlaceholder];
[self handleLegacyDisplay:medalVo];
}
return;
}
@@ -150,6 +131,8 @@
- (void)handleLegacyDisplay:(MedalVo *)medalVo {
if (![medalVo.picUrl hasSuffix:@"mp4"]) {
self.medalImageView.imageUrl = medalVo.picUrl;
} else {
self.medalImageView.image = [UIImageConstant defaultEmptyPlaceholder];
}
}

View File

@@ -61,40 +61,20 @@
return;
}
#ifdef DEBUG
// Debug 使
if ([NSString isEmpty:medalModel.mp4Url] && [NSString isEmpty:medalModel.picUrl]) {
// 使
[self handleLegacyDisplay:medalModel];
return;
}
if (![NSString isEmpty:medalModel.picUrl] && [NSString isEmpty:medalModel.mp4Url]) {
// picUrl mp4Url
if (![NSString isImageFormat:medalModel.picUrl] && ![medalModel.picUrl.lowercaseString hasSuffix:@".mp4"]) {
// picUrl mp4使
[self handleLegacyDisplay:medalModel];
return;
}
}
#endif
// 1. mp4Url
if (![NSString isEmpty:medalModel.mp4Url]) {
[self setMp4Path:medalModel.mp4Url];
return;
}
// 2. mp4Url 使 picUrl
// 使 picUrl
if (![NSString isEmpty:medalModel.picUrl]) {
// 3. 使 picUrl
if ([NSString isImageFormat:medalModel.picUrl]) {
[self setImagePath:medalModel.picUrl];
} else {
//
[self setImagePath:@""];
//
[self handleLegacyDisplay:medalModel];
}
return;
} else if (![NSString isEmpty:medalModel.mp4Url]) {
// mp4Url
[self setMp4Path:medalModel.mp4Url];
return;
}
// 4.
@@ -185,6 +165,10 @@
}
- (void)setMp4Path:(NSString *)mp4Path {
if ([NSString isEmpty:mp4Path]) {
return;
}
// mp4
// if ([_mp4Path isEqualToString:mp4Path]) {
// return;

View File

@@ -196,12 +196,10 @@
if (currentMinVipLevel != NSIntegerMax) {
// VIP level
if (self.minVipLevelForSeats == 0 || currentMinVipLevel < self.minVipLevelForSeats) {
self.minVipLevelForSeats = currentMinVipLevel;
}
self.minVipLevelForSeats = currentMinVipLevel;
[cell updateVIPLevel:currentMinVipLevel];
}
} else if (self.minVipLevelForSeats > 0) {
} else if (self.minVipLevelForSeats >= 0) {
// vip seat voVIP level沿
[cell updateVIPLevel:self.minVipLevelForSeats];
}

View File

@@ -89,12 +89,15 @@
self.priceLabel.attributedText = priceStr;
self.numLabel.text = [NSString stringWithFormat:@"%ld",
(long)rechargeModel.chargeGoldNum];
self.extBG.hidden = YES;
self.moneyLabel.hidden = YES;
FirstRechargeModel *model = [FirstRechargeManager.sharedManager loadCurrentModel];
if (model && model.chargeStatus == NO) {
for (FirstRechargeLevelModel *levelModel in model.levelCharge) {
if (levelModel.exp == rechargeModel.chargeGoldNum) {
[self.moneyLabel updateContent: [NSString stringWithFormat:@"+ %@", @(levelModel.awardNum)]];
self.extBG.hidden = NO;
self.moneyLabel.hidden = NO;
break;
}
}

View File

@@ -25,13 +25,12 @@
}
-(void)installConstraints{
[self.gameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(20));
make.width.height.mas_equalTo(kGetScaleWidth(56));
make.centerX.equalTo(self.contentView);
make.top.leading.trailing.mas_equalTo(self.contentView).inset(4);
make.height.mas_equalTo(self.gameView.mas_width);
// make.centerX.equalTo(self.contentView);
}];
[self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.gameView.mas_bottom).mas_offset(kGetScaleWidth(10));
make.top.equalTo(self.gameView.mas_bottom).mas_offset(7);
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(5));
}];
}
@@ -80,7 +79,7 @@
_textView = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:[UIColor whiteColor]];
_textView.textAlignment = NSTextAlignmentCenter;
_textView.numberOfLines = 2;
_textView.hidden = YES;
_textView.hidden = NO;
}
return _textView;
}

View File

@@ -27,7 +27,7 @@ static const NSInteger kItemsPerRow = 5;
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
self.itemHeight = kGetScaleWidth(80);
self.itemHeight = kGetScaleWidth(120);
self.emptyHeight = kGetScaleWidth(100);
self.dataSource = @[].mutableCopy;
@@ -52,7 +52,7 @@ static const NSInteger kItemsPerRow = 5;
[self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.trailing.equalTo(self).inset(0);
make.bottom.equalTo(self).offset(12);
make.height.mas_equalTo(self.collectionView.mas_height).multipliedBy(1.1);
make.height.mas_equalTo(self.collectionView.mas_height).multipliedBy(1.05);
}];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.equalTo(self).inset(kGetScaleWidth(0));
@@ -108,6 +108,9 @@ static const NSInteger kItemsPerRow = 5;
// [self.ms_bgView mas_updateConstraints:^(MASConstraintMaker *make) {
// make.height.mas_equalTo(kGetScaleWidth(height + 12));
// }];
if (height > KScreenHeight*2/3) {
height = KScreenHeight*2/3;
}
[self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(kGetScaleWidth(height));
}];
@@ -119,7 +122,7 @@ static const NSInteger kItemsPerRow = 5;
#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
CGFloat width = (KScreenWidth-kGetScaleWidth(6))/5;
CGFloat width = (KScreenWidth-kGetScaleWidth(6))/4;
return [self countOfCurrentType] > 0 ? CGSizeMake(width, self.itemHeight) : CGSizeMake(KScreenWidth, self.emptyHeight);
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
@@ -179,8 +182,8 @@ static const NSInteger kItemsPerRow = 5;
- (UICollectionView *)collectionView{
if (!_collectionView) {
MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init];
layout.minimumLineSpacing = 0;
layout.minimumLineSpacing = 10;
layout.minimumInteritemSpacing = 0;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.showsHorizontalScrollIndicator = NO;
@@ -206,7 +209,7 @@ static const NSInteger kItemsPerRow = 5;
_blurEffectView.frame = CGRectMake(0, 0, KScreenWidth, kGetScaleWidth(246));
_blurEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[_blurEffectView setCornerRadius:12];
[_blurEffectView setCornerRadius:24];
}
return _blurEffectView;
}

View File

@@ -1497,9 +1497,7 @@
#pragma mark -
- (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo {
#if DEBUG
// userInfo.medalsPic = @[];
#endif
self.userInfoModel = userInfo;
self.avatar.userInfo = userInfo;
@kWeakify(self);
@@ -2163,7 +2161,7 @@
- (void)updateCollectionViewFrame {
CGFloat newHeight = [self calculateCollectionViewHeight];
if (ABS(self.collectionHeight - newHeight) > 0.1) { //
// if (ABS(self.collectionHeight - newHeight) > 0.1) { //
self.collectionHeight = newHeight;
CGFloat space_top = KScreenHeight - self.collectionHeight;
@@ -2175,7 +2173,7 @@
[XNDJTDDLoadingTool hideHUD];
}
}];
}
// }
}
@end

View File

@@ -1,85 +1,16 @@
Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/tvos-arm64/FBSDKCoreKit.framework/FBSDKCoreKit
Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/tvos-arm64_x86_64-simulator/FBSDKCoreKit.framework/FBSDKCoreKit
Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64_x86_64-simulator/FBSDKCoreKit.framework/FBSDKCoreKit
Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKCoreKit.framework/FBSDKCoreKit
Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64/FBSDKCoreKit.framework/FBSDKCoreKit
Pods/UMDevice/UMDevice_3.4.0/UMDevice.xcframework/ios-arm64_x86_64-simulator/UMDevice.framework/UMDevice
Pods/UMDevice/UMDevice_3.4.0/UMDevice.xcframework/ios-arm64_armv7/UMDevice.framework/UMDevice
Pods/mob_linksdk_pro/MobLinkPro/MobLinkPro.framework/MobLinkPro
Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/tvos-arm64/FBAEMKit.framework/FBAEMKit
Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/tvos-arm64_x86_64-simulator/FBAEMKit.framework/FBAEMKit
Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/ios-arm64_x86_64-simulator/FBAEMKit.framework/FBAEMKit
Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/ios-arm64_x86_64-maccatalyst/FBAEMKit.framework/FBAEMKit
Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/ios-arm64/FBAEMKit.framework/FBAEMKit
Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/tvos-arm64/FBSDKLoginKit.framework/FBSDKLoginKit
Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/tvos-arm64_x86_64-simulator/FBSDKLoginKit.framework/FBSDKLoginKit
Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/FBSDKLoginKit
Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKLoginKit.framework/FBSDKLoginKit
Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/ios-arm64/FBSDKLoginKit.framework/FBSDKLoginKit
Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK
Pods/MOBFoundation/MOBFoundation/MOBFoundation.xcframework/ios-arm64/MOBFoundation.framework/MOBFoundation
Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/FirebaseAnalytics
Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics
Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/FirebaseAnalytics
Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics
Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/FirebaseAnalytics
Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64/FirebaseAnalytics.framework/FirebaseAnalytics
Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/tvos-arm64/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/tvos-arm64_x86_64-simulator/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/ios-arm64_x86_64-simulator/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/ios-arm64/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
Pods/mob_sharesdk/ShareSDK/Support/Required/ShareSDKConnector.framework/ShareSDKConnector
Pods/mob_sharesdk/ShareSDK/Support/Optional/ShareSDKExtension.framework/ShareSDKExtension
Pods/mob_sharesdk/ShareSDK/Support/PlatformConnector/AppleAccountConnector.framework/AppleAccountConnector
Pods/mob_sharesdk/ShareSDK/ShareSDK.framework/ShareSDK
Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.xcframework/ios-arm64_i386_x86_64-simulator/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.xcframework/ios-arm64_x86_64-maccatalyst/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.xcframework/ios-arm64_armv7/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
Pods/mob_sharesdk/ShareSDK/Support/Required/ShareSDKConnector.xcframework/ios-arm64_x86_64-simulator/ShareSDKConnector.framework/ShareSDKConnector
Pods/mob_sharesdk/ShareSDK/Support/Required/ShareSDKConnector.xcframework/ios-arm64/ShareSDKConnector.framework/ShareSDKConnector
Pods/Bugly/Bugly.framework/Bugly
Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/tvos-arm64/FBSDKShareKit.framework/FBSDKShareKit
Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/tvos-arm64_x86_64-simulator/FBSDKShareKit.framework/FBSDKShareKit
Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/ios-arm64_x86_64-simulator/FBSDKShareKit.framework/FBSDKShareKit
Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKShareKit.framework/FBSDKShareKit
Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/ios-arm64/FBSDKShareKit.framework/FBSDKShareKit
./Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/tvos-arm64/FBSDKCoreKit.framework/FBSDKCoreKit
./Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/tvos-arm64_x86_64-simulator/FBSDKCoreKit.framework/FBSDKCoreKit
./Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64_x86_64-simulator/FBSDKCoreKit.framework/FBSDKCoreKit
./Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKCoreKit.framework/FBSDKCoreKit
./Pods/FBSDKCoreKit/XCFrameworks/FBSDKCoreKit.xcframework/ios-arm64/FBSDKCoreKit.framework/FBSDKCoreKit
./Pods/UMDevice/UMDevice_3.4.0/UMDevice.xcframework/ios-arm64_x86_64-simulator/UMDevice.framework/UMDevice
./Pods/UMDevice/UMDevice_3.4.0/UMDevice.xcframework/ios-arm64_armv7/UMDevice.framework/UMDevice
./Pods/mob_linksdk_pro/MobLinkPro/MobLinkPro.framework/MobLinkPro
./Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/tvos-arm64/FBAEMKit.framework/FBAEMKit
./Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/tvos-arm64_x86_64-simulator/FBAEMKit.framework/FBAEMKit
./Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/ios-arm64_x86_64-simulator/FBAEMKit.framework/FBAEMKit
./Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/ios-arm64_x86_64-maccatalyst/FBAEMKit.framework/FBAEMKit
./Pods/FBAEMKit/XCFrameworks/FBAEMKit.xcframework/ios-arm64/FBAEMKit.framework/FBAEMKit
./Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/tvos-arm64/FBSDKLoginKit.framework/FBSDKLoginKit
./Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/tvos-arm64_x86_64-simulator/FBSDKLoginKit.framework/FBSDKLoginKit
./Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-simulator/FBSDKLoginKit.framework/FBSDKLoginKit
./Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKLoginKit.framework/FBSDKLoginKit
./Pods/FBSDKLoginKit/XCFrameworks/FBSDKLoginKit.xcframework/ios-arm64/FBSDKLoginKit.framework/FBSDKLoginKit
./Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
./Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK
./Pods/MOBFoundation/MOBFoundation/MOBFoundation.xcframework/ios-arm64/MOBFoundation.framework/MOBFoundation
./Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64/FirebaseAnalytics.framework/FirebaseAnalytics
./Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/tvos-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics
./Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/macos-arm64_x86_64/FirebaseAnalytics.framework/FirebaseAnalytics
./Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-simulator/FirebaseAnalytics.framework/FirebaseAnalytics
./Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64_x86_64-maccatalyst/FirebaseAnalytics.framework/FirebaseAnalytics
./Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.xcframework/ios-arm64/FirebaseAnalytics.framework/FirebaseAnalytics
./Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/tvos-arm64/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
./Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/tvos-arm64_x86_64-simulator/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
./Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/ios-arm64_x86_64-simulator/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
./Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
./Pods/FBSDKCoreKit_Basics/XCFrameworks/FBSDKCoreKit_Basics.xcframework/ios-arm64/FBSDKCoreKit_Basics.framework/FBSDKCoreKit_Basics
./Pods/mob_sharesdk/ShareSDK/Support/Required/ShareSDKConnector.framework/ShareSDKConnector
./Pods/mob_sharesdk/ShareSDK/Support/Optional/ShareSDKExtension.framework/ShareSDKExtension
./Pods/mob_sharesdk/ShareSDK/Support/PlatformConnector/AppleAccountConnector.framework/AppleAccountConnector
./Pods/mob_sharesdk/ShareSDK/ShareSDK.framework/ShareSDK
./Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.xcframework/ios-arm64_i386_x86_64-simulator/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
./Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.xcframework/ios-arm64_x86_64-maccatalyst/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
./Pods/QCloudTrack/QCloudTrack/Classes/BeaconFramework/COSBeaconAPI_Base.xcframework/ios-arm64_armv7/COSBeaconAPI_Base.framework/COSBeaconAPI_Base
./Pods/mob_sharesdk/ShareSDK/Support/Required/ShareSDKConnector.xcframework/ios-arm64_x86_64-simulator/ShareSDKConnector.framework/ShareSDKConnector
./Pods/mob_sharesdk/ShareSDK/Support/Required/ShareSDKConnector.xcframework/ios-arm64/ShareSDKConnector.framework/ShareSDKConnector
./Pods/Bugly/Bugly.framework/Bugly
./Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/tvos-arm64/FBSDKShareKit.framework/FBSDKShareKit
./Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/tvos-arm64_x86_64-simulator/FBSDKShareKit.framework/FBSDKShareKit
./Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/ios-arm64_x86_64-simulator/FBSDKShareKit.framework/FBSDKShareKit
./Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/ios-arm64_x86_64-maccatalyst/FBSDKShareKit.framework/FBSDKShareKit
./Pods/FBSDKShareKit/XCFrameworks/FBSDKShareKit.xcframework/ios-arm64/FBSDKShareKit.framework/FBSDKShareKit
./YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/ZegoAudioRoom