Commit b7a17bf7 by ludi

完成完善用户资料页面

parent 34fcf3bf
Showing with 434 additions and 123 deletions
//
// FUSRemindToDataModel.h
// FUSCommon
//
// Created by aaa on 2024/11/26.
//
#import <FUSFoundation/FUSFoundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface FUSRemindToDataModel : FUSBaseModel
/// 昵称(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toNickname;
/// 生日(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toBirth;
/// 身高(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toHeight;
/// 体重(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toWeight;
/// 地区(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toAddr;
/// 签名(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toSign;
/// 头像(0:已填\1:未填)
@property (nonatomic, assign) NSInteger toFace;
@end
NS_ASSUME_NONNULL_END
//
// FUSRemindToDataModel.m
// FUSCommon
//
// Created by aaa on 2024/11/26.
//
#import "FUSRemindToDataModel.h"
@implementation FUSRemindToDataModel
@end
......@@ -41,8 +41,8 @@ typedef NS_ENUM(NSUInteger,FUSJumpType) {
// FUSJLiveGift = 41,
// /// 直播间背包礼物选择
// FUSJLiveBackpackGift = 42,
// /// 用户信息完善引导
// FUSJUserInfoCompleteGuide = 43,
/// 用户信息完善引导
FUSJUserInfoCompleteGuide = 43,
// /// 用户调起自己的直播预告列表
// FUSJLMLiveStartPreviewListView = 44,
};
......
......@@ -1146,6 +1146,9 @@ NSString * const kEVENT_RECHARGE_FIRST_RECHARGE_WINDOW_RECEIVE_OFFICIAL_RECAHARG
[FUSRechargeViewController fus_showRechargeViewControllerForRootVC:[UIViewController fus_topViewController] from:FUSFromLiveRoom rechargePageFrom:FUSRechargePageFromRoomGiftGEMsLack backHandler:^{
}];
}
case FUSJUserInfoCompleteGuide:{
[FUSRouter.userRouter fus_pushToCompleteUserInfoWithController:nil type:0];
}
break;
default:
break;
......
......@@ -20,7 +20,6 @@
#import "FUSUserTradeRemindModel.h"
#import "FUSLiveStartConfigModel.h"
#import "FUSZoneInfosModel.h"
#import "FUSOnetoOneCheckQualificationModel.h"
#import "FUSSettingDataModel.h"
@interface FUSCacheDataShare : NSObject
......@@ -36,13 +35,6 @@
// 当前登录用户详细信息
@property (nonatomic, strong) FUSUserInfosModel *userDetailInfo;
/// 记录当前最新的myZoneInfoModel,网络请求的总会覆盖掉缓存的
@property (nonatomic, strong) FUSZoneInfosModel *myZoneInfoModel;
/// 校验是否已更新账号资料
@property (nonatomic, strong) FUSOnetoOneCheckQualificationModel *onetoOneCheckQualificationModel;
@property (nonatomic, strong) FUSLangAreaCountryModel *areaCountryInfo; // 語言、語區、註冊國家相關信息
// 空间相关数据
......
......@@ -17,10 +17,31 @@ import RxSwift
/// 用户设置,现在暂时只做了部分属性的跟踪,如定位,其他属性需要做到的时候补全
@objc public var oc_settingData:FUSSettingDataModel?{
get{ FUSSwiftCacheDataShare.share.settingData.value }
set{ FUSSwiftCacheDataShare.share.settingData.accept(oc_settingData) }
set{ FUSSwiftCacheDataShare.share.settingData.accept(newValue) }
}
/// 用户信息未填写提醒
@objc public var oc_remindToData: FUSRemindToDataModel? {
get{ FUSSwiftCacheDataShare.share.remindToData.value }
set{ FUSSwiftCacheDataShare.share.remindToData.accept(newValue) }
}
/// 校验是否已更新账号资料
@objc public var oc_onetoOneCheckQualification: FUSOnetoOneCheckQualificationModel? {
get{ FUSSwiftCacheDataShare.share.onetoOneCheckQualification.value }
set{ FUSSwiftCacheDataShare.share.onetoOneCheckQualification.accept(newValue) }
}
/// 记录当前最新的myZoneInfoModel,网络请求的总会覆盖掉缓存的
@objc public var oc_myZoneInfo: FUSZoneInfosModel? {
get{ FUSSwiftCacheDataShare.share.myZoneInfo.value }
set{ FUSSwiftCacheDataShare.share.myZoneInfo.accept(newValue) }
}
// - swift PART
/// 用户设置,现在暂时只做了部分属性的跟踪,如定位,其他属性需要做到的时候补全
public let settingData: BehaviorRelay<FUSSettingDataModel?> = .init(value: nil)
/// 用户信息未填写提醒
public let remindToData: BehaviorRelay<FUSRemindToDataModel?> = .init(value: nil)
/// 校验是否已更新账号资料
public let onetoOneCheckQualification: BehaviorRelay<FUSOnetoOneCheckQualificationModel?> = .init(value: nil)
/// 记录当前最新的myZoneInfoModel,网络请求的总会覆盖掉缓存的
public let myZoneInfo: BehaviorRelay<FUSZoneInfosModel?> = .init(value: nil)
}
......@@ -10,6 +10,7 @@
#import "FUSTopRightBadgeButton.h"
#import <Masonry/Masonry.h>
#import "FUSMainViewControllerHelper.h"
#import <FUSCommon/FUSCommon-Swift.h>
#import "FUSCommonUDKeys.h"
......@@ -196,8 +197,8 @@
if (needShow) {
NSDictionary *infoDic = [[NSUserDefaults standardUserDefaults] objectForKey:BOUND_AGENT_INFO];
if (infoDic && [infoDic[@"bindagent"] integerValue] == 1){
if ([FUSCacheDataShare shareStore].myZoneInfoModel &&
[[FUSCacheDataShare shareStore].myZoneInfoModel.invite[@"isShow"] boolValue]) {
if ([FUSSwiftCacheDataShare share].oc_myZoneInfo &&
[[FUSSwiftCacheDataShare share].oc_myZoneInfo.invite[@"isShow"] boolValue]) {
otherShouldShow = YES;
}
}
......@@ -213,8 +214,8 @@
if (needShow) {
NSDictionary *infoDic = [[NSUserDefaults standardUserDefaults] objectForKey:BOUND_AGENT_INFO];
if (!infoDic) {
if ([FUSCacheDataShare shareStore].myZoneInfoModel &&
[[FUSCacheDataShare shareStore].myZoneInfoModel.invite[@"isShow"] boolValue]) {
if ([FUSSwiftCacheDataShare share].oc_myZoneInfo &&
[[FUSSwiftCacheDataShare share].oc_myZoneInfo.invite[@"isShow"] boolValue]) {
otherShouldShow = YES;
}
}
......@@ -222,8 +223,8 @@
}
//任务奖励
if ([FUSCacheDataShare shareStore].myZoneInfoModel &&
[[FUSCacheDataShare shareStore].myZoneInfoModel.waitReceiveTotal integerValue] > 0
if ([FUSSwiftCacheDataShare share].oc_myZoneInfo &&
[[FUSSwiftCacheDataShare share].oc_myZoneInfo.waitReceiveTotal integerValue] > 0
&& FUSConfig.sharedInstanced.devConfigs.appStatus == NO){
otherShouldShow = YES;
}
......
......@@ -64,6 +64,7 @@
#import "FUSOCBaseView.h"
#import "FUSSettingDataModel.h"
#import "FUSUserManagerVoiceSignModel.h"
#import "FUSRemindToDataModel.h"
#import "FUSAliOSSModel.h"
#import "FUSAliOSSUploadFileModel.h"
#import "FUSMomentCreateModel.h"
......
......@@ -77,6 +77,9 @@ NS_ASSUME_NONNULL_BEGIN
- (void)fus_showNewsFeedDetailVC:(NSString *)topicId;
/// 进入完成用户资料页面
-(void)fus_pushToCompleteUserInfoWithController:(UIViewController *)vc type:(NSInteger)type;
#pragma mark - Public Http
/**
......
......@@ -7,12 +7,12 @@
<key>FUSChatCenterBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>74</integer>
<integer>73</integer>
</dict>
<key>FUSChatCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>71</integer>
<integer>77</integer>
</dict>
</dict>
</dict>
......
......@@ -7,12 +7,12 @@
<key>FUSShowRoomBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>76</integer>
<integer>75</integer>
</dict>
<key>FUSShowRoomModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>75</integer>
<integer>76</integer>
</dict>
</dict>
</dict>
......
{
"Signature": "RqP81gBONHgxeBkYBv59/23r03ReNtrsf73EUC1LSuSRK4kYCh37/jyrJ080oPozymGEvPW9banFeoOTJEGGyuX15phDBVBhPSEoYdJyLRN92o9H7GRSpiheMawun0n1Q5soe/hjhOliKMqMn+/d5y3QClaBmMoKGUpmcOSxZ+OcbtsTaoNygjZm/58JpusYLSxGbkMc4mchIOZoS3SzOoaQYm9vPcu+IabQFe6NIgRcaropGJQS7Z+Jxl98chdaw0QVQbapICuL7mWKsRsqZGpMup4q3TvItGZgw390sPnZu+3p0p0wiSLF6Iq7ufdxrqB1GtTjmSFS2KUceK0CkA==",
"Content": "eyJJZCI6IjEwMDY2NyIsICJWZXJzaW9uIjoyLCAiQ2hhbm5lbCI6InZvZCIsICJUeXBlIjoyLCAiUGFja2FnZU5hbWUiOiJjb20ubWl0YW8ubGl2ZSIsICJCdW5kbGVJZCI6ImNvbS5mdC5jaGF0LmlvcyIsICJNb2R1bGVzIjpbeyJOYW1lIjoidm9kX3BsYXkiLCAiRWRpdGlvbiI6InByZW1pdW1fZWRpdGlvbiIsICJTdGFydFRpbWUiOjE2NDA2ODA5MDAxMzUsICJFeHBpcmVUaW1lIjoxNzAzNzUyOTAwMTM1LCAiRXhwaXJlQnVmZmVyIjoxNTU1MjAwMDAwMH0sIHsiTmFtZSI6ImxpdmVfcHVzaCIsICJFZGl0aW9uIjoicHJlbWl1bV9lZGl0aW9uIiwgIlN0YXJ0VGltZSI6MTY0MDY4MDkwMDEzNSwgIkV4cGlyZVRpbWUiOjE3MDM3NTI5MDAxMzUsICJFeHBpcmVCdWZmZXIiOjE1NTUyMDAwMDAwfSwgeyJOYW1lIjoibGl2ZV9wdWxsIiwgIkVkaXRpb24iOiJwcmVtaXVtX2VkaXRpb24iLCAiU3RhcnRUaW1lIjoxNjQwNjgwOTAwMTM1LCAiRXhwaXJlVGltZSI6MTcwMzc1MjkwMDEzNSwgIkV4cGlyZUJ1ZmZlciI6MTU1NTIwMDAwMDB9XSwgIkZpbGVWZXJzaW9uIjoiMTY0MDY4MDkwMDE1Mzg0ODA1NyJ9",
"MainURL": "https://vod-license-m.volccdn.com/vod-license/l-100667-ch-vod-a-209566.lic?x-expires=4794280900&x-signature=b21JKaZc%2Bx1hBlChvd8uedRTq5k%3D",
"BackupURL": "https://vod-license-b.volccdn.com/vod-license/l-100667-ch-vod-a-209566.lic?x-expires=4794280900&x-signature=iNd3uLcF%2FjtSd53v5aZOfLz%2FfD0%3D",
"Id": "100667"
}
\ No newline at end of file
......@@ -10,6 +10,8 @@
00495FD52CF0931900B6F8D3 /* FUSCompleteUserInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00495FD42CF0931900B6F8D3 /* FUSCompleteUserInfoViewController.swift */; };
00495FD82CF093E700B6F8D3 /* FUSCompleteUserInfoViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00495FD72CF093E700B6F8D3 /* FUSCompleteUserInfoViewModel.swift */; };
008C636E2CF5AE4200694F7F /* FUSCompleteUserInfoNameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 008C636D2CF5AE4200694F7F /* FUSCompleteUserInfoNameView.swift */; };
008C63762CF5BC5600694F7F /* FUSGetUserInfoChangedModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 008C63742CF5BC5600694F7F /* FUSGetUserInfoChangedModel.h */; };
008C63772CF5BC5600694F7F /* FUSGetUserInfoChangedModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 008C63752CF5BC5600694F7F /* FUSGetUserInfoChangedModel.m */; };
008FF1112CEF42A1002974EA /* FUSChatSettingOneToOneHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 008FF10F2CEF42A1002974EA /* FUSChatSettingOneToOneHeaderView.h */; };
008FF1122CEF42A1002974EA /* FUSChatSettingOneToOneHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 008FF1102CEF42A1002974EA /* FUSChatSettingOneToOneHeaderView.m */; };
008FF1152CEF45FA002974EA /* FUSOneToOnePriceGetListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 008FF1142CEF45FA002974EA /* FUSOneToOnePriceGetListModel.m */; };
......@@ -850,6 +852,8 @@
00495FD42CF0931900B6F8D3 /* FUSCompleteUserInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSCompleteUserInfoViewController.swift; sourceTree = "<group>"; };
00495FD72CF093E700B6F8D3 /* FUSCompleteUserInfoViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSCompleteUserInfoViewModel.swift; sourceTree = "<group>"; };
008C636D2CF5AE4200694F7F /* FUSCompleteUserInfoNameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSCompleteUserInfoNameView.swift; sourceTree = "<group>"; };
008C63742CF5BC5600694F7F /* FUSGetUserInfoChangedModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSGetUserInfoChangedModel.h; sourceTree = "<group>"; };
008C63752CF5BC5600694F7F /* FUSGetUserInfoChangedModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSGetUserInfoChangedModel.m; sourceTree = "<group>"; };
008FF10F2CEF42A1002974EA /* FUSChatSettingOneToOneHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSChatSettingOneToOneHeaderView.h; sourceTree = "<group>"; };
008FF1102CEF42A1002974EA /* FUSChatSettingOneToOneHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSChatSettingOneToOneHeaderView.m; sourceTree = "<group>"; };
008FF1132CEF45FA002974EA /* FUSOneToOnePriceGetListModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSOneToOnePriceGetListModel.h; sourceTree = "<group>"; };
......@@ -1715,6 +1719,7 @@
00495FD22CF092BC00B6F8D3 /* CompleteUserInfo */ = {
isa = PBXGroup;
children = (
008C63732CF5BC4100694F7F /* Model */,
00495FD92CF094AF00B6F8D3 /* View */,
00495FD62CF093D000B6F8D3 /* ViewModel */,
00495FD32CF092DD00B6F8D3 /* Controller */,
......@@ -1751,6 +1756,15 @@
path = View;
sourceTree = "<group>";
};
008C63732CF5BC4100694F7F /* Model */ = {
isa = PBXGroup;
children = (
008C63742CF5BC5600694F7F /* FUSGetUserInfoChangedModel.h */,
008C63752CF5BC5600694F7F /* FUSGetUserInfoChangedModel.m */,
);
path = Model;
sourceTree = "<group>";
};
A36D765B1D979440E372777D /* Pods */ = {
isa = PBXGroup;
children = (
......@@ -3448,6 +3462,7 @@
BE78CC6A2C538D7F00F38855 /* CustomIOSAlertView.h in Headers */,
BE78CD082C538D8000F38855 /* NEW_FUSFullImageCollectionViewCell.h in Headers */,
BE189AA12C7323FE0008418B /* FSRSettingdictDynamicImView.h in Headers */,
008C63762CF5BC5600694F7F /* FUSGetUserInfoChangedModel.h in Headers */,
BE189A3F2C7323FE0008418B /* FSRPrivacyModel.h in Headers */,
BEDEDC412C66075400B4B0B0 /* FUSCheckRecieveModel.h in Headers */,
BE78CB302C538D7E00F38855 /* FUSLoginHttpHelper.h in Headers */,
......@@ -4250,6 +4265,7 @@
BE78C8AF2C537E1600F38855 /* FUSUserCenterRouter.m in Sources */,
BE78CCD12C538D8000F38855 /* TZImageRequestOperation.m in Sources */,
BE78CCC72C538D8000F38855 /* TZAssetModel.m in Sources */,
008C63772CF5BC5600694F7F /* FUSGetUserInfoChangedModel.m in Sources */,
BE78CB0C2C538D7D00F38855 /* FUSLoginFailReportViewController.m in Sources */,
009CC3282CF17BE4000AA251 /* FUSCompleteUserInfoAvatarView.swift in Sources */,
BE78CC222C538D7F00F38855 /* FUSBlackListTableViewCell.m in Sources */,
......
......@@ -7,12 +7,12 @@
<key>FUSUserCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>72</integer>
<integer>74</integer>
</dict>
<key>FUSUserCenterModuleBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>73</integer>
<integer>72</integer>
</dict>
</dict>
</dict>
......
//
// FUSGetUserInfoChangedModel.h
// FUSUserCenterModule
//
// Created by aaa on 2024/11/26.
//
#import <FUSFoundation/FUSFoundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface FUSGetUserInfoChangedModel : FUSBaseModel
/// 昵称(0:未修改、1:已修改)
@property (nonatomic, assign) BOOL changedNickName;
/// 性别(0:未修改、1:已修改)
@property (nonatomic, assign) BOOL changedSex;
/// 生日(0:未修改、1:已修改)
@property (nonatomic, assign) BOOL changedBirth;
@end
NS_ASSUME_NONNULL_END
//
// FUSGetUserInfoChangedModel.m
// FUSUserCenterModule
//
// Created by aaa on 2024/11/26.
//
#import "FUSGetUserInfoChangedModel.h"
@implementation FUSGetUserInfoChangedModel
@end
......@@ -6,6 +6,7 @@
//
import UIKit
import RxSwift
class FUSCompleteUserInfoAvatarView: FUSBaseView {
......@@ -151,23 +152,29 @@ class FUSCompleteUserInfoAvatarView: FUSBaseView {
self?.clickedUploadHandler?()
}).disposed(by: disposeBag)
}
}
extension FUSCompleteUserInfoAvatarView: FUSCompleteUserInfoBaseProtocol{
func fus_setupModel(model: FUSCompleteUserInfoViewModel) {
reuseDisposeBag = DisposeBag()
model.editUserInfoModel.subscribe(onNext: {[weak self] editModel in
self?.avatarBtn.setBackgroundImageWith(.init(string: editModel.face?.ff_bigCdn ?? ""), for: .normal, placeholder: .fus_defaultIcon())
self?.exampleLeftAvatarImgView.setImageWith(.init(string: editModel.face?.ff_bigCdn ?? ""), placeholder: .fus_defaultIcon())
self?.avatarBtn.setWebBackgroundImageWithSubURLString(editModel.face ?? "", placeholder: .fus_defaultIcon())
self?.exampleLeftAvatarImgView.setWebImageWithSubURLString(editModel.face ?? "", placeholder: .fus_defaultIcon())
// self?.avatarBtn.setBackgroundImageWith(.init(string: editModel.face ?? ""), for: .normal, placeholder: .fus_defaultIcon())
// self?.exampleLeftAvatarImgView.setImageWith(.init(string: editModel.face ?? ""), placeholder: .fus_defaultIcon())
}).disposed(by: disposeBag)
}).disposed(by: reuseDisposeBag)
model.avatarDidSet.subscribe(onNext: {[weak self] faceSet in
self?.uploadRedDot.isHidden = faceSet
}).disposed(by: disposeBag)
}).disposed(by: reuseDisposeBag)
}
func fus_viewWillAppear(_ animated: Bool) {
......
......@@ -6,6 +6,7 @@
//
import UIKit
import SJAttributesStringMaker
class FUSCompleteUserInfoNameView: FUSBaseView {
......@@ -35,16 +36,16 @@ class FUSCompleteUserInfoNameView: FUSBaseView {
make.top.equalTo(settingNickNameTextLabel.snp.bottom).offset(10)
}
editNameCardBtn.setAttributedTitle(.sj.makeText({ make in
make.append(.localString("修改暱称消耗")).textColor(.hexColor("#999999"))
make.append(.fus_versionLocalString("修改暱称消耗")).textColor(.fus_textColorLight())
make.append(" ")
make.append(.localString("改名卡")).textColor(.themeSubColor)
make.append(.fus_versionLocalString("改名卡")).textColor(.fus_theme())
make.append(" ")
make.append("x1").textColor(.white)
make.font(.ff_default(14))
make.append("x1").textColor(.fus_textColorRich())
make.font(.fus_themeFont(14))
}), for: .normal)
let textFieldBgView = UIView()
textFieldBgView.backgroundColor = .textFieldBackgroundColorWhite
textFieldBgView.backgroundColor = .fus_textInputBackgroundGray()
textFieldBgView.layer.cornerRadius = 8
textFieldBgView.layer.masksToBounds = true
self.addSubview(textFieldBgView)
......@@ -54,8 +55,9 @@ class FUSCompleteUserInfoNameView: FUSBaseView {
make.height.equalTo(54)
}
nickNameTextField.font = .ff_default(17)
nickNameTextField.textColor = .white
nickNameTextField.font = .fus_themeFont(17)
nickNameTextField.textColor = .fus_textColorRich()
nickNameTextField.backgroundColor = .clear
// nickNameTextField.ya_delegate = self
nickNameTextField.returnKeyType = .done
textFieldBgView.addSubview(nickNameTextField)
......@@ -70,7 +72,7 @@ class FUSCompleteUserInfoNameView: FUSBaseView {
override func bindViewModel() {
super.bindViewModel()
self.nickNameTextField.text = Mediator.UserCenter?.userInfo.value?.nickname
self.nickNameTextField.text = FUSCacheDataShare.shareStore().userDetailInfo.nickname
NotificationCenter.default.rx.notification(UIResponder.keyboardWillHideNotification)
.subscribe(onNext: {[weak self] notifi in
......
......@@ -350,15 +350,21 @@ extension FUSCompleteUserInfoVoiceSignView {
if floor(currentTime) >= 60 {
self.fus_finishRecording()
}
} startComplete: { start in
} startComplete: {[weak self] start in
guard let self = self else { return }
if start {
self.isRecording = true
self.signTitleLabel.text = .fus_versionLocalString("录制中...")
}
} endRecordHandler: {[weak self] succeed in
guard let self = self else { return }
if succeed {
self.isRecording = true
self.signTitleLabel.text = .fus_versionLocalString("录制中...")
// self.isRecording = true
// self.signTitleLabel.text = .fus_versionLocalString("录制中...")
}else {
FUSDialogView.fus_showDialog(.fus_versionLocalString("录制失败"))
self.fus_resetRecordState()
......@@ -418,14 +424,22 @@ extension FUSCompleteUserInfoVoiceSignView {
func fus_saveRecordAction(){
if let recordAudioURL = self.recordAudioURL{
// ludy: 这里如果不创建,直接用,那么就会是nsurl,印度佬自己隐式转换没玩明白,自己得兼容
let recordAudioURL1: URL = .init(fileURLWithPath: recordAudioURL.absoluteString)
do{
let data = try Data(contentsOf: recordAudioURL)
let data = try Data(contentsOf: recordAudioURL1)
FUSLoadingView.fus_showProgressView(withMessage: "", canTouchBottomView: true)
FUSZoneHttpRequest.fus_updateUserVoiceSign(data, duration: Int(self.recordTime)) { code in
FUSLoadingView.fus_dismissProgressView()
//TODO: 注意,这里还有 FFPersonalPageViewModel.shared.refreshPersonalPageData() 没有翻译,大概是用来刷新personnalpage的一些操作,但是我们返回的时候就会刷新,不知道跟不跟得上,后续确认能跟上后删掉此行
// 刷新空间
FUSZoneHttpRequest.fus_getNewMyZoneInfosSuccess { dataDict, code in
} failure: { msg, code in
}
FUSSettingHttpRequest.fus_userManagerVoiceSignGetSuccess {[weak self] model in
guard let self = self else { return }
self.viewModel?.userManagerVoiceSign.accept(model)
......
......@@ -18,6 +18,7 @@
#import <Masonry/Masonry.h>
#import <FUSCommon/FUSCommon-Swift.h>
typedef NS_ENUM(NSInteger, FUSImAnchorItemType){
FUSImAnchorItemTypeLiveTask = 1,
......@@ -261,7 +262,7 @@ typedef NS_ENUM(NSInteger, FUSImAnchorItemType){
}
break;
case FUSImAnchorItemTypePrivacyRoomSetting:{
NSInteger callPirce = [[FUSCacheDataShare shareStore].myZoneInfoModel.chatWith[@"callPrice"] integerValue];
NSInteger callPirce = [[FUSSwiftCacheDataShare share].oc_myZoneInfo.chatWith[@"callPrice"] integerValue];
if (callPirce > 0) {
itemModel.rightShowText = [NSString stringWithFormat:@" %ld%@/min",(long)callPirce,[NSString fus_versionLocalString:@"宝石"]];
}else {
......
......@@ -29,6 +29,7 @@
#import <FirebaseAnalytics/FirebaseAnalytics.h>
#import <SJAttributesFactory/SJAttributesFactory.h>
#import "FUSCommon/FUSCommon-Swift.h"
@interface FUSMessageRegisterViewController () <UITextFieldDelegate, UITextFieldDelegate, FUSTextFieldDelegate>
......@@ -588,6 +589,10 @@
NSDictionary *userInfo = [dataDict objectForKey:@"user"];
FUSUserInfosModel *userInfoModel = [FUSUserInfosModel fus_modelWithDict:userInfo];
NSDictionary *remindToData = [dataDict objectForKey:@"remindToData"];
FUSRemindToDataModel *remindToDataModel = [FUSRemindToDataModel fus_modelWithDict:remindToData];
[FUSSwiftCacheDataShare share].oc_remindToData = remindToDataModel;
[FUSCacheDataShare shareStore].userVerifyInfo = [[FUSUserVerifyModel alloc] initWithPhone:weakSelf.phone uid:uid token:token countryCode:weakSelf.countryCode];
// 登录验证信息存储到本地
......
......@@ -27,5 +27,8 @@
*/
+ (void)fus_getUserVerifyStateSuccess:(void (^)(NSInteger authState,NSString *authFace,BOOL isNewAuth))success failure:(void (^)(NSString *msg))failure;
/// 刷新用户数据
+ (void)fus_refreshUserInfo;
@end
......@@ -82,5 +82,13 @@
}];
}
+ (void)fus_refreshUserInfo{
[FUSLoginCacheOperate fus_getUserInfosWithType:ReadServerBegin success:^(id userInfoModel) {
} failure:^(NSString *msg, int code) {
}];
}
@end
......@@ -7,6 +7,7 @@
//
#import "FUSLoginHttpHelper.h"
#import <FUSCommon/FUSCommon-Swift.h>
@implementation FUSLoginHttpHelper
......@@ -745,6 +746,10 @@
// 获取字典中的用户信息
NSDictionary *userInfo = [dataDict objectForKey:@"user"];
NSDictionary *remindToData = [dataDict objectForKey:@"remindToData"];
FUSRemindToDataModel *remindToDataModel = [FUSRemindToDataModel fus_modelWithDict:remindToData];
[FUSSwiftCacheDataShare share].oc_remindToData = remindToDataModel;
//更新用户区号,解决不同第三方登录各自绑定不同的国家地区的手机区号不同的问题
NSString *countryCode = [userInfo[@"countrycode"] description];
[FUSCacheDataShare shareStore].userVerifyInfo.countryCode = countryCode;
......
......@@ -187,10 +187,9 @@
case 0: {
if (self.detailCompleteStage == -1) {
//TODO: 这里要写FFCompleteUserInfoViewController 正在写
// FFCompleteUserInfoViewController *vc = [[FFCompleteUserInfoViewController alloc] init];
// [vc ff_setControllerTypeWithType:1];
// [[UIViewController topViewController].navigationController pushViewController:vc animated:YES];
FUSCompleteUserInfoViewController *vc = [[FUSCompleteUserInfoViewController alloc] init];
[vc fus_setControllerTypeWithType:1];
[self.navigationController pushViewController:vc animated:YES];
}else if ( self.detailCompleteStage == 0) {
[FUSAlertView showAlertWithTitle:[NSString fus_versionLocalString:@"私房价格"] message:[NSString fus_versionLocalString:@"个人资料正在审核中,请耐心等候"] cancelButtonTitle:nil otherButtonTitles:@[[NSString fus_versionLocalString:@"我知道了"]] clickBlock:^(NSInteger buttonIndex) {
......
......@@ -249,4 +249,22 @@
success:(void (^)(NSDictionary *dataDict))success
failure:(void (^)(NSString *msg, int code))failure;
/// 更新用户信息,与updateUserInfo不同的地方是这个可以单独对某一个属性进行更新,而不会影响其他属性,也就是不需要一次性保存所有
/// @param sign 签名
/// @param height 身高
/// @param weight 体重
/// @param work 职业
/// @param culture 文化
/// @param birth 生日
/// @param success 成功 dataDict 一般没用
/// @param failure 失败
+(void)fus_userExtraInfoUpdateWithSign:(NSString *)sign
height:(NSString *)height
weight:(NSString *)weight
work:(NSString *)work
culture:(NSString *)culture
birth:(NSString *)birth
success:(void (^)(NSDictionary *dataDict))success
failure:(void (^)(NSString * msg, int code))failure;
@end
......@@ -543,7 +543,7 @@
+ (void)fus_oneToOneCheckQualificationSuccess:(void (^)(FUSOnetoOneCheckQualificationModel *))success failure:(void (^)(NSString *, int))failure{
[FUSHttpHelper postRequestBinaryWithUrl:FUSUserCenterURLs.fus_URL_OneToOneCheckQualification params:nil success:^(NSDictionary * _Nullable dataDict, int code) {
FUSOnetoOneCheckQualificationModel *model = [FUSOnetoOneCheckQualificationModel fus_modelWithDict:dataDict];
[FUSCacheDataShare shareStore].onetoOneCheckQualificationModel = model;
[FUSSwiftCacheDataShare share].oc_onetoOneCheckQualification = model;
success(model);
} failure:^(NSDictionary * _Nullable dataDict, int code) {
if (failure) {
......@@ -583,5 +583,39 @@
}
}];
}
/// 更新用户信息,与updateUserInfo不同的地方是这个可以单独对某一个属性进行更新,而不会影响其他属性,也就是不需要一次性保存所有
+ (void)fus_userExtraInfoUpdateWithSign:(NSString *)sign height:(NSString *)height weight:(NSString *)weight work:(NSString *)work culture:(NSString *)culture birth:(NSString *)birth success:(void (^)(NSDictionary *))success failure:(void (^)(NSString *, int))failure{
NSMutableDictionary *parm = [[NSMutableDictionary alloc] init];
if (sign != nil && sign.length > 0) {
parm[@"sign"] = sign;
}
if (height != nil && height.length > 0) {
parm[@"height"] = height;
}
if (weight != nil && weight.length > 0) {
parm[@"weight"] = weight;
}
if (work != nil && work.length > 0) {
parm[@"work"] = work;
}
if (culture != nil && culture.length > 0) {
parm[@"culture"] = culture;
}
if (birth != nil && birth.length > 0) {
parm[@"birth"] = birth;
}
if (parm.allKeys.count <= 0) {
success(nil);
return;
}
[FUSHttpHelper postRequestBinaryWithUrl:FUSUserCenterURLs.fus_URL_userExtraInfoUpdate params:parm success:^(NSDictionary * _Nullable dataDict, int code) {
success(dataDict);
} failure:^(NSDictionary * _Nullable dataDict, int code) {
if (failure) {
failure(FAILURE_MESSAGE,code);
}
}];
}
@end
......@@ -14,6 +14,7 @@
#import "FUSAuthFacePageOneViewController.h"
// 导入通知框架
#import <UserNotifications/UserNotifications.h>
#import <FUSUserCenterModule/FUSUserCenterModule-Swift.h>
@interface FUSChatSettingOneToOneHeaderView()<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
......@@ -174,7 +175,7 @@
// 如果是打开开关的情况
if (sender.isOn == YES) {
[FUSDialogView fus_showDialog:[NSString fus_localString:@"成功开通声视讯"]];
//TODO: 这里还有通知模块还没有迁移过来,太多了,后续看看如何迁移
//TODO: 这里还有通知模块还没有迁移过来,太多了,后续看看如何迁移,现在暂时先用这个弹窗替代,感觉可以不用迁移也行。
// 权限检查,弹窗
// NSString *nID = FFNotificationcomeFromSoureView.soundVideo;
// [BFModule(PersonalPageService) showNotificationAlertTipsViewWithNID:nID parentView:[UIViewController topViewController].view title:[NSString localString:@"开启通知权限,可以帮助您提升接通率,增加通话收入"] name:nil imageUrl:nil actionBlock:nil];
......@@ -440,12 +441,11 @@
else if (code == -3035) {
[FUSAlertView showAlertWithTitle:msg message:nil cancelButtonTitle:[NSString fus_localString:@"取消"] otherButtonTitles:@[[NSString fus_versionLocalString:@"确定"]] clickBlock:^(NSInteger buttonIndex) {
//TODO: 这里要写FFCompleteUserInfoViewController
// if (buttonIndex == 1) {
// FFCompleteUserInfoViewController *vc = [[FFCompleteUserInfoViewController alloc] init];
// [vc ff_setControllerTypeWithType:1];
// [[UIViewController topViewController].navigationController pushViewController:vc animated:YES];
// }
if (buttonIndex == 1) {
FUSCompleteUserInfoViewController *vc = [[FUSCompleteUserInfoViewController alloc] init];
[vc fus_setControllerTypeWithType:1];
[[UIViewController fus_topViewController].navigationController pushViewController:vc animated:YES];
}
}];
}
......
......@@ -13,6 +13,7 @@
#import "FUSMomentCreateModel.h"
#import <FUSCommon/FUSCommon-Swift.h>
@implementation FUSZoneCacheOperate
......@@ -363,8 +364,8 @@
NSMutableDictionary *zoneInfosDict = [[FUSCacheDataShare shareStore] zoneInfosDict];
FUSZoneInfosModel *zoneModel = [zoneInfosDict objectForKey:uid];
if (![FUSBaseModel fus_isNullWithModel:zoneModel]) {
if (![FUSCacheDataShare shareStore].myZoneInfoModel) {
[FUSCacheDataShare shareStore].myZoneInfoModel = zoneModel;
if (![FUSSwiftCacheDataShare share].oc_myZoneInfo) {
[FUSSwiftCacheDataShare share].oc_myZoneInfo = zoneModel;
}
// 回调查询数据
if (success) success(zoneModel);
......@@ -376,8 +377,8 @@
if (type <= 2) {
FUSZoneInfosModel *zoneModel = [FUSZoneDBOperate selectZoneInfosTableWithUid:uid];
if (![FUSBaseModel fus_isNullWithModel:zoneModel]) {
if (![FUSCacheDataShare shareStore].myZoneInfoModel) {
[FUSCacheDataShare shareStore].myZoneInfoModel = zoneModel;
if (![FUSSwiftCacheDataShare share].oc_myZoneInfo) {
[FUSSwiftCacheDataShare share].oc_myZoneInfo = zoneModel;
}
// 更新内存数据
[[[FUSCacheDataShare shareStore] zoneInfosDict] setObject:zoneModel forKey:zoneModel.uid];
......@@ -397,8 +398,6 @@
[FUSZoneDBOperate fus_writeDataToZoneInfosTableWithModel:zoneModel];
// 更新内存数据
[[[FUSCacheDataShare shareStore] zoneInfosDict] setObject:zoneModel forKey:zoneModel.uid];
// 记录一下最新的
[FUSCacheDataShare shareStore].myZoneInfoModel = zoneModel;
// 回调查询数据
if (success) success(zoneModel);
}else{
......
......@@ -17,6 +17,7 @@
#import "FUSBoardModel.h"
#import "FUSLikeBaoFangModel.h"
#import "FUSCheckInListModel.h"
#import <FUSCommon/FUSCommon-Swift.h>
@interface FUSZoneHttpRequest ()
......@@ -488,6 +489,10 @@
if (![FUSBaseModel fus_isNullWithModel:zoneModel]) {
//将更新的信息写入最新的model
[zoneAddInfoModel fus_setValueWithModel:zoneModel];
// 记录一下最新的
[FUSSwiftCacheDataShare share].oc_myZoneInfo = zoneAddInfoModel;
if(success) success(zoneAddInfoModel, code);
}else{
if (failure) failure(@"获取空间信息为空", ERROR_CODE);
......
......@@ -33,5 +33,7 @@
#import "FUSUserCenterURLs.h"
#import "FUSSettingHttpRequest.h"
#import "FUSGetUserInfoChangedModel.h"
#endif /* FUSUserCenterOCHeader_h */
......@@ -77,6 +77,9 @@ NS_ASSUME_NONNULL_BEGIN
/// 1对1私房设置价格
+ (NSString *)fus_URL_oneToOnePriceSet;
/// 更新用户信息,与updateUserInfo不同的地方是这个可以单独对某一个属性进行更新,而不会影响其他属性,也就是不需要一次性保存所有
+ (NSString *)fus_URL_userExtraInfoUpdate;
// 获取用户头像认证状态
+ (NSString *)fus_URL_USER_FACE_AUTH_STATUS;
......
......@@ -110,6 +110,10 @@
+ (NSString *)fus_URL_oneToOnePriceSet{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/onetoone/price/set"];
}
/// 更新用户信息,与updateUserInfo不同的地方是这个可以单独对某一个属性进行更新,而不会影响其他属性,也就是不需要一次性保存所有
+ (NSString *)fus_URL_userExtraInfoUpdate{
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/user/extra/info/update"];
}
// 获取用户头像认证状态
+ (NSString *)fus_URL_USER_FACE_AUTH_STATUS {
......
......@@ -318,6 +318,16 @@
[UIViewController.fus_topViewController.navigationController pushViewController:self.fus_enterVIPVC animated:animate];
}
- (void)fus_pushToCompleteUserInfoWithController:(UIViewController *)vc type:(NSInteger)type{
UIViewController *showOn = vc;
if (showOn == nil) {
showOn = [UIViewController fus_topViewController];
}
FUSCompleteUserInfoViewController *cuinfovc = [[FUSCompleteUserInfoViewController alloc] init];
[cuinfovc fus_setControllerTypeWithType:type];
[showOn.navigationController pushViewController:cuinfovc animated:YES];
}
#pragma mark - Black User
- (void)fus_blackListVC {
......
......@@ -16,6 +16,7 @@ def FUSBasePods()
pod 'Masonry'
pod 'SnapKit'
pod 'SJAttributesFactory' #富文本
pod 'SJAttributesStringMaker' #富文本Swift
pod 'RxCocoa'
pod 'RxSwift'
pod 'RxDataSources'
......
......@@ -231,6 +231,9 @@ PODS:
- SJAttributesFactory/UIKitText (= 2.1.1)
- SJAttributesFactory/Deprecated (2.1.1)
- SJAttributesFactory/UIKitText (2.1.1)
- SJAttributesStringMaker (2.1.1):
- SJAttributesStringMaker/Deprecated (= 2.1.1)
- SJAttributesStringMaker/Deprecated (2.1.1)
- SnapKit (5.7.1)
- TenjinSDK (1.14.3)
- TTSDK/ByteAudio (1.37.2.6-premium-sft)
......@@ -289,6 +292,7 @@ DEPENDENCIES:
- RxDataSources
- RxSwift
- SJAttributesFactory
- SJAttributesStringMaker
- SnapKit
- TTTAttributedLabel
......@@ -336,6 +340,7 @@ SPEC REPOS:
- RxRelay
- RxSwift
- SJAttributesFactory
- SJAttributesStringMaker
- SnapKit
- TenjinSDK
- TTTAttributedLabel
......@@ -401,6 +406,7 @@ SPEC CHECKSUMS:
RxRelay: 4151ba01152436b08271e08410135e099880eae5
RxSwift: b9a93a26031785159e11abd40d1a55bcb8057e52
SJAttributesFactory: 16cd39e6c0e538933db05ddc06d23c8608b13216
SJAttributesStringMaker: 8b5f54c487cc88fa26d2f540166cd43dfceca816
SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
TenjinSDK: ece2612ebe7c02f3ca39712f0977c942f6f604ab
TTSDK: 62840afeaafc0d7b2797267597c96bd6d0bfddf0
......@@ -412,6 +418,6 @@ SPEC CHECKSUMS:
ZipArchive: e25a4373192673e3229ac8d6e9f64a3e5713c966
ZXSDK: 414bed508b670437a9bdf7c75d49816b8cb7b2d4
PODFILE CHECKSUM: a4e36912ce692a100de03600b5ef4582867b6e94
PODFILE CHECKSUM: 0087139e98434188881e3a26f8dd1dcc9daab53d
COCOAPODS: 1.12.1
COCOAPODS: 1.16.2
......@@ -231,6 +231,9 @@ PODS:
- SJAttributesFactory/UIKitText (= 2.1.1)
- SJAttributesFactory/Deprecated (2.1.1)
- SJAttributesFactory/UIKitText (2.1.1)
- SJAttributesStringMaker (2.1.1):
- SJAttributesStringMaker/Deprecated (= 2.1.1)
- SJAttributesStringMaker/Deprecated (2.1.1)
- SnapKit (5.7.1)
- TenjinSDK (1.14.3)
- TTSDK/ByteAudio (1.37.2.6-premium-sft)
......@@ -289,6 +292,7 @@ DEPENDENCIES:
- RxDataSources
- RxSwift
- SJAttributesFactory
- SJAttributesStringMaker
- SnapKit
- TTTAttributedLabel
......@@ -336,6 +340,7 @@ SPEC REPOS:
- RxRelay
- RxSwift
- SJAttributesFactory
- SJAttributesStringMaker
- SnapKit
- TenjinSDK
- TTTAttributedLabel
......@@ -401,6 +406,7 @@ SPEC CHECKSUMS:
RxRelay: 4151ba01152436b08271e08410135e099880eae5
RxSwift: b9a93a26031785159e11abd40d1a55bcb8057e52
SJAttributesFactory: 16cd39e6c0e538933db05ddc06d23c8608b13216
SJAttributesStringMaker: 8b5f54c487cc88fa26d2f540166cd43dfceca816
SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
TenjinSDK: ece2612ebe7c02f3ca39712f0977c942f6f604ab
TTSDK: 62840afeaafc0d7b2797267597c96bd6d0bfddf0
......@@ -412,6 +418,6 @@ SPEC CHECKSUMS:
ZipArchive: e25a4373192673e3229ac8d6e9f64a3e5713c966
ZXSDK: 414bed508b670437a9bdf7c75d49816b8cb7b2d4
PODFILE CHECKSUM: a4e36912ce692a100de03600b5ef4582867b6e94
PODFILE CHECKSUM: 0087139e98434188881e3a26f8dd1dcc9daab53d
COCOAPODS: 1.12.1
COCOAPODS: 1.16.2
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D87DB81EB459E17D536198F7ABFAB0C1"
BuildableName = "SJAttributesStringMaker.framework"
BlueprintName = "SJAttributesStringMaker"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
LastUpgradeVersion = "1600"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment