فهرست منبع

发布版3.0.0

Bob 6 سال پیش
والد
کامیت
3bf3253e5d
51فایلهای تغییر یافته به همراه3136 افزوده شده و 2545 حذف شده
  1. BIN
      HappyJob/HappyJob.xcworkspace/xcuserdata/Bob.xcuserdatad/UserInterfaceState.xcuserstate
  2. 45 64
      HappyJob/HappyJob/AppDelegate.m
  3. 4 1
      HappyJob/HappyJob/DataCenter/Config/HJConfig.h
  4. 1 1
      HappyJob/HappyJob/DataCenter/Model/Resume/HJResumeModel.h
  5. 11 6
      HappyJob/HappyJob/Home_首页/HJHomeViewController.m
  6. 3 3
      HappyJob/HappyJob/Info.plist
  7. 2 0
      HappyJob/HappyJob/Login_登录/HJLoginBindingPhoneViewController.m
  8. 1 6
      HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthFailedViewController.m
  9. 1 6
      HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthSuccessViewController.m
  10. 5 1
      HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthViewController.m
  11. 1 6
      HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthingViewController.m
  12. 2 1
      HappyJob/HappyJob/Me_我/HJMeViewController.m
  13. 1 1
      HappyJob/HappyJob/Me_我/MeAPIManager/HJMeDataBox.m
  14. 1 0
      HappyJob/HappyJob/Me_我/Resume_个人简历/HJResumeViewController.m
  15. 11 4
      HappyJob/HappyJob/Me_我/Resume_个人简历/ResumeAPIManager/HJResumeDataBox.m
  16. 10 1
      HappyJob/HappyJob/Me_我/Resume_个人简历/ResumeAPIManager/HJSaveBasicInfoAPIManager.m
  17. 1 1
      HappyJob/HappyJob/Me_我/Resume_个人简历/ResumeAPIManager/HJSaveExpectationAPIManager.m
  18. 1 1
      HappyJob/HappyJob/Me_我/Resume_个人简历/个人资料/HJBasicInfoViewController.h
  19. 13 6
      HappyJob/HappyJob/Me_我/Resume_个人简历/个人资料/HJBasicInfoViewController.m
  20. 1 1
      HappyJob/HappyJob/Me_我/Resume_个人简历/求职意向/HJExpectationViewController.h
  21. 5 1
      HappyJob/HappyJob/Me_我/Resume_个人简历/求职意向/HJExpectationViewController.m
  22. 1 0
      HappyJob/HappyJob/Me_我/Salary_薪资查询/HJSalaryViewController.m
  23. 8 6
      HappyJob/HappyJob/Me_我/Setting_设置/HJSettingViewController.m
  24. 10 0
      HappyJob/HappyJob/Pageable_分页列表/HJPageListView.h
  25. 8 0
      HappyJob/HappyJob/Pageable_分页列表/HJPageListView.m
  26. 6 1
      HappyJob/HappyJob/Services/WeiXin/HJWeiXinAPIManager.m
  27. 1 0
      HappyJob/Podfile
  28. 5 1
      HappyJob/Podfile.lock
  29. BIN
      HappyJob/Pods/Bugly/Bugly.framework/Bugly
  30. 144 0
      HappyJob/Pods/Bugly/Bugly.framework/Headers/Bugly.h
  31. 126 0
      HappyJob/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h
  32. 78 0
      HappyJob/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h
  33. 12 0
      HappyJob/Pods/Bugly/Bugly.framework/Modules/module.modulemap
  34. 5 1
      HappyJob/Pods/Manifest.lock
  35. 2505 2409
      HappyJob/Pods/Pods.xcodeproj/project.pbxproj
  36. 60 0
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/Bugly.xcscheme
  37. 2 2
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/Pods-HappyJob.xcscheme
  38. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/SDCycleScrollView.xcscheme
  39. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/SDWebImage.xcscheme
  40. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/SVProgressHUD.xcscheme
  41. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/TXScrollLabelView.xcscheme
  42. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/WechatOpenSDK.xcscheme
  43. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/XHLaunchAd.xcscheme
  44. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/YTKNetwork.xcscheme
  45. 1 1
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/YYModel.xcscheme
  46. 5 0
      HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/xcschememanagement.plist
  47. 10 0
      HappyJob/Pods/Target Support Files/Bugly/Bugly.xcconfig
  48. 5 0
      HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob-acknowledgements.markdown
  49. 11 0
      HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob-acknowledgements.plist
  50. 3 3
      HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob.debug.xcconfig
  51. 3 3
      HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob.release.xcconfig

BIN
HappyJob/HappyJob.xcworkspace/xcuserdata/Bob.xcuserdatad/UserInterfaceState.xcuserstate


+ 45 - 64
HappyJob/HappyJob/AppDelegate.m

@@ -21,25 +21,14 @@
 #import <AMapFoundationKit/AMapFoundationKit.h>
 
 @interface AppDelegate () <HJWelcomeViewDelegate>
-@property (nonatomic, strong) HJLoginViewController *loginViewController;
-@property (nonatomic, strong) HJMainViewController *mainViewController;
-@property (nonatomic, strong) UILabel *launchVersionLabel;
-@property (nonatomic, strong) UIButton *launchStartButton;
-@property (nonatomic, strong) HJWelcomeViewController *welcomeViewController;
+
 @end
 
 @implementation AppDelegate
 
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    //设置你工程的启动页使用的是:LaunchImage 还是 LaunchScreen.storyboard(不设置默认:LaunchImage)
-    [XHLaunchAd setLaunchSourceType:SourceTypeLaunchScreen];
     //配置广告数据
-    XHLaunchImageAdConfiguration *imageAdconfiguration = [XHLaunchImageAdConfiguration defaultConfiguration];
-    imageAdconfiguration.duration = 3;
-    imageAdconfiguration.subViews = @[self.launchVersionLabel, self.launchStartButton];
-    imageAdconfiguration.skipButtonType = SkipTypeNone;
-    imageAdconfiguration.showFinishAnimate = ShowFinishAnimateLite;
-    [XHLaunchAd imageAdWithImageAdConfiguration:imageAdconfiguration delegate:self];
+    [self setupAd];
     
     // 高德地图
     [AMapServices sharedServices].apiKey = kGAODEAPIKey;
@@ -60,12 +49,26 @@
     
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     self.window.backgroundColor = [UIColor whiteColor];
-    self.window.rootViewController = self.welcomeViewController.isShow ? self.welcomeViewController : [self setupFirstViewController];
+    HJWelcomeViewController *welcomeViewController = [[HJWelcomeViewController alloc] init];
+    welcomeViewController.delegate = self;
+    if (welcomeViewController.isShow) {
+        self.window.rootViewController = welcomeViewController;
+    } else {
+        self.window.rootViewController = [self setupFirstViewController];
+    }
     [self.window makeKeyAndVisible];
     
     return YES;
 }
+//iOS 9 之前用
+- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
+    return [WXApi handleOpenURL:url delegate:[HJWeiXinAPIManager sharedManager]];
+}
 
+- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
+    return [WXApi handleOpenURL:url delegate:[HJWeiXinAPIManager sharedManager]];
+}
+//iOS 9之后用
 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
     return [WXApi handleOpenURL:url delegate:[HJWeiXinAPIManager sharedManager]];
 }
@@ -99,9 +102,7 @@
 #pragma mark - HJWelcomeViewDelegate
 
 - (void)skipWelcomeView:(HJWelcomeViewController *)welcomeView {
-    UIViewController *vc = [self setupFirstViewController];
-    vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
-    [welcomeView presentViewController:vc animated:YES completion:nil];
+    self.window.rootViewController = [self setupFirstViewController];
 }
 
 #pragma mark - event response
@@ -115,58 +116,38 @@
 - (UIViewController *)setupFirstViewController {
     NSString *userID = [HJUserInfoModel userInfo].userID;
     if (userID != nil && ![userID isEqualToString:@""]) {
-        return self.mainViewController;
+        HJMainViewController *mainViewController = [[HJMainViewController alloc] init];
+        return mainViewController;
     } else {
-        UINavigationController *loginNav = [[UINavigationController alloc] initWithRootViewController:self.loginViewController];
+        HJLoginViewController *loginViewController = [[HJLoginViewController alloc] init];
+        UINavigationController *loginNav = [[UINavigationController alloc] initWithRootViewController:loginViewController];
         return loginNav;
     }
 }
 
-#pragma mark - getters and setters
-
-- (HJWelcomeViewController *)welcomeViewController {
-    if (_welcomeViewController == nil) {
-        _welcomeViewController = [[HJWelcomeViewController alloc] init];
-        _welcomeViewController.delegate = self;
-    }
-    return _welcomeViewController;
-}
-
-- (UILabel *)launchVersionLabel {
-    if (_launchVersionLabel == nil) {
-        _launchVersionLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, (SCREEN_HEIGHT-45), SCREEN_WIDTH, 20)];
-        _launchVersionLabel.text = [NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]];
-        _launchVersionLabel.textColor = [UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1.0];
-        _launchVersionLabel.font = [UIFont systemFontOfSize:11];
-        _launchVersionLabel.textAlignment = NSTextAlignmentCenter;
-    }
-    return _launchVersionLabel;
-}
-
-- (UIButton *)launchStartButton {
-    if (_launchStartButton == nil) {
-        CGFloat width = HJHorizontalScale(180);
-        CGFloat height = 42;
-        _launchStartButton = [UIButton hj_createGradientButtonWithTitle:@"开启加薪之旅"];
-        _launchStartButton.titleLabel.font = [UIFont systemFontOfSize:HJHorizontalScale(16)];
-        _launchStartButton.frame = CGRectMake((SCREEN_WIDTH-width)/2, (SCREEN_HEIGHT-height-90), width, height);
-        [_launchStartButton addTarget:self action:@selector(launchStartButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
-    }
-    return _launchStartButton;
-}
-
-- (HJLoginViewController *)loginViewController {
-    if (_loginViewController == nil) {
-        _loginViewController = [[HJLoginViewController alloc] init];
-    }
-    return _loginViewController;
-}
-
-- (HJMainViewController *)mainViewController {
-    if (_mainViewController == nil) {
-        _mainViewController = [[HJMainViewController alloc] init];
-    }
-    return _mainViewController;
+- (void)setupAd {
+    //设置你工程的启动页使用的是:LaunchImage 还是 LaunchScreen.storyboard(不设置默认:LaunchImage)
+    [XHLaunchAd setLaunchSourceType:SourceTypeLaunchScreen];
+    
+    CGFloat width = HJHorizontalScale(180);
+    CGFloat height = 42;
+    UIButton *launchStartButton = [UIButton hj_createGradientButtonWithTitle:@"开启加薪之旅"];
+    launchStartButton.titleLabel.font = [UIFont systemFontOfSize:HJHorizontalScale(16)];
+    launchStartButton.frame = CGRectMake((SCREEN_WIDTH-width)/2, (SCREEN_HEIGHT-height-90), width, height);
+    [launchStartButton addTarget:self action:@selector(launchStartButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
+    
+    UILabel *launchVersionLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, (SCREEN_HEIGHT-45), SCREEN_WIDTH, 20)];
+    launchVersionLabel.text = [NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]];
+    launchVersionLabel.textColor = [UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1.0];
+    launchVersionLabel.font = [UIFont systemFontOfSize:11];
+    launchVersionLabel.textAlignment = NSTextAlignmentCenter;
+    
+    XHLaunchImageAdConfiguration *imageAdconfiguration = [XHLaunchImageAdConfiguration defaultConfiguration];
+    imageAdconfiguration.duration = 3;
+    imageAdconfiguration.subViews = @[launchVersionLabel, launchStartButton];
+    imageAdconfiguration.skipButtonType = SkipTypeNone;
+    imageAdconfiguration.showFinishAnimate = ShowFinishAnimateLite;
+    [XHLaunchAd imageAdWithImageAdConfiguration:imageAdconfiguration delegate:self];
 }
 
 @end

+ 4 - 1
HappyJob/HappyJob/DataCenter/Config/HJConfig.h

@@ -9,7 +9,10 @@
 #ifndef HJConfig_h
 #define HJConfig_h
 
-static NSString * const kHJBaseURL = @"https://kf.hap-job.com/happyjob/f/api/";
+/* 测试服接口地址 */
+//static NSString * const kHJBaseURL = @"https://kf.hap-job.com/happyjob/f/api/";
+/* 正式服接口地址 */
+static NSString * const kHJBaseURL = @"https://web.hap-job.com/happyjob/f/api/";
 
 /* 使用高德地图API,请注册Key,注册地址:http://lbs.amap.com/dev/#/ */
 static NSString * const kGAODEAPIKey = @"ec6c542ecc7faeaac443d9c2a0b74d67";

+ 1 - 1
HappyJob/HappyJob/DataCenter/Model/Resume/HJResumeModel.h

@@ -41,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN
 /** 区ID */
 @property (nonatomic, assign) NSInteger expectationCountryId;
 /** 期望薪资 */
-@property (nonatomic, assign) NSInteger expectationSalary;
+@property (nonatomic, copy) NSString *expectationSalary;
 /** 微信号 */
 @property (nonatomic, copy) NSString *wechatNumber;
 

+ 11 - 6
HappyJob/HappyJob/Home_首页/HJHomeViewController.m

@@ -28,7 +28,7 @@
 #import "HJCheckVersionAPIManager.h"
 #import "HJUpdateViewController.h"
 
-@interface HJHomeViewController () <UITableViewDelegate, UIScrollViewDelegate, HJNavBarViewDelegate, HJJobSortViewDelegate, FBAPIManagerDelegate, FBAPIManagerInterceptor>
+@interface HJHomeViewController () <UITableViewDelegate, UIScrollViewDelegate, HJNavBarViewDelegate, HJJobSortViewDelegate, FBAPIManagerDelegate, FBAPIManagerInterceptor, HJPageListViewDelegate>
 @property (nonatomic, strong) HJNavBarView *navBarView;
 @property (nonatomic, strong) HJPageListView *pageListView;
 @property (nonatomic, strong) HJHomeHeaderView *headerView;
@@ -92,14 +92,11 @@
             if (error == nil && regeocode) {
                 HJCityPickerCity *city = [HJCityPickerCity modelFromAdcode:regeocode.adcode];
                 [HJCityPickerCity setLocationCity:city];
-                
-                self.navBarView.city = city.name;
-                self.getHotPositionAPIManager.cityCode = city.adcode;
             } else {
                 self.navBarView.city = @"全国";
+                // 调用热门岗位API
+                [self.getHotPositionAPIManager start];
             }
-            // 调用热门岗位API
-            [self.getHotPositionAPIManager start];
         }];
     } else {
         self.navBarView.city = locCity.name;
@@ -235,6 +232,13 @@
     }
 }
 
+#pragma mark - HJPageListViewDelegate
+
+- (void)refreshPageListView:(HJPageListView *)pageListView {
+    // 调用banner图片URL
+    [self.getBannerAPIManager start];
+}
+
 #pragma mark - event response
 
 - (void)cityPickerViewSelectCity:(NSNotification *)notification {
@@ -309,6 +313,7 @@
         _pageListView.tableView.tableHeaderView = self.headerView;
         _pageListView.APIManager = self.getHotPositionAPIManager;
         _pageListView.dataBox = self.positionDataBox;
+        _pageListView.delegate = self;
         
         // 去除顶部空白
         if (@available(iOS 11.0, *)) {

+ 3 - 3
HappyJob/HappyJob/Info.plist

@@ -17,7 +17,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.2.3</string>
+	<string>3.0.0</string>
 	<key>CFBundleURLTypes</key>
 	<array>
 		<dict>
@@ -45,12 +45,12 @@
 		<key>NSAllowsArbitraryLoads</key>
 		<true/>
 	</dict>
+	<key>NSCameraUsageDescription</key>
+	<string>我们需要您的相机授权,方便为您提供更好的服务</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>我们需要您开启定位授权,方便为您提供更好的服务</string>
 	<key>NSPhotoLibraryAddUsageDescription</key>
 	<string>我们需要您的相册授权,方便为您提供更好的服务</string>
-	<key>NSCameraUsageDescription</key>
-	<string>我们需要您的相机授权,方便为您提供更好的服务</string>
 	<key>UILaunchStoryboardName</key>
 	<string>LaunchScreen</string>
 	<key>UIRequiredDeviceCapabilities</key>

+ 2 - 0
HappyJob/HappyJob/Login_登录/HJLoginBindingPhoneViewController.m

@@ -130,6 +130,8 @@
 
 - (void)managerCallAPIDidSuccess:(FBBaseAPIManager *)manager {
     if (manager == self.bindingPhoneAPIManager) {
+        // 登录或是取消都保存用户信息
+        [manager fetchDataWithBox:self.dataBox];
         // 跳转到首页
         [self.navigationController pushViewController:self.mainViewController animated:YES];
     }

+ 1 - 6
HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthFailedViewController.m

@@ -49,11 +49,6 @@
     [self.navigationController setNavigationBarHidden:YES animated:YES];
 }
 
-- (void)viewWillDisappear:(BOOL)animated {
-    [super viewWillDisappear:animated];
-    [self.navigationController setNavigationBarHidden:NO animated:YES];
-}
-
 #pragma mark - FBScrollLayoutViewDelegate
 
 - (void)scrollLayoutViewMakeConstraints:(FBScrollLayoutView *)scrollLayoutView {
@@ -97,7 +92,7 @@
 #pragma mark - event response
 
 - (void)backButtonClicked:(UIButton *)sender {
-    [self.navigationController popViewControllerAnimated:YES];
+    [self.navigationController popToRootViewControllerAnimated:YES];
 }
 
 - (void)photoButtonClicked:(UIButton *)sender {

+ 1 - 6
HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthSuccessViewController.m

@@ -49,11 +49,6 @@
     [self.navigationController setNavigationBarHidden:YES animated:YES];
 }
 
-- (void)viewWillDisappear:(BOOL)animated {
-    [super viewWillDisappear:animated];
-    [self.navigationController setNavigationBarHidden:NO animated:YES];
-}
-
 #pragma mark - FBScrollLayoutViewDelegate
 
 - (void)scrollLayoutViewMakeConstraints:(FBScrollLayoutView *)scrollLayoutView {
@@ -100,7 +95,7 @@
 #pragma mark - event response
 
 - (void)backButtonClicked:(UIButton *)sender {
-    [self.navigationController popViewControllerAnimated:YES];
+    [self.navigationController popToRootViewControllerAnimated:YES];
 }
 
 #pragma mark - getters and setters

+ 5 - 1
HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthViewController.m

@@ -11,7 +11,6 @@
 #import "UIButton+HJGradientButton.h"
 #import "HJAuthSectionView.h"
 #import "HJAuthingViewController.h"
-#import "HJAuthSuccessViewController.h"
 #import "UIButton+Layout.h"
 #import "HJAuthNavBarView.h"
 #import "UIView+FBProgressHUD.h"
@@ -77,6 +76,11 @@ static const CGFloat FixedSpacing = 30;
     [self.scrollLayoutView makeConstraints];
 }
 
+- (void)viewWillAppear:(BOOL)animated {
+    [super viewWillAppear:animated];
+    [self.navigationController setNavigationBarHidden:YES animated:YES];
+}
+
 #pragma mark - FBScrollLayoutViewDelegate
 
 - (void)scrollLayoutViewMakeConstraints:(FBScrollLayoutView *)scrollLayoutView {

+ 1 - 6
HappyJob/HappyJob/Me_我/Auth_实名认证/HJAuthingViewController.m

@@ -49,11 +49,6 @@
     [self.navigationController setNavigationBarHidden:YES animated:YES];
 }
 
-- (void)viewWillDisappear:(BOOL)animated {
-    [super viewWillDisappear:animated];
-    [self.navigationController setNavigationBarHidden:NO animated:YES];
-}
-
 #pragma mark - FBScrollLayoutViewDelegate
 
 - (void)scrollLayoutViewMakeConstraints:(FBScrollLayoutView *)scrollLayoutView {
@@ -100,7 +95,7 @@
 #pragma mark - event response
 
 - (void)backButtonClicked:(UIButton *)sender {
-    [self.navigationController popViewControllerAnimated:YES];
+    [self.navigationController popToRootViewControllerAnimated:YES];
 }
 
 #pragma mark - getters and setters

+ 2 - 1
HappyJob/HappyJob/Me_我/HJMeViewController.m

@@ -174,12 +174,13 @@
 #pragma mark - HJMeResumeViewDelegate
 
 - (void)meResumeViewDidForward:(HJMeResumeView *)meResumeView {
-    if (self.getResumeAPIManager.hasResume) {
+    if (self.dataBox.headerView.resumeView.percent > 0) {
         HJResumeViewController *resumeVC = [[HJResumeViewController alloc] init];
         resumeVC.hidesBottomBarWhenPushed = YES;
         [self.navigationController pushViewController:resumeVC animated:YES];
     } else {
         HJBasicInfoViewController *profileVC = [[HJBasicInfoViewController alloc] init];
+        profileVC.isPop = NO;
         profileVC.hidesBottomBarWhenPushed = YES;
         [self.navigationController pushViewController:profileVC animated:YES];
     }

+ 1 - 1
HappyJob/HappyJob/Me_我/MeAPIManager/HJMeDataBox.m

@@ -84,7 +84,7 @@ static NSString * const HJMeCellIdentifier = @"HJMeCustomCell";
 
 - (void)updateUserInfoView {
     HJUserInfoModel *userInfo = [HJUserInfoModel userInfo];
-    self.headerView.profileView.nameLabel.text = userInfo.nickName ? userInfo.nickName : @"您还未填写用户";
+    self.headerView.profileView.nameLabel.text = userInfo.nickName ? userInfo.nickName : @"用户";
     self.headerView.profileView.phoneLabel.text = [self formatPhone:userInfo.phone];
     NSURL *imgURL = [NSURL URLWithString:userInfo.avatarURL];
     UIImage *placeholderImage = [UIImage imageNamed:@"me_portrait_default"];

+ 1 - 0
HappyJob/HappyJob/Me_我/Resume_个人简历/HJResumeViewController.m

@@ -151,6 +151,7 @@
 
 - (void)basicInfoShouldEdit:(HJBasicInfoView *)basicInfoView {
     HJBasicInfoViewController *vc = [[HJBasicInfoViewController alloc] init];
+    vc.isPop = YES;
     [self.navigationController pushViewController:vc animated:YES];
 }
 

+ 11 - 4
HappyJob/HappyJob/Me_我/Resume_个人简历/ResumeAPIManager/HJResumeDataBox.m

@@ -128,11 +128,18 @@ NSString *const HJResumeUpdateNotification = @"HJResumeUpdateNotification";
     //期望地点
     [dict setObject:model.expectationAddress forKey:kHJResumeKeyWorkPlace];
     //期望薪资
-    NSInteger salary = model.expectationSalary;
-    if (salary < 0 || salary > self.salaryDataSource.count) {
-        salary = 0;
+    NSString *salary = model.expectationSalary;
+    if (salary && ![salary isEqual:[NSNull null]] && salary.length > 0) {
+        NSUInteger salaryIndex = [salary integerValue];
+        if (salaryIndex < 0 || salaryIndex > self.salaryDataSource.count) {
+            salary = @"";
+        } else {
+            salary = self.salaryDataSource[salaryIndex];
+        }
+    } else {
+        salary = @"";
     }
-    [dict setObject:self.salaryDataSource[salary] forKey:kHJResumeKeySalary];
+    [dict setObject:salary forKey:kHJResumeKeySalary];
     //工作经验
     NSMutableArray *expArray = [NSMutableArray arrayWithCapacity:model.hpResumeWorkExperienceList.count];
     for (HJResumeExperienceModel *expModel in model.hpResumeWorkExperienceList) {

+ 10 - 1
HappyJob/HappyJob/Me_我/Resume_个人简历/ResumeAPIManager/HJSaveBasicInfoAPIManager.m

@@ -86,7 +86,16 @@
         
         return [array copy];
     } else {
-        return nil;
+        NSMutableArray *array = [NSMutableArray arrayWithCapacity:1];
+        
+        FBUploadDataModel *model = [[FBUploadDataModel alloc] init];
+        model.data = UIImageJPEGRepresentation([UIImage imageNamed:@"me_portrait_default"], 0.9);;
+        model.name = @"photo.jpg";
+        model.formKey = @"files1";
+        model.type = @"image/jpeg";
+        [array addObject:model];
+        
+        return [array copy];
     }
 }
 

+ 1 - 1
HappyJob/HappyJob/Me_我/Resume_个人简历/ResumeAPIManager/HJSaveExpectationAPIManager.m

@@ -62,7 +62,7 @@
     if (self.countryCode) {
         [dict setObject:self.countryCode forKey:@"expectationCountryId"];
     }
-    if (self.salaryIndex) {
+    if (self.salaryIndex > -1) {
         [dict setObject:@(self.salaryIndex) forKey:@"expectationSalary"];
     }
     if (self.address) {

+ 1 - 1
HappyJob/HappyJob/Me_我/Resume_个人简历/个人资料/HJBasicInfoViewController.h

@@ -11,7 +11,7 @@
 NS_ASSUME_NONNULL_BEGIN
 
 @interface HJBasicInfoViewController : UIViewController
-
+@property (nonatomic, assign) BOOL isPop;
 @end
 
 NS_ASSUME_NONNULL_END

+ 13 - 6
HappyJob/HappyJob/Me_我/Resume_个人简历/个人资料/HJBasicInfoViewController.m

@@ -18,6 +18,7 @@
 #import "HJResumeDataBox.h"
 #import <UIButton+WebCache.h>
 #import "UITextField+LimitLength.h"
+#import "HJExpectationViewController.h"
 
 @interface HJBasicInfoViewController () <FBScrollLayoutViewDelegate, FBAPIManagerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate>
 @property (nonatomic, strong) FBScrollLayoutView *scrollLayoutView;
@@ -223,7 +224,13 @@
         id fetchData = [manager fetchDataWithBox:self.resumeDataBox];
         if ([fetchData isKindOfClass:[NSString class]]) {
             [self.view fb_showSuccessWithStatus:fetchData completion:^{
-                [self.navigationController popViewControllerAnimated:YES];
+                if (self.isPop) {
+                    [self.navigationController popViewControllerAnimated:YES];
+                } else {
+                    HJExpectationViewController *vc = [[HJExpectationViewController alloc] init];
+                    vc.isPopToRoot = YES;
+                    [self.navigationController pushViewController:vc animated:YES];
+                }
             }];
         }
     }
@@ -241,10 +248,7 @@
 #pragma mark - event response
 
 - (void)saveButtonClicked:(UIButton *)sender {
-    UIImage *photo = [self.photoButton backgroundImageForState:UIControlStateSelected];
-    if (photo == nil) {
-        [self.view fb_showFailureWithStatus:@"请先上传您的照片"];
-    } else if (self.nameView.contentTextField.text.length == 0) {
+    if (self.nameView.contentTextField.text.length == 0) {
         [self.view fb_showFailureWithStatus:@"请先填写您的姓名"];
         [self.nameView.contentTextField becomeFirstResponder];
     } else if (self.nameView.contentTextField.text.length > 30) {
@@ -265,7 +269,10 @@
     } else {
         [self.view fb_showLoading];
         
-        self.saveResumeBaseInfoAPIManager.photo = photo;
+        UIImage *photo = [self.photoButton backgroundImageForState:UIControlStateSelected];
+        if (photo && !CGSizeEqualToSize(photo.size, CGSizeZero)) {
+            self.saveResumeBaseInfoAPIManager.photo = photo;
+        }
         self.saveResumeBaseInfoAPIManager.realName = self.nameView.contentTextField.text;
         self.saveResumeBaseInfoAPIManager.phone = self.phoneView.contentTextField.text;
         self.saveResumeBaseInfoAPIManager.gender = [self.resumeDataBox.genderDataSource indexOfObject:self.sexView.contentTextField.text];

+ 1 - 1
HappyJob/HappyJob/Me_我/Resume_个人简历/求职意向/HJExpectationViewController.h

@@ -11,7 +11,7 @@
 NS_ASSUME_NONNULL_BEGIN
 
 @interface HJExpectationViewController : UIViewController
-
+@property (nonatomic, assign) BOOL isPopToRoot;
 @end
 
 NS_ASSUME_NONNULL_END

+ 5 - 1
HappyJob/HappyJob/Me_我/Resume_个人简历/求职意向/HJExpectationViewController.m

@@ -197,7 +197,11 @@
         id fetchData = [manager fetchDataWithBox:self.resumeDataBox];
         if ([fetchData isKindOfClass:[NSString class]]) {
             [self.view fb_showSuccessWithStatus:fetchData completion:^{
-                [self.navigationController popViewControllerAnimated:YES];
+                if (self.isPopToRoot) {
+                    [self.navigationController popToRootViewControllerAnimated:YES];
+                } else {
+                    [self.navigationController popViewControllerAnimated:YES];
+                }
             }];
         }
     }

+ 1 - 0
HappyJob/HappyJob/Me_我/Salary_薪资查询/HJSalaryViewController.m

@@ -59,6 +59,7 @@
 
 - (void)viewWillAppear:(BOOL)animated {
     [super viewWillAppear:animated];
+    [self.navigationController setNavigationBarHidden:NO animated:YES];
     //进页面就校验实名认证
     [self.approveStatusAPIManager start];
 }

+ 8 - 6
HappyJob/HappyJob/Me_我/Setting_设置/HJSettingViewController.m

@@ -144,12 +144,14 @@ static NSString * const HJSettingCellIdentifier = @"HJSettingCell";
 }
 
 - (void)logoutConfirmButtonClicked:(UIButton *)sender {
-    // 清空所有本地用户信息
-    [HJUserInfoModel clear];
-    
-    HJLoginViewController *loginVC = [[HJLoginViewController alloc] init];
-    UINavigationController *loginNav = [[UINavigationController alloc] initWithRootViewController:loginVC];
-    self.view.window.rootViewController = loginNav;
+    [self dismissViewControllerAnimated:NO completion:^{
+        // 清空所有本地用户信息
+        [HJUserInfoModel clear];
+        
+        HJLoginViewController *loginVC = [[HJLoginViewController alloc] init];
+        UINavigationController *loginNav = [[UINavigationController alloc] initWithRootViewController:loginVC];
+        self.view.window.rootViewController = loginNav;
+    }];
 }
 
 #pragma mark - getters and setters

+ 10 - 0
HappyJob/HappyJob/Pageable_分页列表/HJPageListView.h

@@ -15,6 +15,15 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class HJPageListView;
+
+@protocol HJPageListViewDelegate <NSObject>
+
+@optional
+- (void)refreshPageListView:(HJPageListView *)pageListView;
+
+@end
+
 @interface HJPageListView : UIView <FBAPIManagerDelegate, FBAPIManagerInterceptor>
 @property (nonatomic, strong, readonly) HJRefreshHeaderView *refreshHeader;
 @property (nonatomic, strong, readonly) HJRefreshFooterView *refreshFooter;
@@ -23,6 +32,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (nonatomic, assign, getter=isFirstLoading) BOOL firstLoading;
 @property (nonatomic, weak) FBBaseAPIManager<FBPageableAPIManager> *APIManager;
 @property (nonatomic, weak) id<FBAPIManagerDataBox> dataBox;
+@property (nonatomic, weak) id<HJPageListViewDelegate> delegate;
 @end
 
 NS_ASSUME_NONNULL_END

+ 8 - 0
HappyJob/HappyJob/Pageable_分页列表/HJPageListView.m

@@ -105,11 +105,19 @@
 - (void)refreshButtonClicked:(UIButton *)sender {
     _firstLoading = YES;
     [self.APIManager start];
+    
+    if ([self.delegate respondsToSelector:@selector(refreshPageListView:)]) {
+        [self.delegate refreshPageListView:self];
+    }
 }
 
 - (void)loadNewData {
     _firstLoading = NO;
     [self.APIManager start];
+    
+    if ([self.delegate respondsToSelector:@selector(refreshPageListView:)]) {
+        [self.delegate refreshPageListView:self];
+    }
 }
 
 - (void)loadMoreData {

+ 6 - 1
HappyJob/HappyJob/Services/WeiXin/HJWeiXinAPIManager.m

@@ -25,7 +25,12 @@
         req.state = @"wx_oauth_authorization_state";//用于保持请求和回调的状态,授权请求或原样带回
         req.scope = @"snsapi_userinfo";//授权作用域:获取用户个人信息
         
-        [WXApi sendReq:req];//发起微信授权请求
+        if ([WXApi sendReq:req]) {
+            NSLog(@"发起微信授权请求成功");
+        } else {
+            NSLog(@"发起微信授权请求失败");
+        }
+        
     } else {
         // 提示:未安装微信应用跳转到AppStore下载
         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/wechat/id414478124"]];

+ 1 - 0
HappyJob/Podfile

@@ -23,4 +23,5 @@ target 'HappyJob' do
   pod 'MJRefresh', '~> 3.1.15.7'
   pod 'DZNEmptyDataSet', '~> 1.8.1'
   pod 'XHLaunchAd', '~> 3.9.8'
+  pod 'Bugly', '~> 2.5.0'
 end

+ 5 - 1
HappyJob/Podfile.lock

@@ -17,6 +17,7 @@ PODS:
   - AMapFoundation-NO-IDFA (1.5.6)
   - AMapLocation-NO-IDFA (2.6.1):
     - AMapFoundation-NO-IDFA (~> 1.4)
+  - Bugly (2.5.0)
   - CocoaLumberjack (3.5.2):
     - CocoaLumberjack/Core (= 3.5.2)
   - CocoaLumberjack/Core (3.5.2)
@@ -47,6 +48,7 @@ PODS:
 DEPENDENCIES:
   - AFNetworking (~> 3.2.1)
   - AMapLocation-NO-IDFA (~> 2.6.1)
+  - Bugly (~> 2.5.0)
   - CocoaLumberjack (~> 3.5.1)
   - DZNEmptyDataSet (~> 1.8.1)
   - FCUUID (~> 1.3.1)
@@ -69,6 +71,7 @@ SPEC REPOS:
     - AFNetworking
     - AMapFoundation-NO-IDFA
     - AMapLocation-NO-IDFA
+    - Bugly
     - CocoaLumberjack
     - DZNEmptyDataSet
     - FCUUID
@@ -92,6 +95,7 @@ SPEC CHECKSUMS:
   AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
   AMapFoundation-NO-IDFA: 40d723b352992d0f95abe2976f0c0ecda3c3ffc3
   AMapLocation-NO-IDFA: ffd69b8b88f553d0b252d4967bf301ad2afff9c0
+  Bugly: 3ca9f255c01025582df26f9222893b383c7e4b4e
   CocoaLumberjack: 118bf4a820efc641f79fa487b75ed928dccfae23
   DZNEmptyDataSet: 9525833b9e68ac21c30253e1d3d7076cc828eaa7
   FCUUID: bb054fc90cd7cd99320f9f6ff8e130fe607fba05
@@ -111,6 +115,6 @@ SPEC CHECKSUMS:
   YTKNetwork: df8a7a5597bda1664a4efaa7ef871a818a887fe0
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: 6282c94fa60ca77994ada24887ad67a9c2b81a80
+PODFILE CHECKSUM: aeecbebe15e381158585eb251b31f011d4fa35ee
 
 COCOAPODS: 1.6.1

BIN
HappyJob/Pods/Bugly/Bugly.framework/Bugly


+ 144 - 0
HappyJob/Pods/Bugly/Bugly.framework/Headers/Bugly.h

@@ -0,0 +1,144 @@
+//
+//  Bugly.h
+//
+//  Version: 2.5(0)
+//
+//  Copyright (c) 2017年 Tencent. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import "BuglyConfig.h"
+#import "BuglyLog.h"
+
+BLY_START_NONNULL
+
+@interface Bugly : NSObject
+
+/**
+ *  初始化Bugly,使用默认BuglyConfig
+ *
+ *  @param appId 注册Bugly分配的应用唯一标识
+ */
++ (void)startWithAppId:(NSString * BLY_NULLABLE)appId;
+
+/**
+ *  使用指定配置初始化Bugly
+ *
+ *  @param appId 注册Bugly分配的应用唯一标识
+ *  @param config 传入配置的 BuglyConfig
+ */
++ (void)startWithAppId:(NSString * BLY_NULLABLE)appId
+                config:(BuglyConfig * BLY_NULLABLE)config;
+
+/**
+ *  使用指定配置初始化Bugly
+ *
+ *  @param appId 注册Bugly分配的应用唯一标识
+ *  @param development 是否开发设备
+ *  @param config 传入配置的 BuglyConfig
+ */
++ (void)startWithAppId:(NSString * BLY_NULLABLE)appId
+     developmentDevice:(BOOL)development
+                config:(BuglyConfig * BLY_NULLABLE)config;
+
+/**
+ *  设置用户标识
+ *
+ *  @param userId 用户标识
+ */
++ (void)setUserIdentifier:(NSString *)userId;
+
+/**
+ *  更新版本信息
+ *
+ *  @param version 应用版本信息
+ */
++ (void)updateAppVersion:(NSString *)version;
+
+/**
+ *  设置关键数据,随崩溃信息上报
+ *
+ *  @param value KEY
+ *  @param key VALUE
+ */
++ (void)setUserValue:(NSString *)value
+              forKey:(NSString *)key;
+
+/**
+ *  获取关键数据
+ *
+ *  @return 关键数据
+ */
++ (NSDictionary * BLY_NULLABLE)allUserValues;
+
+/**
+ *  设置标签
+ *
+ *  @param tag 标签ID,可在网站生成
+ */
++ (void)setTag:(NSUInteger)tag;
+
+/**
+ *  获取当前设置标签
+ *
+ *  @return 当前标签ID
+ */
++ (NSUInteger)currentTag;
+
+/**
+ *  获取设备ID
+ *
+ *  @return 设备ID
+ */
++ (NSString *)buglyDeviceId;
+
+/**
+ *  上报自定义Objective-C异常
+ *
+ *  @param exception 异常信息
+ */
++ (void)reportException:(NSException *)exception;
+
+/**
+ *  上报错误
+ *
+ *  @param error 错误信息
+ */
++ (void)reportError:(NSError *)error;
+
+/**
+ *    @brief 上报自定义错误
+ *
+ *    @param category    类型(Cocoa=3,CSharp=4,JS=5,Lua=6)
+ *    @param aName       名称
+ *    @param aReason     错误原因
+ *    @param aStackArray 堆栈
+ *    @param info        附加数据
+ *    @param terminate   上报后是否退出应用进程
+ */
++ (void)reportExceptionWithCategory:(NSUInteger)category
+                               name:(NSString *)aName
+                             reason:(NSString *)aReason
+                          callStack:(NSArray *)aStackArray
+                          extraInfo:(NSDictionary *)info
+                       terminateApp:(BOOL)terminate;
+
+/**
+ *  SDK 版本信息
+ *
+ *  @return SDK版本号
+ */
++ (NSString *)sdkVersion;
+
+/**
+ *  App 是否发生了连续闪退
+ *  如果 启动SDK 且 5秒内 闪退,且次数达到 3次 则判定为连续闪退
+ *
+ *  @return 是否连续闪退
+ */
++ (BOOL)isAppCrashedOnStartUpExceedTheLimit;
+
+BLY_END_NONNULL
+
+@end

+ 126 - 0
HappyJob/Pods/Bugly/Bugly.framework/Headers/BuglyConfig.h

@@ -0,0 +1,126 @@
+//
+//  BuglyConfig.h
+//  Bugly
+//
+//  Copyright (c) 2016年 Tencent. All rights reserved.
+//
+
+#pragma once
+
+#define BLY_UNAVAILABLE(x) __attribute__((unavailable(x)))
+
+#if __has_feature(nullability)
+#define BLY_NONNULL __nonnull
+#define BLY_NULLABLE __nullable
+#define BLY_START_NONNULL _Pragma("clang assume_nonnull begin")
+#define BLY_END_NONNULL _Pragma("clang assume_nonnull end")
+#else
+#define BLY_NONNULL
+#define BLY_NULLABLE
+#define BLY_START_NONNULL
+#define BLY_END_NONNULL
+#endif
+
+#import <Foundation/Foundation.h>
+
+#import "BuglyLog.h"
+
+BLY_START_NONNULL
+
+@protocol BuglyDelegate <NSObject>
+
+@optional
+/**
+ *  发生异常时回调
+ *
+ *  @param exception 异常信息
+ *
+ *  @return 返回需上报记录,随异常上报一起上报
+ */
+- (NSString * BLY_NULLABLE)attachmentForException:(NSException * BLY_NULLABLE)exception;
+
+@end
+
+@interface BuglyConfig : NSObject
+
+/**
+ *  SDK Debug信息开关, 默认关闭
+ */
+@property (nonatomic, assign) BOOL debugMode;
+
+/**
+ *  设置自定义渠道标识
+ */
+@property (nonatomic, copy) NSString *channel;
+
+/**
+ *  设置自定义版本号
+ */
+@property (nonatomic, copy) NSString *version;
+
+/**
+ *  设置自定义设备唯一标识
+ */
+@property (nonatomic, copy) NSString *deviceIdentifier;
+
+/**
+ *  卡顿监控开关,默认关闭
+ */
+@property (nonatomic) BOOL blockMonitorEnable;
+
+/**
+ *  卡顿监控判断间隔,单位为秒
+ */
+@property (nonatomic) NSTimeInterval blockMonitorTimeout;
+
+/**
+ *  设置 App Groups Id (如有使用 Bugly iOS Extension SDK,请设置该值)
+ */
+@property (nonatomic, copy) NSString *applicationGroupIdentifier;
+
+/**
+ *  进程内还原开关,默认开启
+ */
+@property (nonatomic) BOOL symbolicateInProcessEnable;
+
+/**
+ *  非正常退出事件记录开关,默认关闭
+ */
+@property (nonatomic) BOOL unexpectedTerminatingDetectionEnable;
+
+/**
+ *  页面信息记录开关,默认开启
+ */
+@property (nonatomic) BOOL viewControllerTrackingEnable;
+
+/**
+ *  Bugly Delegate
+ */
+@property (nonatomic, assign) id<BuglyDelegate> delegate;
+
+/**
+ * 控制自定义日志上报,默认值为BuglyLogLevelSilent,即关闭日志记录功能。
+ * 如果设置为BuglyLogLevelWarn,则在崩溃时会上报Warn、Error接口打印的日志
+ */
+@property (nonatomic, assign) BuglyLogLevel reportLogLevel;
+
+/**
+ *  崩溃数据过滤器,如果崩溃堆栈的模块名包含过滤器中设置的关键字,则崩溃数据不会进行上报
+ *  例如,过滤崩溃堆栈中包含搜狗输入法的数据,可以添加过滤器关键字SogouInputIPhone.dylib等
+ */
+@property (nonatomic, copy) NSArray *excludeModuleFilter;
+
+/**
+ * 控制台日志上报开关,默认开启
+ */
+@property (nonatomic, assign) BOOL consolelogEnable;
+
+/**
+ * 崩溃退出超时,如果监听到崩溃后,App一直没有退出,则到达超时时间后会自动abort进程退出
+ * 默认值 5s, 单位 秒
+ * 当赋值为0时,则不会自动abort进程退出
+ */
+@property (nonatomic, assign) NSUInteger crashAbortTimeout;
+
+@end
+BLY_END_NONNULL

+ 78 - 0
HappyJob/Pods/Bugly/Bugly.framework/Headers/BuglyLog.h

@@ -0,0 +1,78 @@
+//
+//  BuglyLog.h
+//  Bugly
+//
+//  Copyright (c) 2017年 Tencent. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+// Log level for Bugly Log
+typedef NS_ENUM(NSUInteger, BuglyLogLevel) {
+    BuglyLogLevelSilent  = 0,
+    BuglyLogLevelError   = 1,
+    BuglyLogLevelWarn    = 2,
+    BuglyLogLevelInfo    = 3,
+    BuglyLogLevelDebug   = 4,
+    BuglyLogLevelVerbose = 5,
+};
+#pragma mark -
+
+OBJC_EXTERN void BLYLog(BuglyLogLevel level, NSString *format, ...) NS_FORMAT_FUNCTION(2, 3);
+
+OBJC_EXTERN void BLYLogv(BuglyLogLevel level, NSString *format, va_list args) NS_FORMAT_FUNCTION(2, 0);
+
+#pragma mark -
+#define BUGLY_LOG_MACRO(_level, fmt, ...) [BuglyLog level:_level tag:nil log:fmt, ##__VA_ARGS__]
+
+#define BLYLogError(fmt, ...)   BUGLY_LOG_MACRO(BuglyLogLevelError, fmt, ##__VA_ARGS__)
+#define BLYLogWarn(fmt, ...)    BUGLY_LOG_MACRO(BuglyLogLevelWarn,  fmt, ##__VA_ARGS__)
+#define BLYLogInfo(fmt, ...)    BUGLY_LOG_MACRO(BuglyLogLevelInfo, fmt, ##__VA_ARGS__)
+#define BLYLogDebug(fmt, ...)   BUGLY_LOG_MACRO(BuglyLogLevelDebug, fmt, ##__VA_ARGS__)
+#define BLYLogVerbose(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelVerbose, fmt, ##__VA_ARGS__)
+
+#pragma mark - Interface
+@interface BuglyLog : NSObject
+
+/**
+ *    @brief  初始化日志模块
+ *
+ *    @param level 设置默认日志级别,默认BLYLogLevelSilent
+ *
+ *    @param printConsole 是否打印到控制台,默认NO
+ */
++ (void)initLogger:(BuglyLogLevel) level consolePrint:(BOOL)printConsole;
+
+/**
+ *    @brief 打印BLYLogLevelInfo日志
+ *
+ *    @param format   日志内容 总日志大小限制为:字符串长度30k,条数200
+ */
++ (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);
+
+/**
+ *    @brief  打印日志
+ *
+ *    @param level 日志级别
+ *    @param message   日志内容 总日志大小限制为:字符串长度30k,条数200
+ */
++ (void)level:(BuglyLogLevel) level logs:(NSString *)message;
+
+/**
+ *    @brief  打印日志
+ *
+ *    @param level 日志级别
+ *    @param format   日志内容 总日志大小限制为:字符串长度30k,条数200
+ */
++ (void)level:(BuglyLogLevel) level log:(NSString *)format, ... NS_FORMAT_FUNCTION(2, 3);
+
+/**
+ *    @brief  打印日志
+ *
+ *    @param level  日志级别
+ *    @param tag    日志模块分类
+ *    @param format   日志内容 总日志大小限制为:字符串长度30k,条数200
+ */
++ (void)level:(BuglyLogLevel) level tag:(NSString *) tag log:(NSString *)format, ... NS_FORMAT_FUNCTION(3, 4);
+
+@end

+ 12 - 0
HappyJob/Pods/Bugly/Bugly.framework/Modules/module.modulemap

@@ -0,0 +1,12 @@
+framework module Bugly {
+	umbrella header "Bugly.h"
+	
+	export *
+	module * { export * }
+	
+	link framework "Foundation"
+	link framework "Security"
+	link framework "SystemConfiguration"
+	link "c++"
+	link "z"
+}

+ 5 - 1
HappyJob/Pods/Manifest.lock

@@ -17,6 +17,7 @@ PODS:
   - AMapFoundation-NO-IDFA (1.5.6)
   - AMapLocation-NO-IDFA (2.6.1):
     - AMapFoundation-NO-IDFA (~> 1.4)
+  - Bugly (2.5.0)
   - CocoaLumberjack (3.5.2):
     - CocoaLumberjack/Core (= 3.5.2)
   - CocoaLumberjack/Core (3.5.2)
@@ -47,6 +48,7 @@ PODS:
 DEPENDENCIES:
   - AFNetworking (~> 3.2.1)
   - AMapLocation-NO-IDFA (~> 2.6.1)
+  - Bugly (~> 2.5.0)
   - CocoaLumberjack (~> 3.5.1)
   - DZNEmptyDataSet (~> 1.8.1)
   - FCUUID (~> 1.3.1)
@@ -69,6 +71,7 @@ SPEC REPOS:
     - AFNetworking
     - AMapFoundation-NO-IDFA
     - AMapLocation-NO-IDFA
+    - Bugly
     - CocoaLumberjack
     - DZNEmptyDataSet
     - FCUUID
@@ -92,6 +95,7 @@ SPEC CHECKSUMS:
   AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057
   AMapFoundation-NO-IDFA: 40d723b352992d0f95abe2976f0c0ecda3c3ffc3
   AMapLocation-NO-IDFA: ffd69b8b88f553d0b252d4967bf301ad2afff9c0
+  Bugly: 3ca9f255c01025582df26f9222893b383c7e4b4e
   CocoaLumberjack: 118bf4a820efc641f79fa487b75ed928dccfae23
   DZNEmptyDataSet: 9525833b9e68ac21c30253e1d3d7076cc828eaa7
   FCUUID: bb054fc90cd7cd99320f9f6ff8e130fe607fba05
@@ -111,6 +115,6 @@ SPEC CHECKSUMS:
   YTKNetwork: df8a7a5597bda1664a4efaa7ef871a818a887fe0
   YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
 
-PODFILE CHECKSUM: 6282c94fa60ca77994ada24887ad67a9c2b81a80
+PODFILE CHECKSUM: aeecbebe15e381158585eb251b31f011d4fa35ee
 
 COCOAPODS: 1.6.1

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2505 - 2409
HappyJob/Pods/Pods.xcodeproj/project.pbxproj


+ 60 - 0
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/Bugly.xcscheme

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0930"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForAnalyzing = "YES"
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "A14AECE0D6E5F04D08EDDB51F60B69E4"
+               BuildableName = "Bugly"
+               BlueprintName = "Bugly"
+               ReferencedContainer = "container:Pods.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      buildConfiguration = "Debug"
+      allowLocationSimulation = "YES">
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES"
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 2 - 2
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/Pods-HappyJob.xcscheme

@@ -14,7 +14,7 @@
             buildForAnalyzing = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "372E41B12534225F545B838F77959899"
+               BlueprintIdentifier = "D78A7EC8F2D43A46B843E310EC541BF0"
                BuildableName = "Pods_HappyJob.framework"
                BlueprintName = "Pods-HappyJob"
                ReferencedContainer = "container:Pods.xcodeproj">
@@ -45,7 +45,7 @@
       <MacroExpansion>
          <BuildableReference
             BuildableIdentifier = "primary"
-            BlueprintIdentifier = "372E41B12534225F545B838F77959899"
+            BlueprintIdentifier = "D78A7EC8F2D43A46B843E310EC541BF0"
             BuildableName = "Pods_HappyJob.framework"
             BlueprintName = "Pods-HappyJob"
             ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/SDCycleScrollView.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "13681B0030F8178240E820A196EF9157"
+               BlueprintIdentifier = "B899DE2B89355B144BC2316F65E19363"
                BuildableName = "SDCycleScrollView.framework"
                BlueprintName = "SDCycleScrollView"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/SDWebImage.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "33693293ECAAB24F7D49E9580CB1B087"
+               BlueprintIdentifier = "FA0C0F9B00ECEEFFE63600109788F8C5"
                BuildableName = "SDWebImage.framework"
                BlueprintName = "SDWebImage"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/SVProgressHUD.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "4E9560872CF18695A5A97A0C841ECBA6"
+               BlueprintIdentifier = "7B5ECBBF201C16644EB6E26DBF75DAFC"
                BuildableName = "SVProgressHUD.framework"
                BlueprintName = "SVProgressHUD"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/TXScrollLabelView.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "E835EB94DE56E6240348341B6762B015"
+               BlueprintIdentifier = "1996091FBDAF6B59560EDE755366C10D"
                BuildableName = "TXScrollLabelView.framework"
                BlueprintName = "TXScrollLabelView"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/WechatOpenSDK.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "4CC9959F483C65380C34F2EB89783516"
+               BlueprintIdentifier = "4D2B2A6A4B42BD8EFB04C8C81DAF61C6"
                BuildableName = "WechatOpenSDK"
                BlueprintName = "WechatOpenSDK"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/XHLaunchAd.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "8EA33D6BD77B12092378457FAD66BF54"
+               BlueprintIdentifier = "E73DEE847F949848DBB8FFE0A22907F6"
                BuildableName = "XHLaunchAd.framework"
                BlueprintName = "XHLaunchAd"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/YTKNetwork.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "D35B42DDA9333A08166D56E7DB25FD6C"
+               BlueprintIdentifier = "C2E2F2EB33A82940BDAEE86AB004D69C"
                BuildableName = "YTKNetwork.framework"
                BlueprintName = "YTKNetwork"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 1 - 1
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/YYModel.xcscheme

@@ -14,7 +14,7 @@
             buildForArchiving = "YES">
             <BuildableReference
                BuildableIdentifier = "primary"
-               BlueprintIdentifier = "82FF85136F0F7B95F47F00311D884074"
+               BlueprintIdentifier = "E10339B23EBBC55679CEBA832C17EE56"
                BuildableName = "YYModel.framework"
                BlueprintName = "YYModel"
                ReferencedContainer = "container:Pods.xcodeproj">

+ 5 - 0
HappyJob/Pods/Pods.xcodeproj/xcuserdata/Bob.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -19,6 +19,11 @@
 			<key>isShown</key>
 			<false/>
 		</dict>
+		<key>Bugly.xcscheme</key>
+		<dict>
+			<key>isShown</key>
+			<false/>
+		</dict>
 		<key>CocoaLumberjack.xcscheme</key>
 		<dict>
 			<key>isShown</key>

+ 10 - 0
HappyJob/Pods/Target Support Files/Bugly/Bugly.xcconfig

@@ -0,0 +1,10 @@
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Bugly
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Bugly"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Security" -framework "SystemConfiguration"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/Bugly
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES

+ 5 - 0
HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob-acknowledgements.markdown

@@ -34,6 +34,11 @@ Copyright © 2014 AutoNavi. All Rights Reserved.
 Copyright © 2014 AutoNavi. All Rights Reserved.
 
 
+## Bugly
+
+Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.
+
+
 ## CocoaLumberjack
 
 BSD 3-Clause License

+ 11 - 0
HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob-acknowledgements.plist

@@ -65,6 +65,17 @@ THE SOFTWARE.
 		</dict>
 		<dict>
 			<key>FooterText</key>
+			<string>Copyright (C) 2017 Tencent Bugly, Inc. All rights reserved.
+</string>
+			<key>License</key>
+			<string>Copyright</string>
+			<key>Title</key>
+			<string>Bugly</string>
+			<key>Type</key>
+			<string>PSGroupSpecifier</string>
+		</dict>
+		<dict>
+			<key>FooterText</key>
 			<string>BSD 3-Clause License
 
 Copyright (c) 2010-2019, Deusty, LLC

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob.debug.xcconfig


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
HappyJob/Pods/Target Support Files/Pods-HappyJob/Pods-HappyJob.release.xcconfig