Jelajahi Sumber

修改聊天 网络设置

曾 伟 5 tahun lalu
induk
melakukan
123c30f105
49 mengubah file dengan 891 tambahan dan 821 penghapusan
  1. 22 0
      image.xcassets/我的每日福利/damaa.imageset/Contents.json
  2. TEMPAT SAMPAH
      image.xcassets/我的每日福利/damaa.imageset/damaa@2x.png
  3. TEMPAT SAMPAH
      image.xcassets/我的每日福利/damaa.imageset/damaa@3x.png
  4. 1 1
      image.xcassets/我的福利大厅/每日任务.imageset/Contents.json
  5. TEMPAT SAMPAH
      image.xcassets/我的福利大厅/每日任务.imageset/每日任务.png
  6. TEMPAT SAMPAH
      image.xcassets/我的福利大厅/每日任务.imageset/每日任务详情拷贝2@2x.png
  7. 16 0
      share/JXNetwork.m
  8. 250 274
      shiku_im.xcodeproj/project.pbxproj
  9. 0 17
      shiku_im.xcodeproj/xcshareddata/xcschemes/shiku_im.xcscheme
  10. 1 1
      shiku_im/3rd/FMDB/FMDatabase.m
  11. 10 0
      shiku_im/AppDelegate.h
  12. 8 15
      shiku_im/AppDelegate.mm
  13. 3 4
      shiku_im/ClassesNew/MainClass/XMGMainViewController.m
  14. 1 1
      shiku_im/ClassesNew/MainClass/XMGOpenGLNavVc.m
  15. 1 1
      shiku_im/ClassesNew/MainClass/YPTabBar.m
  16. 1 1
      shiku_im/ClassesNew/MainClass/YPTabBarController.m
  17. 1 1
      shiku_im/ClassesNew/classes/fuliVc/JXApplyViewController.m
  18. 43 15
      shiku_im/ClassesNew/classes/homeVc/JXCsHomeVc.m
  19. 1 1
      shiku_im/ClassesNew/classes/loginmVc/JXMainLoginVc.m
  20. 2 2
      shiku_im/ClassesNew/classes/loginmVc/JXUUIDModel.m
  21. 18 1
      shiku_im/ClassesNew/classes/messageVc/JXGroupViewController.m
  22. 74 0
      shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.h
  23. 258 408
      shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.m
  24. 2 2
      shiku_im/ClassesNew/classes/messageVc/JXNewFriendViewController.m
  25. 1 1
      shiku_im/ClassesNew/classes/myVc/Vc/JXAcccountAnQuanVc.m
  26. 1 0
      shiku_im/ClassesNew/classes/myVc/Vc/JXMySettingVc.m
  27. 1 1
      shiku_im/ClassesNew/classes/myVc/Vc/JXXiugaiPhoneNumVc.m
  28. 1 1
      shiku_im/ClassesNew/otherLib/UIColor+XQColor/NSObject+Z_propertyCode.m
  29. 1 0
      shiku_im/Register&Login/inputPhoneVC.m
  30. 5 5
      shiku_im/Register&Login/loginVC.m
  31. 1 1
      shiku_im/cell/ChatCell/JXBaseChatCell.m
  32. 2 0
      shiku_im/cell/ChatCell/JXMessageCell.h
  33. 17 11
      shiku_im/cell/ChatCell/JXMessageCell.m
  34. 1 1
      shiku_im/cell/ChatCell/JXReplyCell.m
  35. 1 1
      shiku_im/cell/JXCell.m
  36. 1 1
      shiku_im/control/JXTableViewController.m
  37. 3 2
      shiku_im/controller/JXChatViewC.mm
  38. 22 25
      shiku_im/controller/JXChatViewController.mm
  39. 1 1
      shiku_im/data/roomData.h
  40. 43 4
      shiku_im/data/roomData.m
  41. 2 0
      shiku_im/emojl/JXEmoji.m
  42. 7 4
      shiku_im/model/JXXMPP.m
  43. 15 0
      shiku_im/network/JXConnection.m
  44. 5 5
      shiku_im/network/JXServer.m
  45. 5 0
      shiku_im/person/PSRegisterBaseVC.m
  46. 31 1
      shiku_im/shiku_im-Info.plist
  47. 1 1
      shiku_im/shiku_im-Prefix.pch
  48. 6 6
      shiku_im/util/JXLocation.m
  49. 4 4
      shiku_im/util/MD5Util.m

+ 22 - 0
image.xcassets/我的每日福利/damaa.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "damaa@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "damaa@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

TEMPAT SAMPAH
image.xcassets/我的每日福利/damaa.imageset/damaa@2x.png


TEMPAT SAMPAH
image.xcassets/我的每日福利/damaa.imageset/damaa@3x.png


+ 1 - 1
image.xcassets/我的福利大厅/每日任务.imageset/Contents.json

@@ -5,7 +5,7 @@
       "scale" : "1x"
     },
     {
-      "filename" : "每日任务.png",
+      "filename" : "每日任务详情拷贝2@2x.png",
       "idiom" : "universal",
       "scale" : "2x"
     },

TEMPAT SAMPAH
image.xcassets/我的福利大厅/每日任务.imageset/每日任务.png


TEMPAT SAMPAH
image.xcassets/我的福利大厅/每日任务.imageset/每日任务详情拷贝2@2x.png


+ 16 - 0
share/JXNetwork.m

@@ -43,11 +43,27 @@ static AFHTTPSessionManager *afManager;
     dispatch_once(&onceToken, ^{
         afManager = [AFHTTPSessionManager manager];
         afManager.requestSerializer.timeoutInterval = 10.0;
+      //  afManager.securityPolicy = [self customSecurityPolicy];
+
     });
     
     return afManager;
 }
 
+
+
+/**** SSL Pinning ****/
+- (AFSecurityPolicy*)customSecurityPolicy {
+    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"server" ofType:@"cer"];
+    NSData *certData = [NSData dataWithContentsOfFile:cerPath];
+    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
+    [securityPolicy setAllowInvalidCertificates:YES];
+    NSSet *set = [NSSet setWithObjects:certData, nil];
+    [securityPolicy setPinnedCertificates:set];
+    /**** SSL Pinning ****/
+    return securityPolicy;
+}
+ 
 - (id) init {
     if (self = [super init]) {
         self.params = [NSMutableDictionary dictionary];

+ 250 - 274
shiku_im.xcodeproj/project.pbxproj

@@ -452,6 +452,19 @@
 		4C61D06C24B9D9C90000A2CB /* JXHomeScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C61D06B24B9D9C80000A2CB /* JXHomeScrollView.m */; };
 		4C61D06F24B9EE710000A2CB /* JXShadeShowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C61D06E24B9EE710000A2CB /* JXShadeShowView.m */; };
 		4C61D09724BA06270000A2CB /* JXNodeView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C61D09624BA06270000A2CB /* JXNodeView.m */; };
+		4C79747F24CAB6500094A632 /* AlipaySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C79741A24CAB64D0094A632 /* AlipaySDK.framework */; };
+		4C79748024CAB6510094A632 /* Order.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79741C24CAB64F0094A632 /* Order.m */; };
+		4C79748124CAB6510094A632 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C79741E24CAB64F0094A632 /* libcrypto.a */; };
+		4C79748224CAB6510094A632 /* openssl_wrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742024CAB64F0094A632 /* openssl_wrapper.m */; };
+		4C79748324CAB6510094A632 /* MD5DataSigner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742324CAB64F0094A632 /* MD5DataSigner.m */; };
+		4C79748424CAB6510094A632 /* RSADataVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742624CAB64F0094A632 /* RSADataVerifier.m */; };
+		4C79748524CAB6510094A632 /* NSDataEx.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742824CAB64F0094A632 /* NSDataEx.m */; };
+		4C79748624CAB6510094A632 /* DataSigner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742A24CAB64F0094A632 /* DataSigner.m */; };
+		4C79748724CAB6510094A632 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C79742B24CAB64F0094A632 /* libssl.a */; };
+		4C79748824CAB6510094A632 /* base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742D24CAB64F0094A632 /* base64.m */; };
+		4C79748924CAB6510094A632 /* DataVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79742F24CAB64F0094A632 /* DataVerifier.m */; };
+		4C79748A24CAB6510094A632 /* RSADataSigner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C79743024CAB64F0094A632 /* RSADataSigner.m */; };
+		4C79748B24CAB6510094A632 /* AlipaySDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4C79747E24CAB6500094A632 /* AlipaySDK.bundle */; };
 		4C84579D24C28CA6002D54AF /* JitsiMeet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88AE16022369905C00BB1215 /* JitsiMeet.framework */; };
 		4C84579E24C28CA6002D54AF /* JitsiMeet.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 88AE16022369905C00BB1215 /* JitsiMeet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 		4C8457AA24C2D494002D54AF /* movie.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 4C8457A924C2D494002D54AF /* movie.mp3 */; };
@@ -492,8 +505,6 @@
 		631C6F07223FBD21003C600F /* ShareViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 631C6F06223FBD21003C600F /* ShareViewController.m */; };
 		631C6F0A223FBD21003C600F /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 631C6F08223FBD21003C600F /* MainInterface.storyboard */; };
 		631C6F0E223FBD21003C600F /* 即信.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 631C6F03223FBD21003C600F /* 即信.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
-		631D054921EDCC9700C0AFB5 /* AlipaySDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 631D054721EDCC9700C0AFB5 /* AlipaySDK.bundle */; };
-		631D054A21EDCC9700C0AFB5 /* AlipaySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 631D054821EDCC9700C0AFB5 /* AlipaySDK.framework */; };
 		631D054C21EDCD1500C0AFB5 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 631D054B21EDCD1500C0AFB5 /* libz.tbd */; };
 		631EEDD6226591E800BA95C7 /* JXNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 631EEDD5226591E800BA95C7 /* JXNetwork.m */; };
 		631EEDD92265F5EA00BA95C7 /* JXMoreSelectVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 631EEDD82265F5E900BA95C7 /* JXMoreSelectVC.m */; };
@@ -1625,17 +1636,6 @@
 		CCC7B029197FA18900A828A8 /* im_delete_button_press.png in Resources */ = {isa = PBXBuildFile; fileRef = CCC7B008197FA18900A828A8 /* im_delete_button_press.png */; };
 		CCC7B03B197FA18900A828A8 /* new_tips.png in Resources */ = {isa = PBXBuildFile; fileRef = CCC7B01A197FA18900A828A8 /* new_tips.png */; };
 		CCC7B03C197FA18900A828A8 /* Thumbs.db in Resources */ = {isa = PBXBuildFile; fileRef = CCC7B01B197FA18900A828A8 /* Thumbs.db */; };
-		CCC88B521E4C526E00180080 /* Order.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC8891F1E4C526E00180080 /* Order.m */; };
-		CCC88B531E4C526E00180080 /* base64.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889231E4C526E00180080 /* base64.m */; };
-		CCC88B541E4C526E00180080 /* DataSigner.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889261E4C526E00180080 /* DataSigner.m */; };
-		CCC88B551E4C526E00180080 /* DataVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889281E4C526E00180080 /* DataVerifier.m */; };
-		CCC88B561E4C526E00180080 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CCC889291E4C526E00180080 /* libcrypto.a */; };
-		CCC88B571E4C526E00180080 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CCC8892A1E4C526E00180080 /* libssl.a */; };
-		CCC88B581E4C526E00180080 /* MD5DataSigner.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC8892C1E4C526E00180080 /* MD5DataSigner.m */; };
-		CCC88B591E4C526E00180080 /* NSDataEx.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC8892E1E4C526E00180080 /* NSDataEx.m */; };
-		CCC88B5A1E4C526E00180080 /* openssl_wrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889301E4C526E00180080 /* openssl_wrapper.m */; };
-		CCC88B5B1E4C526E00180080 /* RSADataSigner.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889321E4C526E00180080 /* RSADataSigner.m */; };
-		CCC88B5C1E4C526E00180080 /* RSADataVerifier.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889341E4C526E00180080 /* RSADataVerifier.m */; };
 		CCC88B5D1E4C526E00180080 /* ChatCacheFileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889371E4C526E00180080 /* ChatCacheFileUtil.m */; };
 		CCC88B5E1E4C526E00180080 /* CustomWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC889391E4C526E00180080 /* CustomWindow.m */; };
 		CCC88B5F1E4C526E00180080 /* recorder_trash_can0.png in Resources */ = {isa = PBXBuildFile; fileRef = CCC8893B1E4C526E00180080 /* recorder_trash_can0.png */; };
@@ -2610,6 +2610,104 @@
 		4C61D06E24B9EE710000A2CB /* JXShadeShowView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JXShadeShowView.m; sourceTree = "<group>"; };
 		4C61D09524BA06270000A2CB /* JXNodeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JXNodeView.h; sourceTree = "<group>"; };
 		4C61D09624BA06270000A2CB /* JXNodeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JXNodeView.m; sourceTree = "<group>"; };
+		4C79741A24CAB64D0094A632 /* AlipaySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlipaySDK.framework; sourceTree = "<group>"; };
+		4C79741C24CAB64F0094A632 /* Order.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Order.m; sourceTree = "<group>"; };
+		4C79741E24CAB64F0094A632 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrypto.a; sourceTree = "<group>"; };
+		4C79741F24CAB64F0094A632 /* DataSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataSigner.h; sourceTree = "<group>"; };
+		4C79742024CAB64F0094A632 /* openssl_wrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = openssl_wrapper.m; sourceTree = "<group>"; };
+		4C79742124CAB64F0094A632 /* NSDataEx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDataEx.h; sourceTree = "<group>"; };
+		4C79742224CAB64F0094A632 /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = "<group>"; };
+		4C79742324CAB64F0094A632 /* MD5DataSigner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MD5DataSigner.m; sourceTree = "<group>"; };
+		4C79742424CAB64F0094A632 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
+		4C79742524CAB64F0094A632 /* DataVerifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataVerifier.h; sourceTree = "<group>"; };
+		4C79742624CAB64F0094A632 /* RSADataVerifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSADataVerifier.m; sourceTree = "<group>"; };
+		4C79742724CAB64F0094A632 /* RSADataSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSADataSigner.h; sourceTree = "<group>"; };
+		4C79742824CAB64F0094A632 /* NSDataEx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDataEx.m; sourceTree = "<group>"; };
+		4C79742924CAB64F0094A632 /* openssl_wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = openssl_wrapper.h; sourceTree = "<group>"; };
+		4C79742A24CAB64F0094A632 /* DataSigner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataSigner.m; sourceTree = "<group>"; };
+		4C79742B24CAB64F0094A632 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libssl.a; sourceTree = "<group>"; };
+		4C79742C24CAB64F0094A632 /* MD5DataSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD5DataSigner.h; sourceTree = "<group>"; };
+		4C79742D24CAB64F0094A632 /* base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = base64.m; sourceTree = "<group>"; };
+		4C79742E24CAB64F0094A632 /* RSADataVerifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSADataVerifier.h; sourceTree = "<group>"; };
+		4C79742F24CAB64F0094A632 /* DataVerifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataVerifier.m; sourceTree = "<group>"; };
+		4C79743024CAB64F0094A632 /* RSADataSigner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSADataSigner.m; sourceTree = "<group>"; };
+		4C79743124CAB64F0094A632 /* Order.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Order.h; sourceTree = "<group>"; };
+		4C79743324CAB64F0094A632 /* pem2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pem2.h; sourceTree = "<group>"; };
+		4C79743424CAB64F0094A632 /* pem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pem.h; sourceTree = "<group>"; };
+		4C79743524CAB64F0094A632 /* ssl3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl3.h; sourceTree = "<group>"; };
+		4C79743624CAB64F0094A632 /* ossl_typ.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ossl_typ.h; sourceTree = "<group>"; };
+		4C79743724CAB64F0094A632 /* dtls1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dtls1.h; sourceTree = "<group>"; };
+		4C79743824CAB64F0094A632 /* err.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = err.h; sourceTree = "<group>"; };
+		4C79743924CAB64F0094A632 /* bn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bn.h; sourceTree = "<group>"; };
+		4C79743A24CAB64F0094A632 /* blowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blowfish.h; sourceTree = "<group>"; };
+		4C79743B24CAB64F0094A632 /* cms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cms.h; sourceTree = "<group>"; };
+		4C79743C24CAB64F0094A632 /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = engine.h; sourceTree = "<group>"; };
+		4C79743D24CAB64F0094A632 /* conf_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conf_api.h; sourceTree = "<group>"; };
+		4C79743E24CAB64F0094A632 /* x509.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509.h; sourceTree = "<group>"; };
+		4C79743F24CAB64F0094A632 /* asn1_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1_mac.h; sourceTree = "<group>"; };
+		4C79744024CAB64F0094A632 /* ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui.h; sourceTree = "<group>"; };
+		4C79744124CAB64F0094A632 /* kssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kssl.h; sourceTree = "<group>"; };
+		4C79744224CAB64F0094A632 /* sha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha.h; sourceTree = "<group>"; };
+		4C79744324CAB64F0094A632 /* symhacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = symhacks.h; sourceTree = "<group>"; };
+		4C79744424CAB64F0094A632 /* asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1.h; sourceTree = "<group>"; };
+		4C79744524CAB64F0094A632 /* opensslconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opensslconf.h; sourceTree = "<group>"; };
+		4C79744624CAB64F0094A632 /* bio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bio.h; sourceTree = "<group>"; };
+		4C79744724CAB64F0094A632 /* rc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc2.h; sourceTree = "<group>"; };
+		4C79744824CAB64F0094A632 /* dh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dh.h; sourceTree = "<group>"; };
+		4C79744924CAB64F0094A632 /* ui_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui_compat.h; sourceTree = "<group>"; };
+		4C79744A24CAB64F0094A632 /* x509v3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509v3.h; sourceTree = "<group>"; };
+		4C79744B24CAB64F0094A632 /* ssl23.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl23.h; sourceTree = "<group>"; };
+		4C79744C24CAB64F0094A632 /* conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conf.h; sourceTree = "<group>"; };
+		4C79744D24CAB64F0094A632 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = "<group>"; };
+		4C79744E24CAB64F0094A632 /* x509_vfy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509_vfy.h; sourceTree = "<group>"; };
+		4C79744F24CAB64F0094A632 /* txt_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = txt_db.h; sourceTree = "<group>"; };
+		4C79745024CAB64F0094A632 /* safestack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = safestack.h; sourceTree = "<group>"; };
+		4C79745124CAB64F0094A632 /* ecdsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdsa.h; sourceTree = "<group>"; };
+		4C79745224CAB64F0094A632 /* objects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objects.h; sourceTree = "<group>"; };
+		4C79745324CAB64F0094A632 /* pkcs12.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pkcs12.h; sourceTree = "<group>"; };
+		4C79745424CAB64F0094A632 /* crypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto.h; sourceTree = "<group>"; };
+		4C79745524CAB64F0094A632 /* opensslv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opensslv.h; sourceTree = "<group>"; };
+		4C79745624CAB64F0094A632 /* pkcs7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pkcs7.h; sourceTree = "<group>"; };
+		4C79745724CAB64F0094A632 /* obj_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = obj_mac.h; sourceTree = "<group>"; };
+		4C79745824CAB64F0094A632 /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffer.h; sourceTree = "<group>"; };
+		4C79745924CAB64F0094A632 /* ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl.h; sourceTree = "<group>"; };
+		4C79745A24CAB64F0094A632 /* srp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = srp.h; sourceTree = "<group>"; };
+		4C79745B24CAB64F0094A632 /* camellia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = camellia.h; sourceTree = "<group>"; };
+		4C79745C24CAB64F0094A632 /* evp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = evp.h; sourceTree = "<group>"; };
+		4C79745D24CAB64F0094A632 /* e_os2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = e_os2.h; sourceTree = "<group>"; };
+		4C79745E24CAB64F0094A632 /* md4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md4.h; sourceTree = "<group>"; };
+		4C79745F24CAB64F0094A632 /* hmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hmac.h; sourceTree = "<group>"; };
+		4C79746024CAB64F0094A632 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = "<group>"; };
+		4C79746124CAB64F0094A632 /* comp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = comp.h; sourceTree = "<group>"; };
+		4C79746224CAB64F0094A632 /* cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cast.h; sourceTree = "<group>"; };
+		4C79746324CAB64F0094A632 /* rc4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc4.h; sourceTree = "<group>"; };
+		4C79746424CAB64F0094A632 /* stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack.h; sourceTree = "<group>"; };
+		4C79746524CAB64F0094A632 /* des.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des.h; sourceTree = "<group>"; };
+		4C79746624CAB64F0094A632 /* ocsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ocsp.h; sourceTree = "<group>"; };
+		4C79746724CAB64F0094A632 /* ec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ec.h; sourceTree = "<group>"; };
+		4C79746824CAB64F0094A632 /* ecdh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdh.h; sourceTree = "<group>"; };
+		4C79746924CAB64F0094A632 /* rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rand.h; sourceTree = "<group>"; };
+		4C79746A24CAB64F0094A632 /* ts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ts.h; sourceTree = "<group>"; };
+		4C79746B24CAB64F0094A632 /* pqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pqueue.h; sourceTree = "<group>"; };
+		4C79746C24CAB64F0094A632 /* dso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dso.h; sourceTree = "<group>"; };
+		4C79746D24CAB64F0094A632 /* seed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seed.h; sourceTree = "<group>"; };
+		4C79746E24CAB64F0094A632 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modes.h; sourceTree = "<group>"; };
+		4C79746F24CAB64F0094A632 /* ssl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl2.h; sourceTree = "<group>"; };
+		4C79747024CAB64F0094A632 /* rsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rsa.h; sourceTree = "<group>"; };
+		4C79747124CAB64F0094A632 /* krb5_asn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = krb5_asn.h; sourceTree = "<group>"; };
+		4C79747224CAB64F0094A632 /* des_old.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des_old.h; sourceTree = "<group>"; };
+		4C79747324CAB64F0094A632 /* ripemd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ripemd.h; sourceTree = "<group>"; };
+		4C79747424CAB64F0094A632 /* whrlpool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = whrlpool.h; sourceTree = "<group>"; };
+		4C79747524CAB64F0094A632 /* tls1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tls1.h; sourceTree = "<group>"; };
+		4C79747624CAB64F0094A632 /* mdc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdc2.h; sourceTree = "<group>"; };
+		4C79747724CAB64F0094A632 /* dsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dsa.h; sourceTree = "<group>"; };
+		4C79747824CAB64F0094A632 /* srtp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = srtp.h; sourceTree = "<group>"; };
+		4C79747924CAB64F0094A632 /* asn1t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1t.h; sourceTree = "<group>"; };
+		4C79747A24CAB64F0094A632 /* cmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cmac.h; sourceTree = "<group>"; };
+		4C79747B24CAB64F0094A632 /* ebcdic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ebcdic.h; sourceTree = "<group>"; };
+		4C79747C24CAB64F0094A632 /* idea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = idea.h; sourceTree = "<group>"; };
+		4C79747D24CAB64F0094A632 /* lhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lhash.h; sourceTree = "<group>"; };
+		4C79747E24CAB6500094A632 /* AlipaySDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = AlipaySDK.bundle; sourceTree = "<group>"; };
 		4C8457A924C2D494002D54AF /* movie.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = movie.mp3; sourceTree = "<group>"; };
 		4C8C2D9C24AAE9D200E7ECAB /* YPTabBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YPTabBar.m; sourceTree = "<group>"; };
 		4C8C2DA124AAE9D200E7ECAB /* YPTabBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YPTabBar.h; sourceTree = "<group>"; };
@@ -2658,8 +2756,6 @@
 		631C6F06223FBD21003C600F /* ShareViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShareViewController.m; sourceTree = "<group>"; };
 		631C6F09223FBD21003C600F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = "<group>"; };
 		631C6F0B223FBD21003C600F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		631D054721EDCC9700C0AFB5 /* AlipaySDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = AlipaySDK.bundle; sourceTree = "<group>"; };
-		631D054821EDCC9700C0AFB5 /* AlipaySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlipaySDK.framework; sourceTree = "<group>"; };
 		631D054B21EDCD1500C0AFB5 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
 		631EEDD4226591E800BA95C7 /* JXNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JXNetwork.h; sourceTree = "<group>"; };
 		631EEDD5226591E800BA95C7 /* JXNetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JXNetwork.m; sourceTree = "<group>"; };
@@ -4484,102 +4580,6 @@
 		CCC7B008197FA18900A828A8 /* im_delete_button_press.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = im_delete_button_press.png; sourceTree = "<group>"; };
 		CCC7B01A197FA18900A828A8 /* new_tips.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = new_tips.png; sourceTree = "<group>"; };
 		CCC7B01B197FA18900A828A8 /* Thumbs.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = Thumbs.db; sourceTree = "<group>"; };
-		CCC888D31E4C526E00180080 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = "<group>"; };
-		CCC888D41E4C526E00180080 /* asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1.h; sourceTree = "<group>"; };
-		CCC888D51E4C526E00180080 /* asn1_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1_mac.h; sourceTree = "<group>"; };
-		CCC888D61E4C526E00180080 /* asn1t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1t.h; sourceTree = "<group>"; };
-		CCC888D71E4C526E00180080 /* bio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bio.h; sourceTree = "<group>"; };
-		CCC888D81E4C526E00180080 /* blowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blowfish.h; sourceTree = "<group>"; };
-		CCC888D91E4C526E00180080 /* bn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bn.h; sourceTree = "<group>"; };
-		CCC888DA1E4C526E00180080 /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffer.h; sourceTree = "<group>"; };
-		CCC888DB1E4C526E00180080 /* camellia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = camellia.h; sourceTree = "<group>"; };
-		CCC888DC1E4C526E00180080 /* cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cast.h; sourceTree = "<group>"; };
-		CCC888DD1E4C526E00180080 /* cmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cmac.h; sourceTree = "<group>"; };
-		CCC888DE1E4C526E00180080 /* cms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cms.h; sourceTree = "<group>"; };
-		CCC888DF1E4C526E00180080 /* comp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = comp.h; sourceTree = "<group>"; };
-		CCC888E01E4C526E00180080 /* conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conf.h; sourceTree = "<group>"; };
-		CCC888E11E4C526E00180080 /* conf_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conf_api.h; sourceTree = "<group>"; };
-		CCC888E21E4C526E00180080 /* crypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto.h; sourceTree = "<group>"; };
-		CCC888E31E4C526E00180080 /* des.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des.h; sourceTree = "<group>"; };
-		CCC888E41E4C526E00180080 /* des_old.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des_old.h; sourceTree = "<group>"; };
-		CCC888E51E4C526E00180080 /* dh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dh.h; sourceTree = "<group>"; };
-		CCC888E61E4C526E00180080 /* dsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dsa.h; sourceTree = "<group>"; };
-		CCC888E71E4C526E00180080 /* dso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dso.h; sourceTree = "<group>"; };
-		CCC888E81E4C526E00180080 /* dtls1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dtls1.h; sourceTree = "<group>"; };
-		CCC888E91E4C526E00180080 /* e_os2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = e_os2.h; sourceTree = "<group>"; };
-		CCC888EA1E4C526E00180080 /* ebcdic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ebcdic.h; sourceTree = "<group>"; };
-		CCC888EB1E4C526E00180080 /* ec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ec.h; sourceTree = "<group>"; };
-		CCC888EC1E4C526E00180080 /* ecdh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdh.h; sourceTree = "<group>"; };
-		CCC888ED1E4C526E00180080 /* ecdsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdsa.h; sourceTree = "<group>"; };
-		CCC888EE1E4C526E00180080 /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = engine.h; sourceTree = "<group>"; };
-		CCC888EF1E4C526E00180080 /* err.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = err.h; sourceTree = "<group>"; };
-		CCC888F01E4C526E00180080 /* evp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = evp.h; sourceTree = "<group>"; };
-		CCC888F11E4C526E00180080 /* hmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hmac.h; sourceTree = "<group>"; };
-		CCC888F21E4C526E00180080 /* idea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = idea.h; sourceTree = "<group>"; };
-		CCC888F31E4C526E00180080 /* krb5_asn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = krb5_asn.h; sourceTree = "<group>"; };
-		CCC888F41E4C526E00180080 /* kssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kssl.h; sourceTree = "<group>"; };
-		CCC888F51E4C526E00180080 /* lhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lhash.h; sourceTree = "<group>"; };
-		CCC888F61E4C526E00180080 /* md4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md4.h; sourceTree = "<group>"; };
-		CCC888F71E4C526E00180080 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = "<group>"; };
-		CCC888F81E4C526E00180080 /* mdc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdc2.h; sourceTree = "<group>"; };
-		CCC888F91E4C526E00180080 /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modes.h; sourceTree = "<group>"; };
-		CCC888FA1E4C526E00180080 /* obj_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = obj_mac.h; sourceTree = "<group>"; };
-		CCC888FB1E4C526E00180080 /* objects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objects.h; sourceTree = "<group>"; };
-		CCC888FC1E4C526E00180080 /* ocsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ocsp.h; sourceTree = "<group>"; };
-		CCC888FD1E4C526E00180080 /* opensslconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opensslconf.h; sourceTree = "<group>"; };
-		CCC888FE1E4C526E00180080 /* opensslv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opensslv.h; sourceTree = "<group>"; };
-		CCC888FF1E4C526E00180080 /* ossl_typ.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ossl_typ.h; sourceTree = "<group>"; };
-		CCC889001E4C526E00180080 /* pem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pem.h; sourceTree = "<group>"; };
-		CCC889011E4C526E00180080 /* pem2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pem2.h; sourceTree = "<group>"; };
-		CCC889021E4C526E00180080 /* pkcs12.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pkcs12.h; sourceTree = "<group>"; };
-		CCC889031E4C526E00180080 /* pkcs7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pkcs7.h; sourceTree = "<group>"; };
-		CCC889041E4C526E00180080 /* pqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pqueue.h; sourceTree = "<group>"; };
-		CCC889051E4C526E00180080 /* rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rand.h; sourceTree = "<group>"; };
-		CCC889061E4C526E00180080 /* rc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc2.h; sourceTree = "<group>"; };
-		CCC889071E4C526E00180080 /* rc4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc4.h; sourceTree = "<group>"; };
-		CCC889081E4C526E00180080 /* ripemd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ripemd.h; sourceTree = "<group>"; };
-		CCC889091E4C526E00180080 /* rsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rsa.h; sourceTree = "<group>"; };
-		CCC8890A1E4C526E00180080 /* safestack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = safestack.h; sourceTree = "<group>"; };
-		CCC8890B1E4C526E00180080 /* seed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seed.h; sourceTree = "<group>"; };
-		CCC8890C1E4C526E00180080 /* sha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha.h; sourceTree = "<group>"; };
-		CCC8890D1E4C526E00180080 /* srp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = srp.h; sourceTree = "<group>"; };
-		CCC8890E1E4C526E00180080 /* srtp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = srtp.h; sourceTree = "<group>"; };
-		CCC8890F1E4C526E00180080 /* ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl.h; sourceTree = "<group>"; };
-		CCC889101E4C526E00180080 /* ssl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl2.h; sourceTree = "<group>"; };
-		CCC889111E4C526E00180080 /* ssl23.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl23.h; sourceTree = "<group>"; };
-		CCC889121E4C526E00180080 /* ssl3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl3.h; sourceTree = "<group>"; };
-		CCC889131E4C526E00180080 /* stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack.h; sourceTree = "<group>"; };
-		CCC889141E4C526E00180080 /* symhacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = symhacks.h; sourceTree = "<group>"; };
-		CCC889151E4C526E00180080 /* tls1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tls1.h; sourceTree = "<group>"; };
-		CCC889161E4C526E00180080 /* ts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ts.h; sourceTree = "<group>"; };
-		CCC889171E4C526E00180080 /* txt_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = txt_db.h; sourceTree = "<group>"; };
-		CCC889181E4C526E00180080 /* ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui.h; sourceTree = "<group>"; };
-		CCC889191E4C526E00180080 /* ui_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui_compat.h; sourceTree = "<group>"; };
-		CCC8891A1E4C526E00180080 /* whrlpool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = whrlpool.h; sourceTree = "<group>"; };
-		CCC8891B1E4C526E00180080 /* x509.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509.h; sourceTree = "<group>"; };
-		CCC8891C1E4C526E00180080 /* x509_vfy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509_vfy.h; sourceTree = "<group>"; };
-		CCC8891D1E4C526E00180080 /* x509v3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509v3.h; sourceTree = "<group>"; };
-		CCC8891E1E4C526E00180080 /* Order.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Order.h; sourceTree = "<group>"; };
-		CCC8891F1E4C526E00180080 /* Order.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Order.m; sourceTree = "<group>"; };
-		CCC889221E4C526E00180080 /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = "<group>"; };
-		CCC889231E4C526E00180080 /* base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = base64.m; sourceTree = "<group>"; };
-		CCC889241E4C526E00180080 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
-		CCC889251E4C526E00180080 /* DataSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataSigner.h; sourceTree = "<group>"; };
-		CCC889261E4C526E00180080 /* DataSigner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataSigner.m; sourceTree = "<group>"; };
-		CCC889271E4C526E00180080 /* DataVerifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataVerifier.h; sourceTree = "<group>"; };
-		CCC889281E4C526E00180080 /* DataVerifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataVerifier.m; sourceTree = "<group>"; };
-		CCC889291E4C526E00180080 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrypto.a; sourceTree = "<group>"; };
-		CCC8892A1E4C526E00180080 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libssl.a; sourceTree = "<group>"; };
-		CCC8892B1E4C526E00180080 /* MD5DataSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MD5DataSigner.h; sourceTree = "<group>"; };
-		CCC8892C1E4C526E00180080 /* MD5DataSigner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MD5DataSigner.m; sourceTree = "<group>"; };
-		CCC8892D1E4C526E00180080 /* NSDataEx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDataEx.h; sourceTree = "<group>"; };
-		CCC8892E1E4C526E00180080 /* NSDataEx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDataEx.m; sourceTree = "<group>"; };
-		CCC8892F1E4C526E00180080 /* openssl_wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = openssl_wrapper.h; sourceTree = "<group>"; };
-		CCC889301E4C526E00180080 /* openssl_wrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = openssl_wrapper.m; sourceTree = "<group>"; };
-		CCC889311E4C526E00180080 /* RSADataSigner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSADataSigner.h; sourceTree = "<group>"; };
-		CCC889321E4C526E00180080 /* RSADataSigner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSADataSigner.m; sourceTree = "<group>"; };
-		CCC889331E4C526E00180080 /* RSADataVerifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RSADataVerifier.h; sourceTree = "<group>"; };
-		CCC889341E4C526E00180080 /* RSADataVerifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RSADataVerifier.m; sourceTree = "<group>"; };
 		CCC889361E4C526E00180080 /* ChatCacheFileUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatCacheFileUtil.h; sourceTree = "<group>"; };
 		CCC889371E4C526E00180080 /* ChatCacheFileUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatCacheFileUtil.m; sourceTree = "<group>"; };
 		CCC889381E4C526E00180080 /* CustomWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomWindow.h; sourceTree = "<group>"; };
@@ -4759,6 +4759,7 @@
 				B1F3ABDD24AB2D8200450052 /* Lottie.framework in Frameworks */,
 				0F15FE93236A860E008A0E30 /* libProtocolBuffers.a in Frameworks */,
 				CCEBE9301C1553EB00C2F7A9 /* CoreTelephony.framework in Frameworks */,
+				4C79747F24CAB6500094A632 /* AlipaySDK.framework in Frameworks */,
 				8409055E17B693CF00F5C28D /* CoreGraphics.framework in Frameworks */,
 				8472A9EA17B6978700129DBB /* SystemConfiguration.framework in Frameworks */,
 				8472A9EC17B6979600129DBB /* Security.framework in Frameworks */,
@@ -4774,6 +4775,7 @@
 				CC875892193613C7007D2DA1 /* CoreFoundation.framework in Frameworks */,
 				8409057F17B694CA00F5C28D /* CFNetwork.framework in Frameworks */,
 				4C84579D24C28CA6002D54AF /* JitsiMeet.framework in Frameworks */,
+				4C79748724CAB6510094A632 /* libssl.a in Frameworks */,
 				CCC88D001E4C761C00180080 /* CoreMotion.framework in Frameworks */,
 				CC30178E1951BED80059BADA /* CoreText.framework in Frameworks */,
 				8472A9F217B697E900129DBB /* QuartzCore.framework in Frameworks */,
@@ -4781,6 +4783,7 @@
 				6317CC621FB9756B00CEF9EF /* libc++.tbd in Frameworks */,
 				63E43FB222B22C2000B8CBE9 /* jpush-ios-3.2.1.a in Frameworks */,
 				63C990241FC7FF5500B1A28B /* PushKit.framework in Frameworks */,
+				4C79748124CAB6510094A632 /* libcrypto.a in Frameworks */,
 				63C990221FC7FF5000B1A28B /* CallKit.framework in Frameworks */,
 				6317CC611FB9753E00CEF9EF /* libbz2.1.0.tbd in Frameworks */,
 				6317CC5F1FB9752500CEF9EF /* VideoToolbox.framework in Frameworks */,
@@ -4791,7 +4794,6 @@
 				CCE383EA1E307AC900762283 /* libsqlite3.tbd in Frameworks */,
 				B18B72972418882B00FA2BCE /* Bugly.framework in Frameworks */,
 				CC4DA96B1E2F64A50066B841 /* ImageIO.framework in Frameworks */,
-				631D054A21EDCC9700C0AFB5 /* AlipaySDK.framework in Frameworks */,
 				CC792C6D19C083B200AF7D22 /* OpenGLES.framework in Frameworks */,
 				88BFF92F23557B27009A3A4F /* WebRTC.framework in Frameworks */,
 				63E43FB322B22C2000B8CBE9 /* jpush-extension-ios-1.1.2.a in Frameworks */,
@@ -4802,11 +4804,9 @@
 				CCC88B6C1E4C526E00180080 /* libopencore-amrnb.a in Frameworks */,
 				CCC88D091E4C7A3800180080 /* libiconv.tbd in Frameworks */,
 				CC5698021E67080400F750B7 /* BaiduMapAPI_Base.framework in Frameworks */,
-				CCC88B571E4C526E00180080 /* libssl.a in Frameworks */,
 				CC792C6A19C0838400AF7D22 /* AddressBook.framework in Frameworks */,
 				CC792C6B19C0838400AF7D22 /* AddressBookUI.framework in Frameworks */,
 				2069541718439E69007F1FED /* AudioToolbox.framework in Frameworks */,
-				CCC88B561E4C526E00180080 /* libcrypto.a in Frameworks */,
 				CCC46F161E2F9EAA005A13E8 /* libz.tbd in Frameworks */,
 				63E43FB422B22C2000B8CBE9 /* jcore-ios-2.0.2.a in Frameworks */,
 				0F115DE621D1D77B0080653A /* libWeChatSDK.a in Frameworks */,
@@ -5709,6 +5709,125 @@
 			path = images;
 			sourceTree = "<group>";
 		};
+		4C79741B24CAB64F0094A632 /* alipay */ = {
+			isa = PBXGroup;
+			children = (
+				4C79741C24CAB64F0094A632 /* Order.m */,
+				4C79741D24CAB64F0094A632 /* Util */,
+				4C79743124CAB64F0094A632 /* Order.h */,
+				4C79743224CAB64F0094A632 /* openssl */,
+			);
+			path = alipay;
+			sourceTree = "<group>";
+		};
+		4C79741D24CAB64F0094A632 /* Util */ = {
+			isa = PBXGroup;
+			children = (
+				4C79741E24CAB64F0094A632 /* libcrypto.a */,
+				4C79741F24CAB64F0094A632 /* DataSigner.h */,
+				4C79742024CAB64F0094A632 /* openssl_wrapper.m */,
+				4C79742124CAB64F0094A632 /* NSDataEx.h */,
+				4C79742224CAB64F0094A632 /* base64.h */,
+				4C79742324CAB64F0094A632 /* MD5DataSigner.m */,
+				4C79742424CAB64F0094A632 /* config.h */,
+				4C79742524CAB64F0094A632 /* DataVerifier.h */,
+				4C79742624CAB64F0094A632 /* RSADataVerifier.m */,
+				4C79742724CAB64F0094A632 /* RSADataSigner.h */,
+				4C79742824CAB64F0094A632 /* NSDataEx.m */,
+				4C79742924CAB64F0094A632 /* openssl_wrapper.h */,
+				4C79742A24CAB64F0094A632 /* DataSigner.m */,
+				4C79742B24CAB64F0094A632 /* libssl.a */,
+				4C79742C24CAB64F0094A632 /* MD5DataSigner.h */,
+				4C79742D24CAB64F0094A632 /* base64.m */,
+				4C79742E24CAB64F0094A632 /* RSADataVerifier.h */,
+				4C79742F24CAB64F0094A632 /* DataVerifier.m */,
+				4C79743024CAB64F0094A632 /* RSADataSigner.m */,
+			);
+			path = Util;
+			sourceTree = "<group>";
+		};
+		4C79743224CAB64F0094A632 /* openssl */ = {
+			isa = PBXGroup;
+			children = (
+				4C79743324CAB64F0094A632 /* pem2.h */,
+				4C79743424CAB64F0094A632 /* pem.h */,
+				4C79743524CAB64F0094A632 /* ssl3.h */,
+				4C79743624CAB64F0094A632 /* ossl_typ.h */,
+				4C79743724CAB64F0094A632 /* dtls1.h */,
+				4C79743824CAB64F0094A632 /* err.h */,
+				4C79743924CAB64F0094A632 /* bn.h */,
+				4C79743A24CAB64F0094A632 /* blowfish.h */,
+				4C79743B24CAB64F0094A632 /* cms.h */,
+				4C79743C24CAB64F0094A632 /* engine.h */,
+				4C79743D24CAB64F0094A632 /* conf_api.h */,
+				4C79743E24CAB64F0094A632 /* x509.h */,
+				4C79743F24CAB64F0094A632 /* asn1_mac.h */,
+				4C79744024CAB64F0094A632 /* ui.h */,
+				4C79744124CAB64F0094A632 /* kssl.h */,
+				4C79744224CAB64F0094A632 /* sha.h */,
+				4C79744324CAB64F0094A632 /* symhacks.h */,
+				4C79744424CAB64F0094A632 /* asn1.h */,
+				4C79744524CAB64F0094A632 /* opensslconf.h */,
+				4C79744624CAB64F0094A632 /* bio.h */,
+				4C79744724CAB64F0094A632 /* rc2.h */,
+				4C79744824CAB64F0094A632 /* dh.h */,
+				4C79744924CAB64F0094A632 /* ui_compat.h */,
+				4C79744A24CAB64F0094A632 /* x509v3.h */,
+				4C79744B24CAB64F0094A632 /* ssl23.h */,
+				4C79744C24CAB64F0094A632 /* conf.h */,
+				4C79744D24CAB64F0094A632 /* md5.h */,
+				4C79744E24CAB64F0094A632 /* x509_vfy.h */,
+				4C79744F24CAB64F0094A632 /* txt_db.h */,
+				4C79745024CAB64F0094A632 /* safestack.h */,
+				4C79745124CAB64F0094A632 /* ecdsa.h */,
+				4C79745224CAB64F0094A632 /* objects.h */,
+				4C79745324CAB64F0094A632 /* pkcs12.h */,
+				4C79745424CAB64F0094A632 /* crypto.h */,
+				4C79745524CAB64F0094A632 /* opensslv.h */,
+				4C79745624CAB64F0094A632 /* pkcs7.h */,
+				4C79745724CAB64F0094A632 /* obj_mac.h */,
+				4C79745824CAB64F0094A632 /* buffer.h */,
+				4C79745924CAB64F0094A632 /* ssl.h */,
+				4C79745A24CAB64F0094A632 /* srp.h */,
+				4C79745B24CAB64F0094A632 /* camellia.h */,
+				4C79745C24CAB64F0094A632 /* evp.h */,
+				4C79745D24CAB64F0094A632 /* e_os2.h */,
+				4C79745E24CAB64F0094A632 /* md4.h */,
+				4C79745F24CAB64F0094A632 /* hmac.h */,
+				4C79746024CAB64F0094A632 /* aes.h */,
+				4C79746124CAB64F0094A632 /* comp.h */,
+				4C79746224CAB64F0094A632 /* cast.h */,
+				4C79746324CAB64F0094A632 /* rc4.h */,
+				4C79746424CAB64F0094A632 /* stack.h */,
+				4C79746524CAB64F0094A632 /* des.h */,
+				4C79746624CAB64F0094A632 /* ocsp.h */,
+				4C79746724CAB64F0094A632 /* ec.h */,
+				4C79746824CAB64F0094A632 /* ecdh.h */,
+				4C79746924CAB64F0094A632 /* rand.h */,
+				4C79746A24CAB64F0094A632 /* ts.h */,
+				4C79746B24CAB64F0094A632 /* pqueue.h */,
+				4C79746C24CAB64F0094A632 /* dso.h */,
+				4C79746D24CAB64F0094A632 /* seed.h */,
+				4C79746E24CAB64F0094A632 /* modes.h */,
+				4C79746F24CAB64F0094A632 /* ssl2.h */,
+				4C79747024CAB64F0094A632 /* rsa.h */,
+				4C79747124CAB64F0094A632 /* krb5_asn.h */,
+				4C79747224CAB64F0094A632 /* des_old.h */,
+				4C79747324CAB64F0094A632 /* ripemd.h */,
+				4C79747424CAB64F0094A632 /* whrlpool.h */,
+				4C79747524CAB64F0094A632 /* tls1.h */,
+				4C79747624CAB64F0094A632 /* mdc2.h */,
+				4C79747724CAB64F0094A632 /* dsa.h */,
+				4C79747824CAB64F0094A632 /* srtp.h */,
+				4C79747924CAB64F0094A632 /* asn1t.h */,
+				4C79747A24CAB64F0094A632 /* cmac.h */,
+				4C79747B24CAB64F0094A632 /* ebcdic.h */,
+				4C79747C24CAB64F0094A632 /* idea.h */,
+				4C79747D24CAB64F0094A632 /* lhash.h */,
+			);
+			path = openssl;
+			sourceTree = "<group>";
+		};
 		4CC4D6CE24BEF56100DDF1F6 /* 特别关心提示音 */ = {
 			isa = PBXGroup;
 			children = (
@@ -5760,15 +5879,6 @@
 			path = share;
 			sourceTree = "<group>";
 		};
-		631D054621EDCC8400C0AFB5 /* AlipaySDK */ = {
-			isa = PBXGroup;
-			children = (
-				631D054721EDCC9700C0AFB5 /* AlipaySDK.bundle */,
-				631D054821EDCC9700C0AFB5 /* AlipaySDK.framework */,
-			);
-			name = AlipaySDK;
-			sourceTree = "<group>";
-		};
 		63208F1A1EC2B64E00875B89 /* Map */ = {
 			isa = PBXGroup;
 			children = (
@@ -9053,11 +9163,12 @@
 		CCC888BF1E4C526E00180080 /* 3rd */ = {
 			isa = PBXGroup;
 			children = (
+				4C79741B24CAB64F0094A632 /* alipay */,
+				4C79747E24CAB6500094A632 /* AlipaySDK.bundle */,
+				4C79741A24CAB64D0094A632 /* AlipaySDK.framework */,
 				B1405EB024A6248600A1E579 /* AvoidCrash */,
 				9D9321812499038B007E1D9D /* JSONModel */,
 				0F5A70921FCD07EA00547904 /* AFNetworking */,
-				CCC888CE1E4C526E00180080 /* alipay */,
-				631D054621EDCC8400C0AFB5 /* AlipaySDK */,
 				CCC889351E4C526E00180080 /* amr_wav */,
 				CC5697FA1E67080400F750B7 /* BaiduMap */,
 				6347CB371F690FAE00CD4F1F /* BMChineseStringSort */,
@@ -9090,141 +9201,6 @@
 			path = 3rd;
 			sourceTree = "<group>";
 		};
-		CCC888CE1E4C526E00180080 /* alipay */ = {
-			isa = PBXGroup;
-			children = (
-				CCC888D11E4C526E00180080 /* bak */,
-				CCC888D21E4C526E00180080 /* openssl */,
-				CCC8891E1E4C526E00180080 /* Order.h */,
-				CCC8891F1E4C526E00180080 /* Order.m */,
-				CCC889201E4C526E00180080 /* RSA */,
-				CCC889211E4C526E00180080 /* Util */,
-			);
-			path = alipay;
-			sourceTree = "<group>";
-		};
-		CCC888D11E4C526E00180080 /* bak */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = bak;
-			sourceTree = "<group>";
-		};
-		CCC888D21E4C526E00180080 /* openssl */ = {
-			isa = PBXGroup;
-			children = (
-				CCC888D31E4C526E00180080 /* aes.h */,
-				CCC888D41E4C526E00180080 /* asn1.h */,
-				CCC888D51E4C526E00180080 /* asn1_mac.h */,
-				CCC888D61E4C526E00180080 /* asn1t.h */,
-				CCC888D71E4C526E00180080 /* bio.h */,
-				CCC888D81E4C526E00180080 /* blowfish.h */,
-				CCC888D91E4C526E00180080 /* bn.h */,
-				CCC888DA1E4C526E00180080 /* buffer.h */,
-				CCC888DB1E4C526E00180080 /* camellia.h */,
-				CCC888DC1E4C526E00180080 /* cast.h */,
-				CCC888DD1E4C526E00180080 /* cmac.h */,
-				CCC888DE1E4C526E00180080 /* cms.h */,
-				CCC888DF1E4C526E00180080 /* comp.h */,
-				CCC888E01E4C526E00180080 /* conf.h */,
-				CCC888E11E4C526E00180080 /* conf_api.h */,
-				CCC888E21E4C526E00180080 /* crypto.h */,
-				CCC888E31E4C526E00180080 /* des.h */,
-				CCC888E41E4C526E00180080 /* des_old.h */,
-				CCC888E51E4C526E00180080 /* dh.h */,
-				CCC888E61E4C526E00180080 /* dsa.h */,
-				CCC888E71E4C526E00180080 /* dso.h */,
-				CCC888E81E4C526E00180080 /* dtls1.h */,
-				CCC888E91E4C526E00180080 /* e_os2.h */,
-				CCC888EA1E4C526E00180080 /* ebcdic.h */,
-				CCC888EB1E4C526E00180080 /* ec.h */,
-				CCC888EC1E4C526E00180080 /* ecdh.h */,
-				CCC888ED1E4C526E00180080 /* ecdsa.h */,
-				CCC888EE1E4C526E00180080 /* engine.h */,
-				CCC888EF1E4C526E00180080 /* err.h */,
-				CCC888F01E4C526E00180080 /* evp.h */,
-				CCC888F11E4C526E00180080 /* hmac.h */,
-				CCC888F21E4C526E00180080 /* idea.h */,
-				CCC888F31E4C526E00180080 /* krb5_asn.h */,
-				CCC888F41E4C526E00180080 /* kssl.h */,
-				CCC888F51E4C526E00180080 /* lhash.h */,
-				CCC888F61E4C526E00180080 /* md4.h */,
-				CCC888F71E4C526E00180080 /* md5.h */,
-				CCC888F81E4C526E00180080 /* mdc2.h */,
-				CCC888F91E4C526E00180080 /* modes.h */,
-				CCC888FA1E4C526E00180080 /* obj_mac.h */,
-				CCC888FB1E4C526E00180080 /* objects.h */,
-				CCC888FC1E4C526E00180080 /* ocsp.h */,
-				CCC888FD1E4C526E00180080 /* opensslconf.h */,
-				CCC888FE1E4C526E00180080 /* opensslv.h */,
-				CCC888FF1E4C526E00180080 /* ossl_typ.h */,
-				CCC889001E4C526E00180080 /* pem.h */,
-				CCC889011E4C526E00180080 /* pem2.h */,
-				CCC889021E4C526E00180080 /* pkcs12.h */,
-				CCC889031E4C526E00180080 /* pkcs7.h */,
-				CCC889041E4C526E00180080 /* pqueue.h */,
-				CCC889051E4C526E00180080 /* rand.h */,
-				CCC889061E4C526E00180080 /* rc2.h */,
-				CCC889071E4C526E00180080 /* rc4.h */,
-				CCC889081E4C526E00180080 /* ripemd.h */,
-				CCC889091E4C526E00180080 /* rsa.h */,
-				CCC8890A1E4C526E00180080 /* safestack.h */,
-				CCC8890B1E4C526E00180080 /* seed.h */,
-				CCC8890C1E4C526E00180080 /* sha.h */,
-				CCC8890D1E4C526E00180080 /* srp.h */,
-				CCC8890E1E4C526E00180080 /* srtp.h */,
-				CCC8890F1E4C526E00180080 /* ssl.h */,
-				CCC889101E4C526E00180080 /* ssl2.h */,
-				CCC889111E4C526E00180080 /* ssl23.h */,
-				CCC889121E4C526E00180080 /* ssl3.h */,
-				CCC889131E4C526E00180080 /* stack.h */,
-				CCC889141E4C526E00180080 /* symhacks.h */,
-				CCC889151E4C526E00180080 /* tls1.h */,
-				CCC889161E4C526E00180080 /* ts.h */,
-				CCC889171E4C526E00180080 /* txt_db.h */,
-				CCC889181E4C526E00180080 /* ui.h */,
-				CCC889191E4C526E00180080 /* ui_compat.h */,
-				CCC8891A1E4C526E00180080 /* whrlpool.h */,
-				CCC8891B1E4C526E00180080 /* x509.h */,
-				CCC8891C1E4C526E00180080 /* x509_vfy.h */,
-				CCC8891D1E4C526E00180080 /* x509v3.h */,
-			);
-			path = openssl;
-			sourceTree = "<group>";
-		};
-		CCC889201E4C526E00180080 /* RSA */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = RSA;
-			sourceTree = "<group>";
-		};
-		CCC889211E4C526E00180080 /* Util */ = {
-			isa = PBXGroup;
-			children = (
-				CCC889221E4C526E00180080 /* base64.h */,
-				CCC889231E4C526E00180080 /* base64.m */,
-				CCC889241E4C526E00180080 /* config.h */,
-				CCC889251E4C526E00180080 /* DataSigner.h */,
-				CCC889261E4C526E00180080 /* DataSigner.m */,
-				CCC889271E4C526E00180080 /* DataVerifier.h */,
-				CCC889281E4C526E00180080 /* DataVerifier.m */,
-				CCC889291E4C526E00180080 /* libcrypto.a */,
-				CCC8892A1E4C526E00180080 /* libssl.a */,
-				CCC8892B1E4C526E00180080 /* MD5DataSigner.h */,
-				CCC8892C1E4C526E00180080 /* MD5DataSigner.m */,
-				CCC8892D1E4C526E00180080 /* NSDataEx.h */,
-				CCC8892E1E4C526E00180080 /* NSDataEx.m */,
-				CCC8892F1E4C526E00180080 /* openssl_wrapper.h */,
-				CCC889301E4C526E00180080 /* openssl_wrapper.m */,
-				CCC889311E4C526E00180080 /* RSADataSigner.h */,
-				CCC889321E4C526E00180080 /* RSADataSigner.m */,
-				CCC889331E4C526E00180080 /* RSADataVerifier.h */,
-				CCC889341E4C526E00180080 /* RSADataVerifier.m */,
-			);
-			path = Util;
-			sourceTree = "<group>";
-		};
 		CCC889351E4C526E00180080 /* amr_wav */ = {
 			isa = PBXGroup;
 			children = (
@@ -9844,6 +9820,7 @@
 				63E1E9991F44291B004548C5 /* tranAudio@3x.png in Resources */,
 				CC3017501951BABF0059BADA /* f089.png in Resources */,
 				CCC88B611E4C526E00180080 /* recorder_trash_can1.png in Resources */,
+				4C79748B24CAB6510094A632 /* AlipaySDK.bundle in Resources */,
 				CC3016F81951BABF0059BADA /* f045.png in Resources */,
 				9D932146249863A7007E1D9D /* LICENSE.txt in Resources */,
 				0F5C92B41E4DA5CB005C31C2 /* im_video_button_normal@3x.png in Resources */,
@@ -9966,7 +9943,6 @@
 				63E1E9A41F442927004548C5 /* accept@2x.png in Resources */,
 				18ABD6901D07FDAE000F43FC /* avatar_normal@2x.png in Resources */,
 				CC30173E1951BABF0059BADA /* f080.png in Resources */,
-				631D054921EDCC9700C0AFB5 /* AlipaySDK.bundle in Resources */,
 				CC3017171951BABF0059BADA /* f060@2x.png in Resources */,
 				18C732CC1D76E2B600013F20 /* JXRPacketListCell.xib in Resources */,
 				4C0E06AE24B47D9A008A3DDC /* dragon_19.png in Resources */,
@@ -10424,7 +10400,6 @@
 				B10693FF2458156F00C32A5A /* DSHPopupContainer.m in Sources */,
 				63DD4F5821314DB800DC45F8 /* RITLUtility.m in Sources */,
 				0FB2081E20C54C6F009AD1ED /* JXBlackFriendVC.m in Sources */,
-				CCC88B5C1E4C526E00180080 /* RSADataVerifier.m in Sources */,
 				0FA2D69B1FB05CCD00D51BB9 /* GPUImageTransformFilter.m in Sources */,
 				63F4E43921C0AE7800C61204 /* KKCutTool.m in Sources */,
 				B18B23DA242D91DE007E08F8 /* CYGroupSendHelperViewController.m in Sources */,
@@ -10447,7 +10422,6 @@
 				633976291F0E103A008AB1BF /* JXShareFileTableViewCell.m in Sources */,
 				9D1C52992490853100B1030D /* JXActiveDetial2Vc.m in Sources */,
 				638F956E21410D0300FABA6F /* JXMenuView.m in Sources */,
-				CCC88B541E4C526E00180080 /* DataSigner.m in Sources */,
 				9D517558246EEC3200F96091 /* JXMyAwardRecordVc.m in Sources */,
 				630617F11FBD4C4100BFC616 /* SPAlertController.m in Sources */,
 				634669191EC405F700BE6112 /* RATreeNodeController.m in Sources */,
@@ -10468,6 +10442,7 @@
 				0FA2D5891FB05CCC00D51BB9 /* GPUImageAverageLuminanceThresholdFilter.m in Sources */,
 				63DD4F3F21314DB800DC45F8 /* UIButton+RITLKit.m in Sources */,
 				63F4E44A21C0AE7800C61204 /* KKScaleButton.m in Sources */,
+				4C79748924CAB6510094A632 /* DataVerifier.m in Sources */,
 				B1DE175D241F4F620081AE8A /* JLFacePackgeDetailViewHeader.m in Sources */,
 				6353D3F22182B70400CFBEA7 /* roomData.m in Sources */,
 				CC6E16A519794B5A006ADA8A /* QBImagePickerVideoInfoView.m in Sources */,
@@ -10509,6 +10484,7 @@
 				0FA2D58D1FB05CCC00D51BB9 /* GPUImageBoxBlurFilter.m in Sources */,
 				18CCF5481DAB9C6E00ED20F7 /* JXRedPacketCell.m in Sources */,
 				B18B23D6242D91DE007E08F8 /* CYSelFriendyListView.m in Sources */,
+				4C79748024CAB6510094A632 /* Order.m in Sources */,
 				63DD4F4021314DB800DC45F8 /* UISearchBar+RITLCustomColor.m in Sources */,
 				B1DE17A32420B3F70081AE8A /* JXEmojiCell.m in Sources */,
 				B1DE178D241F51E00081AE8A /* MJExtensionConst.m in Sources */,
@@ -10538,6 +10514,7 @@
 				0F30AA8820B2ADDB001CC39C /* JXSetChatTextFontVC.m in Sources */,
 				0FA2D6BB1FB05CCD00D51BB9 /* GPUImagePicture+TextureSubimage.m in Sources */,
 				0FA2D60D1FB05CCC00D51BB9 /* GPUImageLinearBurnBlendFilter.m in Sources */,
+				4C79748A24CAB6510094A632 /* RSADataSigner.m in Sources */,
 				205D03351EA1AEA000ABC959 /* JXMyTools.m in Sources */,
 				CCC88B951E4C526F00180080 /* QBPlasticPopupMenu.m in Sources */,
 				CC3016901951BABF0059BADA /* JastorRuntimeHelper.m in Sources */,
@@ -10570,7 +10547,6 @@
 				9D52CC33245AB51B00009803 /* JXQuestionTableViewCell.m in Sources */,
 				9D52CC35245AB51B00009803 /* JXApplyTableViewCell.m in Sources */,
 				9D52CBA4245A832B00009803 /* Reachability.m in Sources */,
-				CCC88B591E4C526E00180080 /* NSDataEx.m in Sources */,
 				63DD4F2521314DB800DC45F8 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */,
 				0FA2D6491FB05CCD00D51BB9 /* GPUImagePixellatePositionFilter.m in Sources */,
 				63F4E44721C0AE7800C61204 /* KKToolBarItem.m in Sources */,
@@ -10675,6 +10651,7 @@
 				63DD4F7521314DB800DC45F8 /* PHPhotoLibrary+RITLPhotoStore.m in Sources */,
 				0FA2D6471FB05CCC00D51BB9 /* GPUImagePixellateFilter.m in Sources */,
 				B18B72B22418BFE200FA2BCE /* SVRadialGradientLayer.m in Sources */,
+				4C79748224CAB6510094A632 /* openssl_wrapper.m in Sources */,
 				18CCF5251DAB9A5A00ED20F7 /* JXMessageCell.m in Sources */,
 				9DF936B4248E0B5A00F996A9 /* JXCustomerChatListVc.m in Sources */,
 				0FA2D6091FB05CCC00D51BB9 /* GPUImageLevelsFilter.m in Sources */,
@@ -10717,8 +10694,6 @@
 				B1C883CD24A66836000BC2B4 /* CYWebViewProgressView.m in Sources */,
 				88449D39231D402B00EE08BB /* JXSelectCoverVC.m in Sources */,
 				0F5A70C41FCD07EA00547904 /* UIActivityIndicatorView+AFNetworking.m in Sources */,
-				CCC88B5A1E4C526E00180080 /* openssl_wrapper.m in Sources */,
-				CCC88B531E4C526E00180080 /* base64.m in Sources */,
 				B1000AA42421C316009557A8 /* XHLaunchAdCache.m in Sources */,
 				634212881F42EE2500786541 /* JXCustomButton.m in Sources */,
 				9D1C52CD2491BCD300B1030D /* MJPhotoBrowser.m in Sources */,
@@ -10749,8 +10724,8 @@
 				880ADA7B1F6F7B50009C920C /* acceptCallViewController.m in Sources */,
 				9D52CBA7245A832B00009803 /* UIColor+XQColor.m in Sources */,
 				B1F4F7BA245A78570061EF64 /* MISFloatingBall.m in Sources */,
+				4C79748324CAB6510094A632 /* MD5DataSigner.m in Sources */,
 				CC8FCA631E4B01CE0058686C /* JXOpenRedPacketVC.m in Sources */,
-				CCC88B5B1E4C526E00180080 /* RSADataSigner.m in Sources */,
 				0FA2D5B71FB05CCC00D51BB9 /* GPUImageDilationFilter.m in Sources */,
 				CC875A4519361892007D2DA1 /* versionManage.m in Sources */,
 				B106940D245815D000C32A5A /* NodeCollectionView.m in Sources */,
@@ -10872,7 +10847,6 @@
 				CC875A4119361892007D2DA1 /* JXConnection.m in Sources */,
 				63DD4F2E21314DB800DC45F8 /* MASViewAttribute.m in Sources */,
 				9D195A1324A218790079DD51 /* JXALLShowView.m in Sources */,
-				CCC88B581E4C526E00180080 /* MD5DataSigner.m in Sources */,
 				63DD4F7921314DB800DC45F8 /* UIView+RITLFrameChanged.m in Sources */,
 				CC8759D619361892007D2DA1 /* menuImageView.m in Sources */,
 				0FA2D6331FB05CCC00D51BB9 /* GPUImageNobleCornerDetectionFilter.m in Sources */,
@@ -10939,7 +10913,6 @@
 				6386D8E3222912CD0032C650 /* JXTransferCell.m in Sources */,
 				9DF01B0F2487F00B0098830A /* JXChatWebView.m in Sources */,
 				CC75F8471E514E620072BD54 /* resumeData.m in Sources */,
-				CCC88B551E4C526E00180080 /* DataVerifier.m in Sources */,
 				63F4E43E21C0AE7800C61204 /* KKEmoticonView.m in Sources */,
 				18CCF52A1DAB9A9C00ED20F7 /* JXImageCell.m in Sources */,
 				0F9E0D031F024D1B00E02FB6 /* JXRelayVC.m in Sources */,
@@ -11015,6 +10988,7 @@
 				CCEBFFF0196EB63800BC2E0E /* ATMProgressLayer.m in Sources */,
 				0F93E7882086E04E00D4591A /* JXSearchUserListVC.m in Sources */,
 				9D93219C2499038B007E1D9D /* JSONValueTransformer.m in Sources */,
+				4C79748524CAB6510094A632 /* NSDataEx.m in Sources */,
 				6393A95A2239EC8C005CE2D6 /* JXAccountBindingVC.m in Sources */,
 				6371C2B62238F6AC00A707A4 /* UIWebView+JXSearchWebView.m in Sources */,
 				0FA2D5E51FB05CCC00D51BB9 /* GPUImageHardLightBlendFilter.m in Sources */,
@@ -11322,9 +11296,9 @@
 				0FA2D6111FB05CCC00D51BB9 /* GPUImageLocalBinaryPatternFilter.m in Sources */,
 				0FA2D6B71FB05CCD00D51BB9 /* GPUImageContext.m in Sources */,
 				0FA2D6151FB05CCC00D51BB9 /* GPUImageLowPassFilter.m in Sources */,
+				4C79748624CAB6510094A632 /* DataSigner.m in Sources */,
 				63DD4F6721314DB800DC45F8 /* PHAssetCollection+RITLPhotos.m in Sources */,
 				0FA2D67F1FB05CCD00D51BB9 /* GPUImageSphereRefractionFilter.m in Sources */,
-				CCC88B521E4C526E00180080 /* Order.m in Sources */,
 				6336AA841E52F11B00F831D8 /* JXCaptureMedia.m in Sources */,
 				CC3017761951BABF0059BADA /* HBHttpImageDownloader.m in Sources */,
 				0FA2D5F51FB05CCC00D51BB9 /* GPUImageHoughTransformLineDetector.m in Sources */,
@@ -11389,6 +11363,7 @@
 				B1000A9E2421C316009557A8 /* XHLaunchAdConst.m in Sources */,
 				63F4E44921C0AE7800C61204 /* UIView+Frame.m in Sources */,
 				0FA2D6411FB05CCC00D51BB9 /* GPUImageParallelCoordinateLineTransformFilter.m in Sources */,
+				4C79748424CAB6510094A632 /* RSADataVerifier.m in Sources */,
 				CC7B36AE1942F9060012DDE4 /* JXTableView.m in Sources */,
 				B132137124334A8600E5BED0 /* UIButton+WebCache.m in Sources */,
 				B132137024334A8600E5BED0 /* UIView+WebCache.m in Sources */,
@@ -11402,6 +11377,7 @@
 				4C61D06F24B9EE710000A2CB /* JXShadeShowView.m in Sources */,
 				0F6D75661FDA404D003CD7A2 /* JXSetChatBackgroundVC.m in Sources */,
 				63DD4F4E21314DB800DC45F8 /* LLSegmentBarConfig.m in Sources */,
+				4C79748824CAB6510094A632 /* base64.m in Sources */,
 				0FA2D6891FB05CCD00D51BB9 /* GPUImageTextureInput.m in Sources */,
 				9DB83A932478D56B00D8D7C0 /* JXMyFeedVc.m in Sources */,
 				CCB8E754194E989700CD71CC /* forgetPwdVC.m in Sources */,
@@ -11795,7 +11771,7 @@
 				);
 				INFOPLIST_FILE = "shiku_im/shiku_im-Info.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
 				LIBRARY_SEARCH_PATHS = (
 					"$(PROJECT_DIR)",
 					"$(PROJECT_DIR)/shiku_im/3rd/alipay/Util",
@@ -11822,7 +11798,7 @@
 					"$(inherited)",
 					"$(PROJECT_DIR)/shiku_im/audioRecorder",
 				);
-				MARKETING_VERSION = 3.0.7;
+				MARKETING_VERSION = 3.0.9;
 				NGN_STACK_HOME = "";
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";
@@ -11887,7 +11863,7 @@
 				);
 				INFOPLIST_FILE = "shiku_im/shiku_im-Info.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
 				LIBRARY_SEARCH_PATHS = (
 					"$(inherited)",
 					$DOUBANGO_LIBS,
@@ -11910,7 +11886,7 @@
 					"$(PROJECT_DIR)/shiku_im/3rd/UMSocial_Sdk_5.2.1/QQ",
 					"$(PROJECT_DIR)/shiku_im/3rd/QQ",
 				);
-				MARKETING_VERSION = 3.0.7;
+				MARKETING_VERSION = 3.0.9;
 				NGN_STACK_HOME = "";
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";

+ 0 - 17
shiku_im.xcodeproj/xcshareddata/xcschemes/shiku_im.xcscheme

@@ -66,23 +66,6 @@
             isEnabled = "YES">
          </EnvironmentVariable>
       </EnvironmentVariables>
-      <AdditionalOptions>
-         <AdditionalOption
-            key = "MallocStackLogging"
-            value = ""
-            isEnabled = "YES">
-         </AdditionalOption>
-         <AdditionalOption
-            key = "PrefersMallocStackLoggingLite"
-            value = ""
-            isEnabled = "YES">
-         </AdditionalOption>
-         <AdditionalOption
-            key = "NSZombieEnabled"
-            value = "YES"
-            isEnabled = "YES">
-         </AdditionalOption>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 1 - 1
shiku_im/3rd/FMDB/FMDatabase.m

@@ -968,7 +968,7 @@
     }
     
     if (closeErrorCode != SQLITE_OK) {
-       // NSLog(@"Unknown error finalizing or resetting statement (%d: %s)", closeErrorCode, sqlite3_errmsg(_db));
+     NSLog(@"Unknown error finalizing or resetting statement (%d: %s)", closeErrorCode, sqlite3_errmsg(_db));
         //NSLog(@"DB Query: %@", sql);
     }
     

+ 10 - 0
shiku_im/AppDelegate.h

@@ -94,3 +94,13 @@
 -(void)endCall;
 
 @end
+
+    //[[UIApplication sharedApplication].keyWindow addSubview:_subWindow];
+    // 监听截屏
+//    [g_notify addObserver:self selector:@selector(getScreenShot:) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
+    
+//    if(isIOS7){
+//        application.statusBarStyle = UIStatusBarStyleDefault;
+//        window.clipsToBounds = YES;
+//        window.frame = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);
+//    }

+ 8 - 15
shiku_im/AppDelegate.mm

@@ -114,20 +114,11 @@ static  BMKMapManager* _baiduMapManager;
     [Bugly startWithAppId:BUGLY_APP_ID];
     
 
-     
+   // [g_default removeObjectForKey:@"refushMsgHistory"];
     
     // 网络监听
     [self networkStatusChange];
 
-    //[[UIApplication sharedApplication].keyWindow addSubview:_subWindow];
-    // 监听截屏
-//    [g_notify addObserver:self selector:@selector(getScreenShot:) name:UIApplicationUserDidTakeScreenshotNotification object:nil];
-    
-//    if(isIOS7){
-//        application.statusBarStyle = UIStatusBarStyleDefault;
-//        window.clipsToBounds = YES;
-//        window.frame = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);
-//    }
     
     _commonService = [[JXCommonService alloc] init];
     jxServer = [[JXServer alloc] init];
@@ -150,8 +141,9 @@ static  BMKMapManager* _baiduMapManager;
      
 //    [NSThread sleepForTimeInterval:0.3];
 
+    
     if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"cylunch"] isEqualToString:@"1"]) {
-           [self showLoginUI];
+          [self showLoginUI];
        }else {
            [self showPageUI];
        }
@@ -249,7 +241,7 @@ static  BMKMapManager* _baiduMapManager;
     [g_default synchronize];
     
     // 实时更新缓存
-    [self setSDWebImageHeader];
+//    [self setSDWebImageHeader];
     
     return YES;
 }
@@ -497,8 +489,8 @@ static  BMKMapManager* _baiduMapManager;
      //  mainVc=[[JXMainViewController alloc]init];
        // XMGTabarVC *tabbarVc=[[XMGTabarVC alloc]init];
 //    }
-     
-    _home = [JXCsHomeVc new];
+      
+    
    
     g_navigation.rootViewController =  [JXCsHomeVc new] ;// ;
     
@@ -1077,8 +1069,9 @@ static  BMKMapManager* _baiduMapManager;
                     [[JXXMPP sharedInstance] login];
                 }
             }
-            
+             
         }else {
+            [g_default removeObjectForKey:@"refushMsgHistoryxxx"];
             [g_xmpp.reconnectTimer invalidate];
             g_xmpp.reconnectTimer = nil;
             g_xmpp.isReconnect = NO;

+ 3 - 4
shiku_im/ClassesNew/MainClass/XMGMainViewController.m

@@ -14,8 +14,7 @@
 #import "JXXMGMyVc.h"
 #import "JXBigReelVc.h"
 #import "JXWellBeingVc.h"
-#import "JXTabMenuView.h"
-#import "JXMsgViewController.h"
+#import "JXTabMenuView.h" 
 #import "JXFriendViewController.h"
 #import "AppDelegate.h"
 #import "JXNewFriendViewController.h"
@@ -74,9 +73,9 @@
     [self initViewControllers];
     self.tabBar.backgroundColor = [UIColor whiteColor];
     
-    NSLog(@"login_%@",g_server.myself.userId);
+    //NSLog(@"login_%@",g_server.myself.userId);
     
-    [g_server getUser:g_server.myself.userId toView:self];
+   // [g_server getUser:g_server.myself.userId toView:self];
 }
 
 - (void)viewDidAppear:(BOOL)animated {

+ 1 - 1
shiku_im/ClassesNew/MainClass/XMGOpenGLNavVc.m

@@ -73,7 +73,7 @@
         [super pushViewController:viewController animated:animated];
         
         
-        NSLog(@"aaaa %zd",self.childViewControllers.count);
+       // NSLog(@"aaaa %zd",self.childViewControllers.count);
     
     }
 -(void)back{ 

+ 1 - 1
shiku_im/ClassesNew/MainClass/YPTabBar.m

@@ -227,7 +227,7 @@
         }
     }
     
-    NSLog(@"itemSelectedBgScrollFollowContent-->%d", self.itemSelectedBgScrollFollowContent);
+   // NSLog(@"itemSelectedBgScrollFollowContent-->%d", self.itemSelectedBgScrollFollowContent);
     if (self.itemSelectedBgScrollFollowContent) {
         // item的选中背景位置会跟随contentView的拖动进行变化
         if (_selectedItemIndex < 0) {

+ 1 - 1
shiku_im/ClassesNew/MainClass/YPTabBarController.m

@@ -146,7 +146,7 @@
     }
     self.tabBar.items = items;
     if (_didViewAppeared) {
-        NSLog(@"asdfasdf");
+      //  NSLog(@"asdfasdf");
         _selectedControllerIndex = -1;
         self.tabBar.selectedItemIndex = 0;
     }

+ 1 - 1
shiku_im/ClassesNew/classes/fuliVc/JXApplyViewController.m

@@ -53,7 +53,7 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
     self.tableView.alpha = 0.0f;    //
-    _dataArr=[NSMutableArray arrayWithObjects:@"dat",@"yuy",@"qian",@"fay",@"fat", nil];
+    _dataArr=[NSMutableArray arrayWithObjects:@"dat",@"yuy",@"qian",@"fay",@"fat",@"damaa",@"damaa", nil];
     [self initNavigationView];
     [self initComponents];
     _dictStatus=[NSDictionary dictionary];

+ 43 - 15
shiku_im/ClassesNew/classes/homeVc/JXCsHomeVc.m

@@ -60,6 +60,11 @@
     
     self.countTipL.hidden=YES;
 }
+- (void)viewDidAppear:(BOOL)animated{
+    [super viewDidAppear:animated];
+    
+    
+}
 - (void)viewDidLoad {
     [super viewDidLoad];
     
@@ -300,6 +305,7 @@
     XMGTitleButton *button = [XMGTitleButton buttonWithType:UIButtonTypeCustom];
     [button setTitle:title forState:UIControlStateNormal];
     [button addTarget:self action:@selector(titleClick:) forControlEvents:UIControlEventTouchUpInside];
+ 
     [self.titlesView addSubview:button];
     self.topButton=button;
  
@@ -344,6 +350,7 @@
     }else{
         int index = (int)[self.titlesView.subviews indexOfObject:button];
         [self.contentView setContentOffset:CGPointMake(index * self.contentView.frame.size.width, self.contentView.contentOffset.y) animated:YES];
+        
     }
 
 }
@@ -367,8 +374,12 @@
 
              vc.strURL=memberAcc;
          }
-    [self setupOneChildViewController:vc];
-    [self setupOneChildViewController:[XMGMainViewController new]];
+        
+     [self addChildViewController:vc]; 
+     [self addChildViewController:[XMGMainViewController new]];
+    return;
+     [self setupOneChildViewController:vc];
+     [self setupOneChildViewController:[XMGMainViewController new]];
 }
 
 - (void)setupOneChildViewController:(UIViewController *)type
@@ -416,17 +427,7 @@
         _refreshButton.hidden = NO;
     }
     
-    
-   if ([_indexGhome isEqualToString:@"1"]) {
-        
-       CYWebAddPointVC  *vc=[CYWebAddPointVC new];
-       
-       vc.view.xmg_y = 0;
-       vc.view.xmg_width = self.contentView.xmg_width;
-       vc.view.xmg_height = self.contentView.xmg_height;
-       vc.view.xmg_x = vc.view.xmg_width * index;
-       [self.contentView addSubview:vc.view];
-   }else{
+  
        
        CYWebAddPointVC *vc = self.childViewControllers[index];
        vc.view.xmg_y = 0;
@@ -435,7 +436,7 @@
        vc.view.xmg_x = vc.view.xmg_width * index;
        [self.contentView addSubview:vc.view];
        
-   }
+    
 }
 
  
@@ -444,17 +445,44 @@
 {
      
      int index = scrollView.contentOffset.x / scrollView.frame.size.width;
+//    NSString *msgStr=[g_default objectForKey:@"refushMsgHistoryxxx"];
+//    if (msgStr.length>0) {
+//
+//    }else{
+//
+//        [g_notify postNotificationName:@"refushMsgHistoryxxx" object:nil];
+//
+//        [g_default setObject:@"refushMsgHistoryxxx" forKey:@"refushMsgHistoryxxx"];
+//        [g_default synchronize];
+//    }
+    
      [self titleClick:self.titlesView.subviews[index]];
      [self switchController:index];
    
     
+  
+    
 }
 
 - (void)scrollViewDidEndScrollingAnimation:(nonnull UIScrollView *)scrollView
 {
      int a=(int)(scrollView.contentOffset.x / scrollView.frame.size.width);
+    
+//    NSString *msgStr=[g_default objectForKey:@"refushMsgHistoryxxx"];
+//    if (msgStr.length>0) {
+//
+//    }else{
+//
+//        [g_notify postNotificationName:@"refushMsgHistoryxxx" object:nil];
+//
+//        [g_default setObject:@"refushMsgHistoryxxx" forKey:@"refushMsgHistoryxxx"];
+//        [g_default synchronize];
+//    }
+    
      [self switchController:a];
-  //  [g_notify postNotificationName:@"closeLong" object:nil userInfo:@{@"aa":[NSString stringWithFormat:@"%d",a]}];
+  //
+    
+    
     
 }
 

+ 1 - 1
shiku_im/ClassesNew/classes/loginmVc/JXMainLoginVc.m

@@ -120,7 +120,7 @@
                 self.title = Localized(@"JX_SMSLogin");
                 self.isGotoBack = YES;
             }
-            [g_server getAppResource:@"0" ToView:self];
+           // [g_server getAppResource:@"0" ToView:self];
             [g_server customerLinkList:self];
             // 获取所有气泡
             [g_server getAllBubbleFontListToView:self];

+ 2 - 2
shiku_im/ClassesNew/classes/loginmVc/JXUUIDModel.m

@@ -28,7 +28,7 @@ NSString * const KEY_UDID_INSTEAD = @"app.jixincc.vip";
 +(NSString *)getDeviceIDInKeychain
 {
     NSString *getUDIDInKeychain = (NSString *)[JXUUIDModel load:KEY_UDID_INSTEAD];
-    NSLog(@"从keychain中获取到的 UDID_INSTEAD %@",getUDIDInKeychain);
+  //  NSLog(@"从keychain中获取到的 UDID_INSTEAD %@",getUDIDInKeychain);
     
     if (!getUDIDInKeychain ||[getUDIDInKeychain isEqualToString:@""]||[getUDIDInKeychain isKindOfClass:[NSNull class]]) {
         CFUUIDRef puuid = CFUUIDCreate( nil );
@@ -40,7 +40,7 @@ NSString * const KEY_UDID_INSTEAD = @"app.jixincc.vip";
         [JXUUIDModel save:KEY_UDID_INSTEAD data:result];
         getUDIDInKeychain = (NSString *)[JXUUIDModel load:KEY_UDID_INSTEAD];
     }
-    NSLog(@"最终 ———— UDID_INSTEAD %@",getUDIDInKeychain);
+  //  NSLog(@"最终 ———— UDID_INSTEAD %@",getUDIDInKeychain);
     return getUDIDInKeychain;
 }
 

+ 18 - 1
shiku_im/ClassesNew/classes/messageVc/JXGroupViewController.m

@@ -745,6 +745,13 @@
             [tempArray addObject:user];
         }
         
+
+        _currentGroupArray = tempArray;
+
+        _refreshCount++;
+        [_table reloadData];
+        
+        return;
         if (_selMenu == 0) {
             if (array1.count > 0) {
                 [self getServerData];
@@ -906,16 +913,26 @@
     }
     
 }
+
+#pragma mark ------ 加载所以群
 -(void)getServerData{
     self.isShowFooterPull = _selMenu == 1;
     if(_selMenu==1){
         
         [g_server listRoom:_page roomName:nil toView:self];
         self.isShowFooterPull = YES;
+
     }
     else{
+        
+        [g_server listHisRoom:_page pageSize:1000 toView:self];
+        _searchfield.text = @"";
+        
+        [self.tableView reloadData];
+        
         self.isShowFooterPull = NO;
-
+        
+        return;
         _myGroupArray = [[JXUserObject sharedInstance] fetchAllRoomsFromLocal];
         [_currentGroupArray removeAllObjects];
         _currentGroupArray = [[NSMutableArray alloc]initWithArray:_myGroupArray] ;

+ 74 - 0
shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.h

@@ -117,3 +117,77 @@
           
    }
    */
+
+//- (void)getLastChatList {
+//
+//    BOOL isFirstSync = [g_default boolForKey:kISFirstGetLastChatList];
+//
+//    long long syncTimeLen;
+//
+//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+//
+//
+//        [self.header endRefreshing];
+//    });
+//
+//    if (!isFirstSync) {
+////        if ([g_myself.chatSyncTimeLen longLongValue] > [g_myself.groupChatSyncTimeLen longLongValue]) {
+//            syncTimeLen = [g_myself.chatSyncTimeLen longLongValue];
+////        }else {
+////            syncTimeLen = [g_myself.groupChatSyncTimeLen longLongValue];
+////        }
+//
+//        double m = syncTimeLen * 24 * 3600 * 1000;
+//        syncTimeLen = [[NSDate date] timeIntervalSince1970] * 1000.0 - m;
+//
+//        if ([g_myself.chatSyncTimeLen longLongValue] == 0 || [g_myself.chatSyncTimeLen longLongValue] == -1) {
+//            syncTimeLen = 0;
+//        }
+//
+//
+//    }else {
+//        syncTimeLen = g_server.lastOfflineTime * 1000.0;
+//    }
+//
+//    NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
+//    _array=p;
+//    [_table reloadData];
+//
+////    if ([g_myself.chatSyncTimeLen longLongValue] == -2) {
+////
+////        [g_xmpp.roomPool createAll];
+//
+////    }else {//修改了 去掉最后一条消息
+////        [g_server getLastChatListStartTime:@1592203493000 toView:self];
+//        [g_server getLastChatListStartTime:[NSNumber numberWithLong:syncTimeLen] toView:self];
+//        [self getAllChatList];
+////    }
+//
+//}
+
+
+//viewdidapper
+
+//    NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
+//
+//    [_array addObjectsFromArray:p];
+//    [_table reloadData];
+    
+//    [UIView animateWithDuration:0.4 animations:^{
+//        self.view.frame = CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT);
+//    }];_reciveNewMessage
+ 
+//    [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
+//        _reciveNewMessage2222=0;
+//        NSLog(@".message.isGroup %d",obj.message.isGroup);
+//
+//        JXMessageObject *msgUse=obj.message;
+//        long time = (long)[[NSDate date] timeIntervalSince1970];
+//        time = (time *1000 + g_server.timeDifference);
+//        NSString *salt = [NSString stringWithFormat:@"%ld", time];
+////         [g_server Useract_getGroupOneType:salt jid:msgUse.fromUserId andToView:self];
+//
+//        // [g_server getact_act_act_getGroupListType:salt  andToView:self];
+//
+//
+//    }];

+ 258 - 408
shiku_im/ClassesNew/classes/messageVc/JXMsgViewController.m

@@ -64,7 +64,6 @@
 #import "SaveOrReadArr.h"
 #import "JXProgressVC.h"
 #import "chatListModel.h"
-#import "YPTabBarController.h"
 
 #import "JXShadeShowView.h"
 
@@ -155,80 +154,124 @@
         _isRecordkeFugongzong=0;
         _indexNums=0;
         _isGetLastMsgList = NO;
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-
-             
-                
-//                [g_notify  addObserver:self selector:@selector(newFriend:) name:kXMPPNewFriendNotifaction object:nil];
-                
-//                [g_notify addObserver:self selector:@selector(newRequest:) name:kXMPPNewRequestNotifaction object:nil];
-                [g_notify addObserver:self selector:@selector(showAD) name:kLaunchAdShowFinishNotifaction object:nil];
-                [g_notify  addObserver:self selector:@selector(allMsgCome) name:kXMPPAllMsgNotifaction object:nil];//收到了所有消息,一次性刷新
-                [g_notify  addObserver:self selector:@selector(newMsgCome:) name:kXMPPNewMsgNotifaction object:nil];//收到了一条新消息
-                [g_notify  addObserver:self selector:@selector(newMsgSend:) name:kXMPPMyLastSendNotifaction object:nil];//发送了一条消息
-                [g_notify addObserver:self selector:@selector(newRequest:) name:kXMPPNewRequestNotifaction object:nil];//收到了一个好友验证类消息
-                [g_notify addObserver:self selector:@selector(onLoginChanged:) name:kXmppLoginNotifaction object:nil];//登录状态变化了
-                [g_notify addObserver:self selector:@selector(delFriend:) name:kDeleteUserNotifaction object:nil];//删除了一个好友
-                [g_notify addObserver:self selector:@selector(onReceiveRoomRemind:) name:kXMPPRoomNotifaction object:nil];//收到了群控制消息
-                [g_notify addObserver:self selector:@selector(onQuitRoom:) name:kQuitRoomNotifaction object:nil];//退出了房间
-                // 清除全部聊天记录
-                [g_notify addObserver:self selector:@selector(delAllChatLogNotifi:) name:kDeleteAllChatLog object:nil];
-                [g_notify addObserver:self selector:@selector(chatViewDisappear:) name:kChatViewDisappear object:nil];
-                [g_notify addObserver:self selector:@selector(logoutNotifi:) name:kSystemLogoutNotifaction object:nil];
-                // 撤回消息
-                [g_notify addObserver:self selector:@selector(withdrawNotifi:) name:kXMPPMessageWithdrawNotification object:nil];
-                // 更改备注名
-                [g_notify addObserver:self selector:@selector(friendRemarkNotif:) name:kFriendRemark object:nil];
-                // 进入前台
-                [g_notify addObserver:self selector:@selector(appEnterForegroundNotif:) name:kApplicationWillEnterForeground object:nil];
-                [g_notify addObserver:self selector:@selector(friendPassNotif:) name:kFriendPassNotif object:nil];
-                [g_notify addObserver:self selector:@selector(getServerData) name:kOfflineOperationUpdateUserSet object:nil];
-                [g_notify addObserver:self selector:@selector(updateRoomHead:) name:@"updateRoomHead" object:nil];
-                
-                [g_notify addObserver:self selector:@selector(closeShow) name:@"closeShowxxx" object:nil];
-            
-        });
-        
-        
-        
-         [g_server customerLinkList:self];
-        [self setupCustomerLinkList];
-        // 加载所有群
-        [self getLastChatList];
-        [self getFriend];
-        [self getMembershipAccount_ID];
-        upOrDown = 0;
-        
-        
+       // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+         //  [g_notify  addObserver:self selector:@selector(newFriend:) name:kXMPPNewFriendNotifaction object:nil];
+            
+           [g_notify addObserver:self selector:@selector(newRequest:) name:kXMPPNewRequestNotifaction object:nil];
+            [g_notify addObserver:self selector:@selector(showAD) name:kLaunchAdShowFinishNotifaction object:nil];
+            [g_notify  addObserver:self selector:@selector(allMsgCome) name:kXMPPAllMsgNotifaction object:nil];//收到了所有消息,一次性刷新
+            [g_notify  addObserver:self selector:@selector(newMsgCome:) name:kXMPPNewMsgNotifaction object:nil];//收到了一条新消息
+            [g_notify  addObserver:self selector:@selector(newMsgSend:) name:kXMPPMyLastSendNotifaction object:nil];//发送了一条消息
+            [g_notify addObserver:self selector:@selector(newRequest:) name:kXMPPNewRequestNotifaction object:nil];//收到了一个好友验证类消息
+            [g_notify addObserver:self selector:@selector(onLoginChanged:) name:kXmppLoginNotifaction object:nil];//登录状态变化了
+            [g_notify addObserver:self selector:@selector(delFriend:) name:kDeleteUserNotifaction object:nil];//删除了一个好友
+            [g_notify addObserver:self selector:@selector(onReceiveRoomRemind:) name:kXMPPRoomNotifaction object:nil];//收到了群控制消息
+            [g_notify addObserver:self selector:@selector(onQuitRoom:) name:kQuitRoomNotifaction object:nil];//退出了房间
+            // 清除全部聊天记录
+            [g_notify addObserver:self selector:@selector(delAllChatLogNotifi:) name:kDeleteAllChatLog object:nil];
+            [g_notify addObserver:self selector:@selector(chatViewDisappear:) name:kChatViewDisappear object:nil];
+            [g_notify addObserver:self selector:@selector(logoutNotifi:) name:kSystemLogoutNotifaction object:nil];
+            // 撤回消息
+            [g_notify addObserver:self selector:@selector(withdrawNotifi:) name:kXMPPMessageWithdrawNotification object:nil];
+            // 更改备注名
+            [g_notify addObserver:self selector:@selector(friendRemarkNotif:) name:kFriendRemark object:nil];
+            // 进入前台
+            [g_notify addObserver:self selector:@selector(appEnterForegroundNotif:) name:kApplicationWillEnterForeground object:nil];
+            [g_notify addObserver:self selector:@selector(friendPassNotif:) name:kFriendPassNotif object:nil];
+            [g_notify addObserver:self selector:@selector(getServerData) name:kOfflineOperationUpdateUserSet object:nil];
+            [g_notify addObserver:self selector:@selector(updateRoomHead:) name:@"updateRoomHead" object:nil];
+            
+            [g_notify addObserver:self selector:@selector(closeShow) name:@"closeShowxxx" object:nil];
+            
+       // });
+
+        [g_server getUser:MY_USER_ID toView:self];
+     
         if (JX_SCREEN_HEIGHT>=812) {
-             _table.frame=CGRectMake(0, 70, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-70);
+            _table.frame=CGRectMake(0, 70, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-70);
         }else if (JX_SCREEN_WIDTH>=414 && JX_SCREEN_HEIGHT<812){
-
+            
             _table.frame=CGRectMake(0, 70, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-JX_SCREEN_BOTTOM-20);
             
         }else{
-
+            
             _table.frame=CGRectMake(0, 70, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-70);
         }
-         
-       // _table.frame =CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-(JX_SCREEN_HEIGHT>=812?88:64)-JX_SCREEN_BOTTOM);
-       
         
+        // _table.frame =CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-(JX_SCREEN_HEIGHT>=812?88:64)-JX_SCREEN_BOTTOM);
+            //[g_server customerLinkList:self];
+             //[self setupCustomerLinkList];
+             // 加载所有群
+      
+             
+        NSLog(@"-----msgcon ");
+    }
+    return self;
+}
+ 
+- (void)getFriend{
+     [g_server listAttention:50 userId:MY_USER_ID toView:self];
+   // [g_server listFriend:0 userId:MY_USER_ID toView:self];
+ }
 
+//获取所有的群
+- (void)getAllChatList {
+//    [g_server listRoom:_page roomName:nil toView:self];
+    [g_server listHisRoom:_page pageSize:1000 toView:self];
+}
+ 
+//获取所有的料天信息列表
+- (void)getLastChatList {
+    
+    BOOL isFirstSync = [g_default boolForKey:kISFirstGetLastChatList];
+    
+    long long syncTimeLen;
+    
+    
+    if (!isFirstSync) {
+        //if ([g_myself.chatSyncTimeLen longLongValue] > [g_myself.groupChatSyncTimeLen longLongValue]) {
+            syncTimeLen = [g_myself.chatSyncTimeLen longLongValue];
+        //}else {
+            //syncTimeLen = [g_myself.groupChatSyncTimeLen longLongValue];
+        //}
+       syncTimeLen = syncTimeLen * 24 * 3600 * 1000;
+//        syncTimeLen = [[NSDate date] timeIntervalSince1970] * 1000.0 - m;
+        // 同步 永久 syncTime == 0
+        if ([g_myself.chatSyncTimeLen longLongValue] == 0 || [g_myself.chatSyncTimeLen longLongValue] == -1) {
+            syncTimeLen = 0;
+        }
+         [g_default setBool:YES forKey:kISFirstGetLastChatList];
         
+    }else {
+      syncTimeLen = g_server.lastOfflineTime * 1000.0;
+
+      // syncTimeLen =604800000;
+        NSLog(@"最后一次离线时间:%f",g_server.lastOfflineTime);
+    }
+    // 不同步 batchJoinMucChat();
+
+    if ([g_myself.chatSyncTimeLen longLongValue] == -2) {
+ 
+        [g_xmpp.roomPool createAll];
+ 
+    }else {
         
+      
+        [g_server getLastChatListStartTime:[NSNumber numberWithLong:syncTimeLen] toView:self];
+
     }
-    return self;
+    
 }
 
-- (void)getMembershipAccount_ID {
-    [g_server getUser:MY_USER_ID toView:self];
-}
 
+ 
+//刷新数据
+- (void)viewDidAppear:(BOOL)animated{
+    [super viewDidAppear:animated];
 
-- (void)getAllChatList {
-//    [g_server listRoom:_page roomName:nil toView:self];
-    [g_server listHisRoom:_page pageSize:1000 toView:self];
+    
+    [self getTotalNewMsgCount];
+  
 }
 
 //-(void)newRequest:(NSNotification *)notifacation
@@ -284,12 +327,30 @@
     self.view.backgroundColor=kRGBColor250;
     [self customView];
     [self navGuese];
-    [g_notify addObserver:self selector:@selector(onQuitRoom:) name:kQuitRoomNotifaction object:nil];//退出了房间
+    
+
+    [self getLastChatList];
+    NSString *msgStr=[g_default objectForKey:@"refushMsgHistoryxxx"];
+    if (msgStr.length>0) {
+
+    }else{
+        
+       
+        [self getAllChatList];
+        [self getFriend];
+        upOrDown = 0;
+        
+        [g_default setObject:@"refushMsgHistoryxxx" forKey:@"refushMsgHistoryxxx"];
+        [g_default synchronize];
+    }
+    
     [self getServerData];
+    [g_notify addObserver:self selector:@selector(onQuitRoom:) name:kQuitRoomNotifaction object:nil];//退出了房间
+  
    // self.tableView.contentInset=UIEdgeInsetsMake(64, 0, 20, 0);
-   [g_server listAttention:50 userId:MY_USER_ID toView:self];
+  // [g_server listAttention:50 userId:MY_USER_ID toView:self];
 
-   [g_server listHisRoom:_page pageSize:50 toView:self];
+  // [g_server listHisRoom:_page pageSize:50 toView:self];
     
     
     _dataArr=[NSMutableArray array];
@@ -304,36 +365,6 @@
 
  
 
-- (void)viewDidAppear:(BOOL)animated{
-    [super viewDidAppear:animated];
-   
-    [self getTotalNewMsgCount];
-     
-//    NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
-//    
-//    [_array addObjectsFromArray:p];
-//    [_table reloadData];
-    
-//    [UIView animateWithDuration:0.4 animations:^{
-//        self.view.frame = CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT);
-//    }];_reciveNewMessage
- 
-//    [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-//        _reciveNewMessage2222=0;
-//        NSLog(@".message.isGroup %d",obj.message.isGroup);
-//
-//        JXMessageObject *msgUse=obj.message;
-//        long time = (long)[[NSDate date] timeIntervalSince1970];
-//        time = (time *1000 + g_server.timeDifference);
-//        NSString *salt = [NSString stringWithFormat:@"%ld", time];
-////         [g_server Useract_getGroupOneType:salt jid:msgUse.fromUserId andToView:self];
-//
-//        // [g_server getact_act_act_getGroupListType:salt  andToView:self];
-//
-//
-//    }];
-}
-
 - (void)onRelease {
     NSMutableArray *array;
     if (_seekTextField.text.length > 0) {
@@ -391,9 +422,8 @@
     UILabel *titleLb=[[UILabel alloc]init];
     titleLb.frame=CGRectMake(0, CGRectGetMaxY(_seekTextField.frame)+10,self.backView.frame.size.width , 12);
     titleLb.textAlignment=NSTextAlignmentCenter;
-    titleLb.font=[UIFont systemFontOfSize:12 weight:UIFontWeightRegular];
-    NSString *membershipAccount= [[NSUserDefaults standardUserDefaults] objectForKey:@"membershipAccount_ID"];
-    titleLb.text=[NSString stringWithFormat:@"我的即信号:%@",membershipAccount];
+    titleLb.font=[UIFont systemFontOfSize:12 weight:UIFontWeightRegular]; 
+    titleLb.text=[NSString stringWithFormat:@"我的即信号:%@",@"1000020"];
     [self.backView addSubview:titleLb];
     self.titleLb=titleLb;
    
@@ -897,22 +927,6 @@
 }
 -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 {
-    NSMutableArray *temArr=[NSMutableArray array];;
- 
-    [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-        JXMessageObject *userx=obj.message;
-        if ([userx.fromUserId isEqualToString:@"10000"] || [userx.fromUserId isEqualToString:@"10100"] || [userx.fromUserId isEqualToString:@"10000006"]||[userx.fromUserId isEqualToString:@"10000009"]) {
-            // [temArr insertObject:obj atIndex:0];
-             [_array removeObjectAtIndex:idx];
-        }else{
-
-            [temArr addObject:obj];
-        }
-
-    }];
-
-
-     _array=temArr;
     
     return 1;
 }
@@ -983,7 +997,7 @@
   
       
   
-    cell.chujiIMG.image=[UIImage imageNamed:dict.user.groupType];
+    cell.chujiIMG.image=[UIImage imageNamed:dict.user.groupType.length>0?dict.user.groupType:@"tabar_aIcon"];
    
   
      
@@ -1064,7 +1078,7 @@
         cell.lbSubTitle.text = lastContet;
     }
     
-    NSLog(@"-------------%@", dict.message.type);
+    //NSLog(@"-------------%@", dict.message.type);
     
     [cell.timeLabel setText:cell.bottomTitle];
     cell.bageNumber.delegate = cell.delegate;
@@ -1089,11 +1103,12 @@
     
     
     
-   // [self doAutoScroll:indexPath];
-    //    cell.selectionStyle = UITableViewCellSelectionStyleNone;
+    [self doAutoScroll:indexPath];
+     cell.selectionStyle = UITableViewCellSelectionStyleNone;
     
     if (dict.user.topTime) {
-        //cell.contentView.backgroundColor = HEXCOLOR(0xF0F1F2);
+      //  cell.contentView.backgroundColor = [UIColor whiteColor];
+        // cell.contentView.backgroundColor = HEXCOLOR(0xF0F1F2);
     }else {
         cell.contentView.backgroundColor = [UIColor whiteColor];
     }
@@ -1121,10 +1136,6 @@
     
 }
  
-- (void)getFriend{
-    [g_server listAttention:10000 userId:MY_USER_ID toView:self];
-//    [g_server listFriend:0 userId:MY_USER_ID toView:self];
-}
 
 
 #pragma mark  接受新消息广播
@@ -1139,7 +1150,8 @@
     NSNumber *bodyType = msg.type;
     
     if (bodyType.intValue == kRoomRemind_DelMember || bodyType.intValue == kRoomRemind_AddMember) { //|| bodyType.intValue == 1 
-        [self getFriend];
+       
+       [self getFriend];
     }
     
     if ([msg.fromUserId isEqualToString:@"10000"]) {
@@ -1423,7 +1435,7 @@
          
         [self getFriend];
     }
-   
+    friend = nil;
 }
 #pragma --------------------新来的消息Badge计算---------------
 -(void)doRefresh:(JXMessageObject*)msg showNumber:(BOOL)showNumber{
@@ -1581,44 +1593,46 @@
     }
     //访问DB获取好友消息列表
     NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
-     
-    // 查出置顶个数
-//    for (NSInteger i = 0; i < p.count; i ++) {
-//        JXMsgAndUserObject * obj = (JXMsgAndUserObject*) [p objectAtIndex:i];
-//
-//        if (obj.user.topTime) {
-//            _topNum ++;
-//        }
-//    }
+
     
-    //    if (p.count>0 || _page == 0) {
-    if (p.count>0) {
-        
-        
+    if (p.count>0) { 
         [_array addObjectsFromArray:p];
-        
+        NSMutableArray *tempArray=[NSMutableArray arrayWithCapacity:0];
+        [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  * obj, NSUInteger idx, BOOL * _Nonnull stop) {
+            JXMessageObject *userx=obj.message;
+            if ([obj.user.groupStatus intValue]==2||[obj.user.groupStatus intValue]==1||[userx.fromUserId isEqualToString:@"10000"] || [userx.fromUserId isEqualToString:@"10100"] || [userx.fromUserId isEqualToString:@"10000006"]||[userx.fromUserId isEqualToString:@"10000009"] || [obj.message.timeSend timeIntervalSince1970]>[[NSDate date] timeIntervalSince1970]) {
+
+               
+            }else{
+                
+                [tempArray addObject:obj];
+            }
+            
+        }];
+          
+        _array = tempArray;
         
         //让数组按时间排序
         [self sortArrayWithTime];
         [_table hideEmptyImage];
         [_table reloadData];
         self.isShowFooterPull = NO;
-    }
-    
-    if (_array.count <=0) {
+    }else{
+         
         [_table showEmptyImage:EmptyTypeNoData];
         [_table reloadData];
     }
     
-    [self getTotalNewMsgCount];
+     
+    
+//    [self getTotalNewMsgCount];
     
-    [p removeAllObjects];
+    //[p removeAllObjects];
     
       
     
 }
-
-
+ 
 
 //数据(CELL)按时间顺序重新排列
 - (void)sortArrayWithTime{
@@ -1633,7 +1647,7 @@
 //            NSLog(@"a = %d",[dicta.user.msgsNew intValue]);
             JXMsgAndUserObject * dictb = (JXMsgAndUserObject*) [_array objectAtIndex:j];
             NSDate * b = dictb.message.timeSend ;
-            //                NSLog(@"b = %d",b);
+            //    NSLog(@"b = %d",b);
             
             if ([[a laterDate:b] isEqualToDate:b])
             {
@@ -1947,7 +1961,7 @@
         case login_status_yes:{
            // self.title = Localized(@"JXMsgViewController_OnLine");
             // 同步最近一条聊天记录
-            [self getLastChatList];
+          // [self getLastChatList];
             //[_activity stopAnimating];
         }
 
@@ -1956,101 +1970,6 @@
 }
 
 
-- (void)getLastChatList {
-    
-    BOOL isFirstSync = [g_default boolForKey:kISFirstGetLastChatList];
-    
-    long long syncTimeLen;
-    
-    
-    if (!isFirstSync) {
-//        if ([g_myself.chatSyncTimeLen longLongValue] > [g_myself.groupChatSyncTimeLen longLongValue]) {
-            syncTimeLen = [g_myself.chatSyncTimeLen longLongValue];
-//        }else {
-//            syncTimeLen = [g_myself.groupChatSyncTimeLen longLongValue];
-//        }
-        
-       syncTimeLen = syncTimeLen * 24 * 3600 * 1000;
-//        syncTimeLen = [[NSDate date] timeIntervalSince1970] * 1000.0 - m;
-        // 同步 永久 syncTime == 0
-
-        if ([g_myself.chatSyncTimeLen longLongValue] == 0 || [g_myself.chatSyncTimeLen longLongValue] == -1) {
-            syncTimeLen = 0;
-            
-            
-            
-        }
-        
-//        [g_default setBool:YES forKey:kISFirstGetLastChatList];
-        
-    }else {
-      syncTimeLen = g_server.lastOfflineTime * 1000.0;
-
-      // syncTimeLen =604800000;
-        NSLog(@"最后一次离线时间:%f",g_server.lastOfflineTime);
-    }
-    // 不同步 batchJoinMucChat();
-
-    if ([g_myself.chatSyncTimeLen longLongValue] == -2) { 
- 
-        [g_xmpp.roomPool createAll];
- 
-    }else {
-        
-      
-        [g_server getLastChatListStartTime:[NSNumber numberWithLong:syncTimeLen] toView:self];
-
-    }
-    
-}
-
-//- (void)getLastChatList {
-//
-//    BOOL isFirstSync = [g_default boolForKey:kISFirstGetLastChatList];
-//
-//    long long syncTimeLen;
-//
-//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-//
-//
-//        [self.header endRefreshing];
-//    });
-//
-//    if (!isFirstSync) {
-////        if ([g_myself.chatSyncTimeLen longLongValue] > [g_myself.groupChatSyncTimeLen longLongValue]) {
-//            syncTimeLen = [g_myself.chatSyncTimeLen longLongValue];
-////        }else {
-////            syncTimeLen = [g_myself.groupChatSyncTimeLen longLongValue];
-////        }
-//
-//        double m = syncTimeLen * 24 * 3600 * 1000;
-//        syncTimeLen = [[NSDate date] timeIntervalSince1970] * 1000.0 - m;
-//
-//        if ([g_myself.chatSyncTimeLen longLongValue] == 0 || [g_myself.chatSyncTimeLen longLongValue] == -1) {
-//            syncTimeLen = 0;
-//        }
-//
-//
-//    }else {
-//        syncTimeLen = g_server.lastOfflineTime * 1000.0;
-//    }
-//
-//    NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
-//    _array=p;
-//    [_table reloadData];
-//
-////    if ([g_myself.chatSyncTimeLen longLongValue] == -2) {
-////
-////        [g_xmpp.roomPool createAll];
-//
-////    }else {//修改了 去掉最后一条消息
-////        [g_server getLastChatListStartTime:@1592203493000 toView:self];
-//        [g_server getLastChatListStartTime:[NSNumber numberWithLong:syncTimeLen] toView:self];
-//        [self getAllChatList];
-////    }
-//
-//}
-
 //对选中的Cell根据editingStyle进行操作
 - (void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
 {
@@ -2498,9 +2417,7 @@
         NSString *gradeIndexcc= dict[@"gradeIndex"];
         [[NSUserDefaults standardUserDefaults] setObject:gradeIndexcc forKey:@"gradeIndexcc"];
         [[NSUserDefaults standardUserDefaults] synchronize];
-        
-         NSString *membershipAccount = [[NSUserDefaults standardUserDefaults] objectForKey:@"membershipAccount_ID"];
-         self.titleLb.text = [NSString stringWithFormat:@"我的即信号:%@",memberAcc];
+             self.titleLb.text = [NSString stringWithFormat:@"我的即信号:%@",memberAcc];
     }
     
     //更新本地好友
@@ -2512,94 +2429,17 @@
             pv.dbFriends = (long)[_array count] - 1;
             pv.dataArray = array1;
             pv = [pv init];
-           
-
+            
             //访问DB获取好友消息列表
           //  NSMutableArray* p = [[JXMessageObject sharedInstance] fetchRecentChat];
-            
-            
-            
-    //        [g_window addSubview:pv.view];
-            [self getServerData];
+           //[self getServerData];
+          //  [self getLastChatList];
+ 
         }
     
     
-    if([aDownload.action isEqualToString:act_roomList]){
-        
-    }
-     /*
-    if( [aDownload.action isEqualToString:act_getGroupOneType] ){
-        _indexNums++;
-        [_tempGoundArr addObject:dict];
-        
-        if (_reciveNewMessage2222==100) {
-
-             _dataArrOneOne=_tempGoundArr;
-
-            [[NSUserDefaults standardUserDefaults] setObject:_indexGoundArr forKey:@"groundType"];
-             [[NSUserDefaults standardUserDefaults] synchronize];
-            
-            [_table reloadData];
-        }else{
-            
-            if (_indexNums==_array.count) {
-                _indexGoundArr=_tempGoundArr;
-                
-                [[NSUserDefaults standardUserDefaults] setObject:_indexGoundArr forKey:@"groundType"];
-                [[NSUserDefaults standardUserDefaults] synchronize];
-                
-                [_table reloadData];
-                return;
-            }else{
-                [_indexGoundArr removeAllObjects];
-            }
-        }
- 
-        
-         //[_tempGoundArr removeAllObjects];
-        
-       
-          
-          JXCell* cell = [_table cellForRowAtIndexPath:[NSIndexPath indexPathForRow:_reciveScrollViewIndex inSection:0]];
-          
-          if (dict[@"data"]==nil) {
-
-               cell.chujiIMG.image=[UIImage imageNamed:dict[@"typeName"]];
-          }else{
-
-             // cell.chujiIMG.image=[UIImage imageNamed:@""];
-          }
-        [_array enumerateObjectsUsingBlock:^(JXMsgAndUserObject  *_Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
-
-            JXCell* cell = [_table cellForRowAtIndexPath:[NSIndexPath indexPathForRow:idx inSection:1]];
-            
-            if (dict[@"data"]==nil) {
-
-                 cell.chujiIMG.image=[UIImage imageNamed:@""];
-            }else{
-                
-                if ([dict[@"data"][@"typeName"] isEqualToString:@"普通群"]) {
-                    cell.chujiIMG.image=[UIImage imageNamed:@"msgChuji"];
-                }if ([dict[@"data"][@"typeName"] isEqualToString:@"msgzhongji"]) {
-                    cell.chujiIMG.image=[UIImage imageNamed:@"msgChuji"];
-                     
-                }if ([dict[@"data"][@"typeName"] isEqualToString:@"高级群"]) {
-                    cell.chujiIMG.image=[UIImage imageNamed:@"msgGaoji"];
-                     
-                }if ([dict[@"data"][@"typeName"] isEqualToString:@"特级群"]) {
-                    cell.chujiIMG.image=[UIImage imageNamed:@"msgTeji"];
-                     
-                }
-                
-            }
-            if ([obj.message.fromUserId isEqualToString:@""]) {
-                 
-            }
-            
-        }];
-           
-    }
-    */
+    
+  
     if( [aDownload.action isEqualToString:act_roomAdd] ){
             
         _chatRoom = [[JXXMPP sharedInstance].roomPool createRoom:_room.roomJid title:_room.name];
@@ -2722,6 +2562,7 @@
             
             if (![dict objectForKey:@"member"]) {
                 [g_server showMsg:Localized(@"JX_YouOutOfGroup")];
+                
             }else {
                 int talkTime = [[dict objectForKey:@"talkTime"] intValue];
                 int role = [[(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"role"] intValue];
@@ -2765,7 +2606,9 @@
     if([aDownload.action isEqualToString:act_roomListHis]){
             
         NSMutableArray *listArr = [NSMutableArray array];
-        //            [[JXXMPP sharedInstance].roomPool joinRoom:tempDict[@"jid"] title:tempDict[@"name"] lastDate:nil isNew:NO];
+        //  [[JXXMPP sharedInstance].roomPool joinRoom:tempDict[@"jid"] title:tempDict[@"name"] lastDate:nil isNew:NO];
+        // 如果最近一条信息接口没有获取到,就更新
+     
         /*-------------------*/
         for (int i = 0; i < [array1 count]; i++) {
             NSDictionary *dict=array1[i];
@@ -2789,18 +2632,25 @@
             user.createUserId = [dict objectForKey:@"userId"];
             user.timeCreate = [NSDate dateWithTimeIntervalSince1970:[[dict objectForKey:@"createTime"] longLongValue]];
             user.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
+          /*
             
-            if([[dict allKeys] containsObject:@"groupType"])
-                
-            {
+            if (![dict objectForKey:@"member"]) {
+                user.groupStatus = [NSNumber numberWithInt:1];
+                [user updateGroupInvalid];
+            }
+            if (![dict objectForKey:@"jid"]) {
+               
+                user.groupStatus = [NSNumber numberWithInt:2];
+                [user updateGroupInvalid];
+            }
+           */
+            if([[dict allKeys] containsObject:@"groupType"]) {
                 NSDictionary *dictby=[dict objectForKey:@"groupType"];
                 
                 user.groupType = [dictby objectForKey:@"typeName"];
                 
             }else{
                 user.groupType = @"";
-                
-                
             }
             
             NSDictionary *member = [dict objectForKey:@"member"];
@@ -2828,65 +2678,63 @@
                     [user updateRoomId];
                 }
             }
-            
-            /********************  ****************************/
-            // 如果最近一条信息接口没有获取到,就更新
-            if ([[dict objectForKey:@"jid"] intValue] > 0 && !_isGetLastMsgList) {
-                // 获取最近一条记录
-                NSArray *arr = [[JXMessageObject sharedInstance] fetchMessageListWithUser:[dict objectForKey:@"jid"] byAllNum:0 pageCount:20 startTime:[NSDate dateWithTimeIntervalSince1970:0]];
-                
-                // 去除
-                JXMessageObject *lastMsg = arr.lastObject;
-                if (!lastMsg) {
-                    lastMsg = arr.firstObject;
-                }
-                JXUserObject *user = [[JXUserObject sharedInstance] getUserById:dict[@"jid"]];
-                NSMutableDictionary *taskDic = [NSMutableDictionary dictionary];
-                [taskDic setObject:[dict objectForKey:@"jid"] forKey:@"userId"];
-                [taskDic setObject:[NSDate dateWithTimeIntervalSince1970:[dict[@"timeSend"] longLongValue]] forKey:@"lastTime"];
-                if (lastMsg) {
-                    [taskDic setObject:lastMsg.timeSend forKey:@"startTime"];
-                    if (lastMsg.messageId) {
-                        [taskDic setObject:lastMsg.messageId forKey:@"startMsgId"];
-                    }
-                }
-                if (user.roomId) {
-                    [taskDic setObject:user.roomId forKey:@"roomId"];
-                }
-                if ([g_myself.chatSyncTimeLen longLongValue] != -2) {
-                    
-                    [self createSynTask:taskDic];
-                    
-                    [_taskArray addObject:taskDic];
-                }
-                
-                long value = (long)([lastMsg.timeSend timeIntervalSince1970]*1000);
-                if (!lastMsg) {
-                    // 没有最后一条消息的记录就拉取一周前的数据
-                    value = (long)(g_server.lastOfflineTime*1000)-(7*24*3600*1000);
-                }
-                
-                NSString *listStr = [NSString stringWithFormat:@"%@,%ld",dict[@"jid"],value];
-                [listArr addObject:listStr];
-            }
-                       
-                /********************  ****************************/
+             
             
             //                        [tempArray addObject:user];
-        }
+        } //群头衔的设置
         /*-------------------*/
+    
+        if ([[dict objectForKey:@"jid"] intValue] > 0 && !_isGetLastMsgList) {
+                 // 获取最近一条记录
+                 NSArray *arr = [[JXMessageObject sharedInstance] fetchMessageListWithUser:[dict objectForKey:@"jid"] byAllNum:0 pageCount:20 startTime:[NSDate dateWithTimeIntervalSince1970:0]];
+                 
+                 // 去除
+                 JXMessageObject *lastMsg = arr.lastObject;
+                 if (!lastMsg) {
+                     lastMsg = arr.firstObject;
+                 }
+                 JXUserObject *user = [[JXUserObject sharedInstance] getUserById:dict[@"jid"]];
+                 NSMutableDictionary *taskDic = [NSMutableDictionary dictionary];
+                 [taskDic setObject:[dict objectForKey:@"jid"] forKey:@"userId"];
+                 [taskDic setObject:[NSDate dateWithTimeIntervalSince1970:[dict[@"timeSend"] longLongValue]] forKey:@"lastTime"];
+                 if (lastMsg) {
+                     [taskDic setObject:lastMsg.timeSend forKey:@"startTime"];
+                     if (lastMsg.messageId) {
+                         [taskDic setObject:lastMsg.messageId forKey:@"startMsgId"];
+                     }
+                 }
+                 if (user.roomId) {
+                     [taskDic setObject:user.roomId forKey:@"roomId"];
+                 }
+                 if ([g_myself.chatSyncTimeLen longLongValue] != -2) {
+                     
+                     [self createSynTask:taskDic];
+                     
+                     [_taskArray addObject:taskDic];
+                 }
+                 
+                 long value = (long)([lastMsg.timeSend timeIntervalSince1970]*1000);
+                 if (!lastMsg) {
+                     // 没有最后一条消息的记录就拉取一周前的数据
+                     value = (long)(g_server.lastOfflineTime*1000);//-(7*24*3600*1000);
+                 }
+                 
+                 NSString *listStr = [NSString stringWithFormat:@"%@,%ld",dict[@"jid"],value];
+                 [listArr addObject:listStr];
+             }
         if (listArr.count > 0) {
-            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-                // 如果最近一条信息接口没有获取到,批量拉取消息
-                if (!_isGetLastMsgList) {
-                    [g_xmpp pullBatchGroupMessageReqWithJidListArray:listArr];
-                }
-            });
-        }
-        
-        [_table reloadData];
+                 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+                     // 如果最近一条信息接口没有获取到,批量拉取消息
+                     if (!_isGetLastMsgList) {
+                         [g_xmpp pullBatchGroupMessageReqWithJidListArray:listArr];
+                     }
+                 });
+             }
+      // [_table reloadData];
     }
-
+    
+#pragma mark --- 获取最后个人消息列表 act_tigaseGetLastChatList
+    
     if ([aDownload.action isEqualToString:act_tigaseGetLastChatList]) {
         [self.header endRefreshing];
         _isGetLastMsgList = YES;
@@ -2898,25 +2746,21 @@
             }
         }
         
-        [_taskArray removeAllObjects];
+//        [array1 enumerateObjectsUsingBlock:^(NSDictionary  * obj, NSUInteger idx, BOOL * _Nonnull stop) {
+//             NSLog(@"---- 个人信息列表 xxxxx%@ %@",[obj objectForKey:@"toUserName"] , [obj objectForKey:@"fromUserName"] );
+//        }];
         
+        [_taskArray removeAllObjects];
         NSMutableArray *listArr = [NSMutableArray array];
-        
         // 获取到群组本地最后一条消息
         for (NSInteger i = 0; i < array1.count; i ++) {
             NSDictionary *dict = array1[i];
             if ([[dict objectForKey:@"isRoom"] intValue] == 1) {
                 // 获取最近一条记录
                 NSArray *arr = [[JXMessageObject sharedInstance] fetchMessageListWithUser:[dict objectForKey:@"jid"] byAllNum:0 pageCount:20 startTime:[NSDate dateWithTimeIntervalSince1970:0]];
-                
                 // 去除
-                
-                
                 JXMessageObject *lastMsg = arr.lastObject;
-                
 //                lastMsg.content
-                
-                
 //                for (NSInteger i = arr.count - 1; i > 0; i --) {
 //                    JXMessageObject *firstMsg = arr[i];
 //                    if ([firstMsg.type integerValue] != kWCMessageTypeRemind) {
@@ -2951,7 +2795,7 @@
                 long value = (long)([lastMsg.timeSend timeIntervalSince1970]*1000);
                 if (!lastMsg) {
                     // 没有最后一条消息的记录就拉取一周前的数据
-                    value = (long)(g_server.lastOfflineTime*1000)-(7*24*3600*1000);
+                    value = (long)(g_server.lastOfflineTime*1000);//-(7*24*3600*1000);
                 }
                 
                 NSString *listStr = [NSString stringWithFormat:@"%@,%ld",dict[@"jid"],value];
@@ -2965,9 +2809,9 @@
                 [g_xmpp pullBatchGroupMessageReqWithJidListArray:listArr];
             });
         }
-        [self getAllChatList];
-        [self getFriend];
-//        [g_xmpp.roomPool createAll];
+       // [self getAllChatList];
+      //  [self getFriend];
+      //  [g_xmpp.roomPool createAll];
     }
     
     if ([aDownload.action isEqualToString:act_customerLinkList]) {
@@ -3081,10 +2925,7 @@
         if ([aDownload.action isEqualToString:act_getGroupOneType]) {
             [_table reloadData];
         }
-
-    
-    
-    
+ 
 //    if (![aDownload.action isEqualToString:act_userChangeMsgNum] && ![aDownload.action isEqualToString:act_tigaseGetLastChatList]) {
 //        return show_error;
 //    }
@@ -3094,12 +2935,21 @@
 -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
     [_wait hide];
     [self.header endRefreshing];
-//    if (![aDownload.action isEqualToString:act_userChangeMsgNum] && ![aDownload.action isEqualToString:act_tigaseGetLastChatList]) {
-//        return show_error;
-//    }
-    if ([aDownload.action isEqualToString:act_getGroupOneType]) {
-           [_table reloadData];
-       }
+    /*
+    if (![aDownload.action isEqualToString:act_userChangeMsgNum] && ![aDownload.action isEqualToString:act_tigaseGetLastChatList]) {
+        return show_error;
+    }
+    */
+    if ([aDownload.action isEqualToString:act_tigaseGetLastChatList]) {
+         
+        [self getAllChatList];
+        return show_error;
+    }
+    if ([aDownload.action isEqualToString:act_roomListHis]) {
+         
+        [g_server listHisRoom:_page pageSize:1000 toView:self];
+      
+    }
     return hide_error;
 }
 

+ 2 - 2
shiku_im/ClassesNew/classes/messageVc/JXNewFriendViewController.m

@@ -148,13 +148,13 @@
     
     NSString *userID=textField.text;
 
-       NSLog(@"xxxx1 %@",userID );
+    //   NSLog(@"xxxx1 %@",userID );
        
        [_array enumerateObjectsUsingBlock:^(JXFriendObject  * obj, NSUInteger idx, BOOL * _Nonnull stop) {
            
 
            NSString *userID2=obj.userId;
-           NSLog(@"xxxx %@",userID2 );
+           //NSLog(@"xxxx %@",userID2 );
            if ([userID isEqualToString:obj.userId]) {
 
                 NSLog(@"xxxx %@",obj );

+ 1 - 1
shiku_im/ClassesNew/classes/myVc/Vc/JXAcccountAnQuanVc.m

@@ -183,7 +183,7 @@ typedef NS_ENUM(NSInteger, JXBindAccType) {
 - (void)authRespNotification:(NSNotification *)notif {
     SendAuthResp *response = notif.object;
     NSString *strMsg = [NSString stringWithFormat:@"Auth结果 code:%@,state:%@,errcode:%d", response.code, response.state, response.errCode];
-    NSLog(@"-------%@",strMsg);
+  //  NSLog(@"-------%@",strMsg);
     [g_server getWxOpenId:response.code toView:self];
 }
 // QQ登录成功回调

+ 1 - 0
shiku_im/ClassesNew/classes/myVc/Vc/JXMySettingVc.m

@@ -197,6 +197,7 @@
  */
  - (void)logoutView{
      
+    [g_default removeObjectForKey:@"refushMsgHistoryxxx"];
      
     [g_App showAlert:Localized(@"JXAlert_LoginOut") delegate:self];
 }

+ 1 - 1
shiku_im/ClassesNew/classes/myVc/Vc/JXXiugaiPhoneNumVc.m

@@ -69,7 +69,7 @@
                 UIImage * codeImage = [UIImage imageWithData:data];
                 _imgCode.image = codeImage;
             }else{
-                NSLog(@"%@",connectionError);
+              //  NSLog(@"%@",connectionError);
                 [g_App showAlert:connectionError.localizedDescription];
             }
         }];

+ 1 - 1
shiku_im/ClassesNew/otherLib/UIColor+XQColor/NSObject+Z_propertyCode.m

@@ -22,7 +22,7 @@
         
         NSString *str;
         
-        NSLog(@"%@",[obj class]);
+       // NSLog(@"%@",[obj class]);
         if ([obj isKindOfClass:NSClassFromString(@"__NSCFString")] || [obj isKindOfClass:NSClassFromString(@"NSTaggedPointerString")] || [obj isKindOfClass:NSClassFromString(@"__NSCFConstantString")]) {
             str = [NSString stringWithFormat:@"@property (nonatomic, copy) NSString *%@;",key];
         }

+ 1 - 0
shiku_im/Register&Login/inputPhoneVC.m

@@ -745,6 +745,7 @@
 
 #pragma mark----验证短信验证码
 -(void)onClick{
+    
     if([_phone.text length]<=0){
         [g_App showAlert:Localized(@"JX_InputPhone")];
         return;

+ 5 - 5
shiku_im/Register&Login/loginVC.m

@@ -81,7 +81,7 @@
             self.title = Localized(@"JX_SMSLogin");
             self.isGotoBack = YES;
         }
-        [g_server getAppResource:@"0" ToView:self];
+       // [g_server getAppResource:@"0" ToView:self];
         [g_server customerLinkList:self];
         // 获取所有气泡
         [g_server getAllBubbleFontListToView:self];
@@ -1221,7 +1221,7 @@
 
  
         _vc.hidden=YES;
-            [g_App showMainUI];
+            [g_App showMainUI]; //1
         [self actionQuit];
         
         [_wait stop];
@@ -1237,10 +1237,10 @@
         
 //        [g_default setBool:[[dict objectForKey:@"multipleDevices"] boolValue] forKey:kISMultipleLogin];
 //        [g_default synchronize];
-                [g_server getAppResource:@"2" ToView:self];
+                //[g_server getAppResource:@"2" ToView:self];
         
                 [g_server doLoginOK:dict user:_user];
-                [g_App showMainUI];
+                [g_App showMainUI]; //2
                 [self actionQuit];
 //            }else{
 //                //Token不存在
@@ -1452,7 +1452,7 @@
 -(void)onRegistered:(NSNotification *)notifacation{
     [self actionQuit];
     if(!self.isSwitchUser)
-        [g_App showMainUI];
+        [g_App showMainUI];//3
 }
 
 -(void)actionQuit{

+ 1 - 1
shiku_im/cell/ChatCell/JXBaseChatCell.m

@@ -1258,7 +1258,7 @@ static double g_timeSend=0;
 
  
 -(void)dealloc{
-    NSLog(@"JXBaseChatCell.delloc");
+  //  NSLog(@"JXBaseChatCell.delloc");
 //    [super dealloc];
 //    [_bubbleBg release];
     _bubbleBg = nil;

+ 2 - 0
shiku_im/cell/ChatCell/JXMessageCell.h

@@ -21,6 +21,8 @@ typedef void(^MsgTapBlock)(JXMessageObject *msg);
 
 @property (nonatomic, assign) BOOL isDidMsgCell;
 
+@property (nonatomic, assign) CGFloat kuangHHH;
+
 - (void)deleteMsg:(JXMessageObject *)msg;
 
 @property (nonatomic, assign) BOOL isShareType;

+ 17 - 11
shiku_im/cell/ChatCell/JXMessageCell.m

@@ -6,6 +6,8 @@
 //  Copyright © 2016年 Reese. All rights reserved.
 //
 
+static CGFloat kuangkkHHH;
+
 #import "JXMessageCell.h"
 #import "emojiViewController.h"
 #import "EmojiTextAttachment.h"
@@ -19,6 +21,7 @@
 - (void)awakeFromNib {
     [super awakeFromNib];
 //    self.frame = CGRectMake(0, 0, JX_SCREEN_WIDTH, 55);
+    kuangkkHHH=0;
 }
 
 - (void)dealloc {
@@ -120,7 +123,7 @@
         
         
         
-        NSLog(@"000000%@",self.msg.content);
+//        NSLog(@"000000%@",self.msg.content);
         
         
         _timeIndexLabel.hidden = YES; 
@@ -166,17 +169,18 @@
 }
 -(void)creatBubbleBg{
     CGSize textSize = _messageConent.frame.size;
-    int n = textSize.width;
-    //聊天长度反正就是算错了,强行改
-    if(n){
-//        n -= 10;
+       int n = textSize.width;
+    if ([_messageConent.text containsString:@"--【"]) {
+        kuangkkHHH=50.0;
     }
-    
+   
+    //聊天长度反正就是算错了,强行改
+  
     int inset = 3;
     if(self.msg.isMySend){
-        self.bubbleBg.frame=CGRectMake(CGRectGetMinX(self.headImage.frame)-INSETS*2-inset*2-n-CHAT_WIDTH_ICON, INSETS, n+INSETS*2+inset*2, textSize.height+INSETS*2);
-        self.bubbleBgImageView.frame = CGRectMake(0, 0, n+INSETS*2+inset*2, textSize.height+INSETS*2+INSETS);
-        [_messageConent setFrame:CGRectMake(INSETS*0.4 + 3 +5, 10, n + 5, textSize.height)];
+        self.bubbleBg.frame=CGRectMake(CGRectGetMinX(self.headImage.frame)-INSETS*2-inset*2-n-CHAT_WIDTH_ICON, INSETS,_kuangHHH+ n+INSETS*2+inset*2, textSize.height+INSETS*2);
+        self.bubbleBgImageView.frame = CGRectMake(0, 0,n+INSETS*2+inset*2, textSize.height+INSETS*2+INSETS);
+        [_messageConent setFrame:CGRectMake(INSETS*0.4 + 3 +5, 10,_kuangHHH+ n + 5, textSize.height)];
         
 //        [_messageConent setFrame:CGRectMake(INSETS*0.4 + 3, INSETS, n + 5, textSize.height+50)];
         _timeIndexLabel.frame = CGRectMake(self.bubbleBg.frame.origin.x - 30, self.bubbleBg.frame.origin.y, 20, 20);
@@ -225,7 +229,9 @@
     
     
     if ([msg.chatMsgHeight floatValue] > 1) {
-            return [msg.chatMsgHeight floatValue];
+        CGFloat chatMsgHeight = [msg.chatMsgHeight floatValue]+kuangkkHHH;
+             
+      return chatMsgHeight;
     }
     float n = 0.0;
     JXEmoji *messageConent=[[JXEmoji alloc]initWithFrame:CGRectMake(0, 0, 200, 20)];
@@ -302,7 +308,7 @@
     }
     msg.chatMsgHeight = [NSString stringWithFormat:@"%f",n];
     if ([msg.content containsString:@"===jixinJXBigRellV"]){
-         msg.chatMsgHeight = [NSString stringWithFormat:@"%f",n-20];
+         msg.chatMsgHeight = [NSString stringWithFormat:@"%f",n]; //--20
     }
     if (!msg.isNotUpdateHeight) {
         [msg updateChatMsgHeight];

+ 1 - 1
shiku_im/cell/ChatCell/JXReplyCell.m

@@ -22,7 +22,7 @@
 - (void)dealloc {
     
     [self.readDelTimer invalidate];
-    self.readDelTimer = nil;
+     self.readDelTimer = nil;
 }
 
 -(void)creatUI{

+ 1 - 1
shiku_im/cell/JXCell.m

@@ -577,7 +577,7 @@
 -(void)headImageViewImageWithUserId:(NSString *)userId roomId:(NSString *)roomIdStr {
 
     if (roomIdStr != nil) {
-//        if (![g_server getRoomHeadImageSmall:self.userId imageView:self.headImageView]) {
+       // if (![g_server getRoomHeadImageSmall:self.userId imageView:self.headImageView]) {
 //            NSString *groupImagePath = [NSString stringWithFormat:@"%@%@/%@.%@",NSTemporaryDirectory(),g_myself.userId,roomIdStr,@"jpg"];
 //            if (groupImagePath && [[NSFileManager defaultManager] fileExistsAtPath:groupImagePath]) {
 //                self.headImageView.image = [UIImage imageWithContentsOfFile:groupImagePath];

+ 1 - 1
shiku_im/control/JXTableViewController.m

@@ -86,7 +86,7 @@
 }
 - (void)viewWillAppear:(BOOL)animated{
     [super viewWillAppear:animated];
-    NSLog(@"CurrentController = %@",[self class]);
+   // NSLog(@"CurrentController = %@",[self class]);
 //    UIView *view = g_window.subviews.lastObject;
 //    NSLog(@"lastObject = %@",g_window.subviews.lastObject);
 //    if (self.isGotoBack){

+ 3 - 2
shiku_im/controller/JXChatViewC.mm

@@ -441,7 +441,7 @@
     [g_notify addObserver:self selector:@selector(updateMsgSynTaskNotif:) name:kUpdateMsgSynTask object:nil];
     
     [g_notify addObserver:self selector:@selector(chatVCMessageSync:) name:kChatVCMessageSync object:nil];
-    NSLog(@"timetime6 -- %f", [[NSDate date] timeIntervalSince1970]);
+    //NSLog(@"timetime6 -- %f", [[NSDate date] timeIntervalSince1970]);
     [g_notify addObserver:self selector:@selector(updateTransferMsgFileSize:) name:kUpdateTransferMsgFileSize object:nil];
     
     [g_notify addObserver:self selector:@selector(keepOnGroupSend:) name:kKeepOnSendGroupSendMessage object:nil];
@@ -4615,6 +4615,7 @@ _strURLGoback=@"";
                    for (NSString *userId in self.userIds) {
                        if (userId.length>10) {
                            if ([p.toUserId isEqualToString:userId]) {
+      
                                 [g_xmpp sendMessage:p roomName:userId];
                            }
                        }else {
@@ -7106,7 +7107,7 @@ _strURLGoback=@"";
             memberData* option = [[memberData alloc] init];
             [option getDataFromDict:member];
             option.roomId = self.room.roomId;
-            [option insert];
+            [option insertChatView];
         }
 //        [self refresh];
 //        [self refresh:nil];

+ 22 - 25
shiku_im/controller/JXChatViewController.mm

@@ -450,7 +450,7 @@
     [g_notify addObserver:self selector:@selector(updateMsgSynTaskNotif:) name:kUpdateMsgSynTask object:nil];
     
     [g_notify addObserver:self selector:@selector(chatVCMessageSync:) name:kChatVCMessageSync object:nil];
-    NSLog(@"timetime6 -- %f", [[NSDate date] timeIntervalSince1970]);
+    //NSLog(@"timetime6 -- %f", [[NSDate date] timeIntervalSince1970]);
     [g_notify addObserver:self selector:@selector(updateTransferMsgFileSize:) name:kUpdateTransferMsgFileSize object:nil];
     
     [g_notify addObserver:self selector:@selector(keepOnGroupSend:) name:kKeepOnSendGroupSendMessage object:nil];
@@ -664,10 +664,10 @@
 -(void)viewDidAppear:(BOOL)animated{
     [super viewDidAppear:animated];
     for (UIGestureRecognizer *gesture in self.view.window.gestureRecognizers) {
-        NSLog(@"gesture = %@",gesture);
+//        NSLog(@"gesture = %@",gesture);
         gesture.delaysTouchesBegan = NO;
-        NSLog(@"delaysTouchesBegan = %@",gesture.delaysTouchesBegan?@"YES":@"NO");
-        NSLog(@"delaysTouchesEnded = %@",gesture.delaysTouchesEnded?@"YES":@"NO");
+//        NSLog(@"delaysTouchesBegan = %@",gesture.delaysTouchesBegan?@"YES":@"NO");
+//        NSLog(@"delaysTouchesEnded = %@",gesture.delaysTouchesEnded?@"YES":@"NO");
     }
      [_wait stop];
     
@@ -681,7 +681,7 @@
 //    [g_server getFaceList:@"0" View:self];
     [g_server getFaceListByGradeToView:self];
 //    JXUserObject *user = [[JXUserObject sharedInstance] getUserById:];
-    [g_server roomMemberGetMemberListByPageWithRoomId:self.roomId joinTime:1555649346 toView:self];
+    [g_server roomMemberGetMemberListByPageWithRoomId:self.roomId joinTime:0 toView:self];
     [g_server getbubbleFontByUserId:nil ToView:self];
 }
 
@@ -1303,7 +1303,7 @@
                     }
                     
                     
-                    NSLog(@"task.endTime  %@",task.endTime);
+                   // NSLog(@"task.endTime  %@",task.endTime);
                   //获取某联系人聊天记录
                     //-(NSMutableArray*)fetchAllMessageListWithUser:(NSString *)userId;
                 }else {
@@ -1845,7 +1845,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             scrollView.contentSize = CGSizeMake(namesLabel.frame.size.width, size.height);
             
             friendNamesView.frame = CGRectMake(friendNamesView.frame.origin.x, friendNamesView.frame.origin.y, friendNamesView.frame.size.width, scrollView.frame.origin.y + scrollView.frame.size.height + 15);
-            NSLog(@"%@", friendNamesView);
+            //NSLog(@"%@", friendNamesView);
         }
     
     // 截屏
@@ -3972,7 +3972,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
 //新来的消息是否需要展示时间
 - (void)setNewShowTime:(JXMessageObject *)msg{
     JXMessageObject *lastMsg=[_array lastObject];
-    NSLog(@"%f",[msg.timeSend timeIntervalSince1970]-[lastMsg.timeSend timeIntervalSince1970]);
+   // NSLog(@"%f",[msg.timeSend timeIntervalSince1970]-[lastMsg.timeSend timeIntervalSince1970]);
 
     if(([msg.timeSend timeIntervalSince1970]-[lastMsg.timeSend timeIntervalSince1970]>15*60)){
         if (!msg.isShowTime) {
@@ -4350,7 +4350,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
         
         _selCell = (JXBaseChatCell*)[_table cellForRowAtIndexPath:indexPath];
         _selCell.checkBox.selected = !_selCell.checkBox.selected;
-        NSLog(@"indexNum = %d, isSelect = %d",_selCell.indexNum, _selCell.checkBox.selected);
+   //     NSLog(@"indexNum = %d, isSelect = %d",_selCell.indexNum, _selCell.checkBox.selected);
         [self chatCell:_selCell checkBoxSelectIndexNum:_selCell.indexNum isSelect:_selCell.checkBox.selected];
     }else {
         
@@ -4847,14 +4847,14 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     }
     if(found>=0){//找到消息体
         if([[dict objectForKey:@"status"] intValue] != 1){
-            NSLog(@"doUploadFaire");
+          //  NSLog(@"doUploadFaire");
             [p updateIsSend:transfer_status_no];
             JXBaseChatCell* cell = [self getCell:found];
             [cell drawIsSend];
             cell = nil;
             return;
         }
-        NSLog(@"doSendAfterUpload");
+        //NSLog(@"doSendAfterUpload");
         p.content  = [dict objectForKey:@"oUrl"];
 //        if (self.isGroupMessages) {
 //            p.toUserId = userId;
@@ -6664,7 +6664,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                 n = [g_faceVC.shortNameArrayE indexOfObject:str];
                 NSDictionary *dic = [g_constant.emojiArray objectAtIndex:n];
                 [self selectImageNameString:dic[@"filename"] ShortName:str isSelectImage:NO];
-                NSLog(@"");
+               // NSLog(@"");
             }else {
 //                NSMutableString *textViewStr = [_messageText.text mutableCopy];
 //                [textViewStr insertString:str atIndex:_messageText.selectedRange.location];
@@ -6926,13 +6926,13 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     }
     
     
-    NSLog(@"NSStringFromCGRect(_table.frame) %@",NSStringFromCGRect(_table.frame));
+   // NSLog(@"NSStringFromCGRect(_table.frame) %@",NSStringFromCGRect(_table.frame));
     
     
     _table.frame =CGRectMake(_table.frame.origin.x,_table.frame.origin.y,self_width,JX_SCREEN_HEIGHT-_table.frame.origin.y-(JX_SCREEN_HEIGHT - height)+tabletoolHeight);
     //[_table gotoLastRow:NO];
     
-    NSLog(@"NSStringFromCGRect(_table.frame) %@",NSStringFromCGRect(_table.frame));
+    //NSLog(@"NSStringFromCGRect(_table.frame) %@",NSStringFromCGRect(_table.frame));
     
     
     _publicMenuBar.frame = CGRectMake(_publicMenuBar.frame.origin.x, self.tableFooter.frame.size.height, _publicMenuBar.frame.size.width, _publicMenuBar.frame.size.height);
@@ -7446,12 +7446,14 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
 //        self.user.joinTime = [NSDate dateWithTimeIntervalSince1970:[lastDict[@"createTime"] longValue]];
 //        [self.user updateJoinTime];
 //          _dataArrGetGroundPersonArr=[array1 mutableCopy];
+         
         for (NSDictionary *member in array1) {
             memberData* option = [[memberData alloc] init];
-            [option getDataFromDict:member];
-            option.roomId = self.room.roomId;
-            [option insert];
+             [option getDataFromDict:member];
+             option.roomId = self.room.roomId;
+             [option insertChatView];
         }
+       
 //        [self refresh];
 //        [self refresh:nil];
     }
@@ -7886,7 +7888,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
                 
                 
                 
-                NSLog(@"JXSynTask ^刷新");
+               //NSLog(@"JXSynTask ^刷新");
             }
 
         }
@@ -8031,11 +8033,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
             _floating.hidden=YES;
             _iscpGourp=0;
         }
-        
-        
-        
-        
-             if ([dict[@"lottery"] intValue]==1) {
+        if ([dict[@"lottery"] intValue]==1) {
               
 
                   _biaotishifoBC=1111;
@@ -9471,8 +9469,7 @@ NSMutableArray* temp = [[NSMutableArray alloc]init];
     [_container dismiss];
     
     if ([model.roomJid isEqualToString:_roomJid]) {
-
-        NSLog(@"---红包红包---%@",@"--------");
+ 
               
               
         [self hideKeyboard:NO];

+ 1 - 1
shiku_im/data/roomData.h

@@ -123,7 +123,7 @@
 +(NSArray <memberData *>*)getSelfMember:(NSString *)queryRoomId;
 
 -(BOOL)insert;
-
+-(BOOL)insertChatView;
 -(BOOL)remove;
 
 -(BOOL)update;

+ 43 - 4
shiku_im/data/roomData.m

@@ -9,11 +9,16 @@
 #import "roomData.h"
 #import "FMDatabase.h"
 #import "FMResultSet.h"
+#import "FMDatabaseQueue.h"
 #import "SDWebImageManager.h"
 #import <UIKit/UIKit.h>
 #import "QQHeader.h"
 
 
+@interface memberData ()
+@property (nonatomic,strong)  FMDatabaseQueue *dataArr;
+@end
+
 @implementation roomData
 
 @synthesize countryId;//国家
@@ -511,6 +516,37 @@
     return [[[memberData alloc] init] doFetch:sql roomId:queryRoomId];
 }
 
+-(BOOL)insertChatView{
+    if (!self.userId) {
+        return NO;
+    }
+    NSString* myUserId = MY_USER_ID;
+    
+    FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
+    NSString* sql= [NSString stringWithFormat:@"select userId from member_%@ where userId=%ld",self.roomId,userId];
+    FMResultSet *rs=[db executeQuery:sql,[NSNumber numberWithLong:self.userId]];
+    while ([rs next]) {
+        //不重复保存
+        return NO;
+    }
+     
+    
+    [self checkTableCreatedInDb:self.roomId];
+    
+    
+    if([self.role integerValue] == 0){
+        self.role = [NSNumber numberWithInteger:3];
+    }
+  
+    NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO member_%@ (roomId,userId,userName,cardName,role,onlinestate,grade,createTime,remarkName,bubbleFontId,gradeIndex) VALUES (?,?,?,?,?,?,?,?,?,?,?)",_roomId];
+    BOOL worked = [db executeUpdate:insertStr,_roomId,[NSNumber numberWithLong:userId],self.userNickName,self.userNickName,self.role,self.onlinestate,self.grade,[NSNumber numberWithLongLong:self.createTime],self.lordRemarkName,self.bubbleFontId,self.gradeIndex];
+    if (!worked) {
+        [self update];
+    }
+    db = nil;
+    return worked;
+    
+}
 
 -(BOOL)insert{
     if (!self.userId) {
@@ -520,23 +556,26 @@
     FMDatabase* db = [[JXXMPP sharedInstance] openUserDb:myUserId];
     [self checkTableCreatedInDb:self.roomId];
     
-//    NSString* sql= [NSString stringWithFormat:@"select userId from member_%@ where userId=?",self.roomId];
+//    NSString* sql= [NSString stringWithFormat:@"select userId from member_%@ where userId=%ld",self.roomId,userId];// or grade=%@,self.gradeIndex];
 //    FMResultSet *rs=[db executeQuery:sql,[NSNumber numberWithLong:self.userId]];
 //    while ([rs next]) {
 //        //不重复保存
 //        return NO;
 //    }
-    
     if([self.role integerValue] == 0){
         self.role = [NSNumber numberWithInteger:3];
     }
-    NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO member_%@ (roomId,userId,userName,cardName,role,onlinestate,grade,createTime,remarkName,bubbleFontId,gradeIndex) VALUES (?,?,?,?,?,?,?,?,?,?,?)",self.roomId];
-    BOOL worked = [db executeUpdate:insertStr,self.roomId,[NSNumber numberWithLong:self.userId],self.userNickName,self.userNickName,self.role,self.onlinestate,self.grade,[NSNumber numberWithLongLong:self.createTime],self.lordRemarkName,self.bubbleFontId,self.gradeIndex];
+
+  
+    NSString *insertStr=[NSString stringWithFormat:@"INSERT INTO member_%@ (roomId,userId,userName,cardName,role,onlinestate,grade,createTime,remarkName,bubbleFontId,gradeIndex) VALUES (?,?,?,?,?,?,?,?,?,?,?)",_roomId];
+    BOOL worked = [db executeUpdate:insertStr,_roomId,[NSNumber numberWithLong:userId],self.userNickName,self.userNickName,self.role,self.onlinestate,self.grade,[NSNumber numberWithLongLong:self.createTime],self.lordRemarkName,self.bubbleFontId,self.gradeIndex];
     if (!worked) {
         [self update];
     }
     db = nil;
     return worked;
+    
+  
 }
 
 -(BOOL)update{

+ 2 - 0
shiku_im/emojl/JXEmoji.m

@@ -369,6 +369,8 @@ static NSMutableArray *shortNameArrayE;
     
     NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypePhoneNumber|NSTextCheckingTypeLink  error:&error];
     
+    
+    
     self.matches = [detector matchesInString:text options:0 range:NSMakeRange(0, text.length)];
     
     [self highlightLinksWithIndex:NSNotFound];

+ 7 - 4
shiku_im/model/JXXMPP.m

@@ -314,7 +314,7 @@ static JXXMPP *sharedManager;
 //    from = nil;
 }
 
-
+static int i=0;
 
 #pragma  mark ------------ 收消息 ------------
 // 聊天消息
@@ -324,6 +324,9 @@ static JXXMPP *sharedManager;
     ChatMessage *message = [ChatMessage parseFromData:data extensionRegistry:nil error:&error];
     JXMessageObject *msg = [JXMessageObject getMsgObjWithPbobjc:message];
     [_receiptArray addObject:msg];
+    i++;
+    
+   // NSLog(@"---iiiii %d",i);
     
     if (_receiptArray.count >= 100) {
         [self receiptTimerAction:nil];
@@ -403,7 +406,7 @@ static JXXMPP *sharedManager;
             }else if (model.type == 4){
                 msg.content = model.content;
                
-                NSLog(@"红包 龙:model.type %ld",(long)model.type);
+              //  NSLog(@"红包 龙:model.type %ld",(long)model.type);
                 [g_notify postNotificationName:kRoomRemind_RoomIsRedMoneyGroupActivityRefresh object:model];
             }else if (model.type == 10){
               
@@ -418,7 +421,7 @@ static JXXMPP *sharedManager;
  
                 
                 
-                NSLog(@"红包 model.type:%d",model.type);
+               // NSLog(@"红包 model.type:%d",model.type);
             
                 return;
             }
@@ -1195,7 +1198,7 @@ static JXXMPP *sharedManager;
                     if (self.isLogined != 1) {
                         self.timer = [NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(timerAction:) userInfo:nil repeats:NO];
                         //                    self.loginStatus = YES;
-                        NSLog(@"XMPP --- alert");
+                     //   NSLog(@"XMPP --- alert");
                         [self logout];
                         [_wait start:Localized(@"JX_Connection")];
                         [self login];

+ 15 - 0
shiku_im/network/JXConnection.m

@@ -62,11 +62,26 @@ static AFHTTPSessionManager *afManager;
         self.httpManager.requestSerializer = [AFHTTPRequestSerializer serializer];// 请求
         self.httpManager.responseSerializer = [AFHTTPResponseSerializer serializer];// 响应
 //        self.httpManager.requestSerializer.timeoutInterval = jx_connect_timeout;
+       //  _httpManager.securityPolicy = [self customSecurityPolicy];
     }
     
     return self;
 }
 
+
+
+/**** SSL Pinning ****/
+- (AFSecurityPolicy*)customSecurityPolicy {
+    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"server" ofType:@"cer"];
+    NSData *certData = [NSData dataWithContentsOfFile:cerPath];
+    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
+    [securityPolicy setAllowInvalidCertificates:YES];
+    NSSet *set = [NSSet setWithObjects:certData, nil];
+    [securityPolicy setPinnedCertificates:set];
+    /**** SSL Pinning ****/
+    return securityPolicy;
+}
+ 
 -(void)dealloc{
 //    NSLog(@"JXConnection.dealloc:%@=%d",action,self.retainCount);
     self.action = nil;

+ 5 - 5
shiku_im/network/JXServer.m

@@ -1499,16 +1499,16 @@
     unsigned long n = strlen(buf);
     MD5(buf, n, md);
     
-    printf("%s md5: ", buf);
+//    printf("%s md5: ", buf);
     char t[50]="",p[50]="";
     int i;
     for(i = 0; i< MD5_DIGEST_LENGTH; i++){
         sprintf(t, "%02x", md[i]);
         strcat(p, t);
-        printf("%02x", md[i]);
+//        printf("%02x", md[i]);
     }
     s = [NSString stringWithCString:p encoding:NSUTF8StringEncoding];
-    printf("/n");
+//    printf("/n");
     //    NSLog(@"%@",s);
     return s;
 }
@@ -4672,7 +4672,7 @@
    获取单个群的群类型
 */
 -(void)getact_act_act_getGroupOneType:(NSString *)salt jid:(NSString *)jid andToView:(id)toView{
-    
+    return;
     NSString *language;
        if ([g_constant.sysLanguage isEqualToString:@"en"]) {
            language = @"en";
@@ -4685,7 +4685,7 @@
     [p setPostValue:jid forKey:@"jid"];
     [p setPostValue:language forKey:@"language"];
            
-    [p go];
+   /// [p go];
 }
 
 /**

+ 5 - 0
shiku_im/person/PSRegisterBaseVC.m

@@ -302,6 +302,11 @@
 - (void)viewDidLoad
 {
     [super viewDidLoad];
+    
+    [g_default removeObjectForKey:@"refushMsgHistoryxxx"];
+    
+    
+    
     // Do any additional setup after loading the view.
     NSArray *buttons = nil;
    NSString *link = @"";

+ 31 - 1
shiku_im/shiku_im-Info.plist

@@ -67,7 +67,7 @@
 		<dict/>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>20200721</string>
+	<string>20200724</string>
 	<key>LSApplicationCategoryType</key>
 	<string></string>
 	<key>LSApplicationQueriesSchemes</key>
@@ -88,6 +88,36 @@
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>
 		<true/>
+		<key>NSExceptionDomains</key>
+		<dict>
+			<key>http://47.57.16.13</key>
+			<dict>
+				<key>NSExceptionAllowInsecureHTTPLoads</key>
+				<string>YES</string>
+				<key>NSExceptionRequiresForwardSecrecy</key>
+				<string>NO</string>
+				<key>NSIncludesSubdomains</key>
+				<string>YES</string>
+			</dict>
+			<key>http://58.82.243.204:8092</key>
+			<dict>
+				<key>NSExceptionAllowInsecureHTTPLoads</key>
+				<string>YES</string>
+				<key>NSExceptionRequiresForwardSecrecy</key>
+				<string>NO</string>
+				<key>NSIncludesSubdomains</key>
+				<string>YES</string>
+			</dict>
+			<key>https://qdzcie.com</key>
+			<dict>
+				<key>NSExceptionAllowInsecureHTTPLoads</key>
+				<string>YES</string>
+				<key>NSExceptionRequiresForwardSecrecy</key>
+				<string>NO</string>
+				<key>NSIncludesSubdomains</key>
+				<string>YES</string>
+			</dict>
+		</dict>
 	</dict>
 	<key>NSCalendarsUsageDescription</key>
 	<string>允许应用程序在您使用该应用程序时访问您的日历吗?</string>

+ 1 - 1
shiku_im/shiku_im-Prefix.pch

@@ -76,7 +76,7 @@
 
 
 // 群组翻页人数
-#define kRoomMemberListNum 500
+#define kRoomMemberListNum 1000
 
 // 是否是第一次同步聊天记录列表
 #define kISFirstGetLastChatList [NSString stringWithFormat:@"kISFirstGetLastChatList_%@",g_myself.userId]

+ 6 - 6
shiku_im/util/JXLocation.m

@@ -55,12 +55,12 @@
     [manager stopUpdatingLocation];
 }
 - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
-    NSLog(@"成功获得状态");
+   // NSLog(@"成功获得状态");
 }
 
 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
 {
-    NSLog(@"找不到位置: %@", [error description]);
+    //NSLog(@"找不到位置: %@", [error description]);
     [self getLocationWithIp];
     return;
 }
@@ -223,11 +223,11 @@
             //                        [self getSetting:self];
             //                    }
             
-            NSLog(@"response = %@",responseObject);
+           // NSLog(@"response = %@",responseObject);
         }else {
             [self getLocationWithIp];
         }
-        NSLog(@"response = %@",responseObject);
+       // NSLog(@"response = %@",responseObject);
     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
         [self getLocationWithIp];
         //        self.addrBtn.hidden = YES;
@@ -287,13 +287,13 @@
 //            [self getSetting:self];
 //        }
         
-        NSLog(@"response = %@",responseObject);
+       // NSLog(@"response = %@",responseObject);
     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
         if ([self.delegate respondsToSelector:@selector(location:getLocationError:)]) {
             [self.delegate location:self getLocationError:error];
         }
         //        self.addrBtn.hidden = YES;
-        NSLog(@"error = %@",error);
+       // NSLog(@"error = %@",error);
     }];
 }
 

+ 4 - 4
shiku_im/util/MD5Util.m

@@ -21,7 +21,7 @@
     unsigned long n = strlen(buf);
     MD5(buf, n, md);
     
-    printf("%s md5: ", buf);
+//    printf("%s md5: ", buf);
     char t[50]="",p[50]="";
     int i;
     for(i = 0; i< MD5_DIGEST_LENGTH; i++){
@@ -46,7 +46,7 @@
     unsigned long n = strlen(buf);
     MD5(buf, n, md);
     
-    printf("%s md5: ", buf);
+//    printf("%s md5: ", buf);
     char t[50]="",p[50]="";
     int i;
     for(i = 0; i< MD5_DIGEST_LENGTH; i++){
@@ -73,7 +73,7 @@
     unsigned long n = strlen(buf);
     MD5(buf, n, md);
     
-    printf("%s md5: ", buf);
+//    printf("%s md5: ", buf);
     char t[50]="",p[50]="";
     int i;
     for(i = 0; i< MD5_DIGEST_LENGTH; i++){
@@ -101,7 +101,7 @@
     unsigned long n = [data length];
     MD5(buf, n, md);
     
-    printf("%s md5: ", buf);
+//    printf("%s md5: ", buf);
     char t[50]="",p[50]="";
     int i;
     for(i = 0; i< MD5_DIGEST_LENGTH; i++){