From 3a4ec5a76f15edf7065b418c0ae6137651750b07 Mon Sep 17 00:00:00 2001 From: AnranYus Date: Wed, 4 Jun 2025 20:19:59 +0800 Subject: [PATCH] temp --- ...hared-iosArm64Cinterop-cinMain-Duh-Ng.klib | Bin 0 -> 80575 bytes iosApp/Podfile | 16 +- iosApp/Podfile.lock | 2 +- iosApp/Pods/Manifest.lock | 2 +- iosApp/Pods/Pods.xcodeproj/project.pbxproj | 179 +++--- iosApp/iosApp.xcodeproj/project.pbxproj | 527 ++++++++++++++++-- iosApp/iosApp/Libs/HMTabbarController.h | 33 ++ iosApp/iosApp/Libs/LTPHud.m | 4 +- iosApp/iosApp/Libs/LTSRingSDK+Desc.h | 16 + iosApp/iosApp/Libs/LoginVc.h | 17 + iosApp/iosApp/Libs/MainNav.h | 18 + .../Libs/Modules/AboutActivity/ActivityObj.m | 12 +- .../iosApp/Libs/Modules/AboutOta/OTAImgObj.m | 10 +- iosApp/iosApp/Libs/Modules/DeviceCenter.m | 36 +- .../Modules/OusideBle/OusideBleDiscovery.m | 16 +- .../iosApp/Libs/NAVTemplateViewController.m | 162 ++++++ iosApp/iosApp/Libs/NSString+Check.h | 23 + iosApp/iosApp/Libs/NSString+Check.m | 67 +++ iosApp/iosApp/Libs/PrefixHeader.pch | 23 + iosApp/iosApp/iosApp-Bridging-Header.h | 5 + iosApp/iosApp/temp.m | 9 + shared/Ring.def | 2 + shared/build.gradle.kts | 12 +- .../com/whitefish/ring/DeviceManager.kt | 13 + .../com/whitefish/ring/Platform.android.kt | 5 + .../kotlin/com/whitefish/ring/Platform.kt | 5 +- .../whitefish/ring/device/IDeviceManager.kt | 6 + .../com/whitefish/ring/DeviceManager.kt | 19 + .../kotlin/com/whitefish/ring/Platform.ios.kt | 14 + 29 files changed, 1082 insertions(+), 171 deletions(-) create mode 100644 .kotlin/metadata/kotlinCInteropLibraries/shared-iosArm64Cinterop-cinMain-Duh-Ng.klib create mode 100755 iosApp/iosApp/Libs/HMTabbarController.h create mode 100644 iosApp/iosApp/Libs/LTSRingSDK+Desc.h create mode 100644 iosApp/iosApp/Libs/LoginVc.h create mode 100644 iosApp/iosApp/Libs/MainNav.h create mode 100644 iosApp/iosApp/Libs/NAVTemplateViewController.m create mode 100644 iosApp/iosApp/Libs/NSString+Check.h create mode 100644 iosApp/iosApp/Libs/NSString+Check.m create mode 100644 iosApp/iosApp/Libs/PrefixHeader.pch create mode 100644 iosApp/iosApp/iosApp-Bridging-Header.h create mode 100644 iosApp/iosApp/temp.m create mode 100644 shared/src/androidMain/kotlin/com/whitefish/ring/DeviceManager.kt create mode 100644 shared/src/commonMain/kotlin/com/whitefish/ring/device/IDeviceManager.kt create mode 100644 shared/src/iosMain/kotlin/com/whitefish/ring/DeviceManager.kt diff --git a/.kotlin/metadata/kotlinCInteropLibraries/shared-iosArm64Cinterop-cinMain-Duh-Ng.klib b/.kotlin/metadata/kotlinCInteropLibraries/shared-iosArm64Cinterop-cinMain-Duh-Ng.klib new file mode 100644 index 0000000000000000000000000000000000000000..116c2ea68abb4b749cc8aee7269b74ea56960ff6 GIT binary patch literal 80575 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

`v- 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 literal 0 HcmV?d00001 diff --git a/iosApp/Podfile b/iosApp/Podfile index 5bb1f60..6e8bdb1 100644 --- a/iosApp/Podfile +++ b/iosApp/Podfile @@ -4,7 +4,7 @@ target 'iosApp' do pod 'shared', :path => '../shared' pod 'Masonry', '~> 1.1.0' - + pod 'JTCalendar', '~> 2.2.6' pod 'YYKit', '~> 1.0.9' pod 'MBProgressHUD', '~> 1.2.0' @@ -15,4 +15,18 @@ target 'iosApp' do pod 'DateTools' pod 'MJExtension', '~> 3.4.1' pod 'FMDB' + + # 添加post_install脚本来配置静态库链接 + post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + if target.name == 'iosApp' + config.build_settings['OTHER_LDFLAGS'] ||= [] + config.build_settings['OTHER_LDFLAGS'] << '-lRingSDK_2.0.2' + config.build_settings['LIBRARY_SEARCH_PATHS'] ||= [] + config.build_settings['LIBRARY_SEARCH_PATHS'] << '$(PROJECT_DIR)/iosApp/Libs' + end + end + end + end end diff --git a/iosApp/Podfile.lock b/iosApp/Podfile.lock index cabfb2a..13f40c4 100644 --- a/iosApp/Podfile.lock +++ b/iosApp/Podfile.lock @@ -375,6 +375,6 @@ SPEC CHECKSUMS: Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 -PODFILE CHECKSUM: fc26b545e5ee4b5b80ec47254f6366edb022adfa +PODFILE CHECKSUM: 6c8b3a4cbbcb499c48be7819e3fe2546a0a463ba COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Manifest.lock b/iosApp/Pods/Manifest.lock index cabfb2a..13f40c4 100644 --- a/iosApp/Pods/Manifest.lock +++ b/iosApp/Pods/Manifest.lock @@ -375,6 +375,6 @@ SPEC CHECKSUMS: Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 -PODFILE CHECKSUM: fc26b545e5ee4b5b80ec47254f6366edb022adfa +PODFILE CHECKSUM: 6c8b3a4cbbcb499c48be7819e3fe2546a0a463ba COCOAPODS: 1.16.2 diff --git a/iosApp/Pods/Pods.xcodeproj/project.pbxproj b/iosApp/Pods/Pods.xcodeproj/project.pbxproj index 728f78c..aab8c50 100644 --- a/iosApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/iosApp/Pods/Pods.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ dependencies = ( ); name = shared; + productName = shared; }; /* End PBXAggregateTarget section */ @@ -32,7 +33,7 @@ 02DD2667E8A91C38C53B4BD4334FEB1A /* QMUIPopupMenuItem.h in Headers */ = {isa = PBXBuildFile; fileRef = A445C85678E48F427EAB92744CE46240 /* QMUIPopupMenuItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; 02FC6119083751FFF17F4240C103B0D2 /* QMUIMultipleDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D2FE254FA20B41D815CD27CD996313B /* QMUIMultipleDelegates.m */; }; 036069ADB7ED599B72ABA0B554DE988C /* UITabBar+QMUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3DE9C0679562961726358E30E0CF4D /* UITabBar+QMUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03F2428C9FE1AF75B287A39D46F646FA /* FMDB-FMDB_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */; }; + 03F2428C9FE1AF75B287A39D46F646FA /* FMDB_Privacy.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB_Privacy.bundle */; }; 0423F148FF3BE83F1C768636D238EA31 /* UIGestureRecognizer+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9C5BFBE54D1921986264CF1C25BF75 /* UIGestureRecognizer+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 043BE2D1F296D7B1DDFC338A17483F9E /* UIBlurEffect+QMUI.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BBB7BCFB162BF6A2493B48534E54217 /* UIBlurEffect+QMUI.m */; }; 0553071F3990D0A143B6E7819523F1FD /* QMUIDisplayLinkAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0B5A61460CD24E4C38E1A728B29E1C /* QMUIDisplayLinkAnimation.m */; }; @@ -161,7 +162,7 @@ 32278CF2E1574E7C6286DF5DEFFDF4B1 /* NSArray+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = 26936DFB369958C0639E041CA3CBB850 /* NSArray+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; 325CA20B9271F3E008234E1518B79061 /* MJRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 20CDAF1CB0DEA182EAEE0D1FCACD1753 /* MJRefresh-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 326E0584CC15454A4D382F12557A9E99 /* QMUIAssetsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EF88EAB035DD06CAFF5935D5765A5C7 /* QMUIAssetsManager.m */; }; - 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh-MJRefresh.Privacy in Resources */ = {isa = PBXBuildFile; fileRef = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; }; + 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh.Privacy.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh.Privacy.bundle */; }; 32ED999775835BA5BCD74807860494CD /* QMUIPopupMenuItemViewProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 34E616BC50DCC2AEC75F14AA7258B164 /* QMUIPopupMenuItemViewProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; 337CF76F666E98CADF9C68E00197AD6E /* QMUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C85EE5A2BC00B81A1B7CB802F149A70 /* QMUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; 33C42E79B137F94B3B149F264FB66DDE /* NSURL+QMUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FFBCC31B267852E2AD3B92F3C1402F2 /* NSURL+QMUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -307,7 +308,7 @@ 615C375B2B90EC501C06AC95C4166364 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9F955BC50584733694713C914F62CB7 /* MobileCoreServices.framework */; }; 616439C72D917B6FF3998D29856C145A /* UINavigationController+QMUI.m in Sources */ = {isa = PBXBuildFile; fileRef = F39A09811531FB7C620856196C2835D0 /* UINavigationController+QMUI.m */; }; 61857C821395B868C65A8FFE4DA1B4E3 /* MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = E5F341C5EB9D1F0917CAB1980CAFAB9B /* MJExtension.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 62CFA1DA1F44515EBEFAC8BBDCAFEA86 /* QMUIKit-QMUIKit in Resources */ = {isa = PBXBuildFile; fileRef = 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit-QMUIKit */; }; + 62CFA1DA1F44515EBEFAC8BBDCAFEA86 /* QMUIKit.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit.bundle */; }; 6329CC6F7AB03B6D607686F7801639E7 /* YYThreadSafeDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = E8FCEBB74589811CC98A0038E721E5A2 /* YYThreadSafeDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; 634C47C0C99AED159B83DBF3DE7592F3 /* Toast.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F56629659E56BEEABFC6C0DC292D68D /* Toast.h */; settings = {ATTRIBUTES = (Public, ); }; }; 63D8A88D36948E62F745594854E0677F /* FMDB.h in Headers */ = {isa = PBXBuildFile; fileRef = C4B65E889ABBBBCF67A6F75E33F4E929 /* FMDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -359,7 +360,7 @@ 7777DCBDDDD09DF78F650491FA9F029C /* QMUISheetPresentationSupports.h in Headers */ = {isa = PBXBuildFile; fileRef = F117A87C7FBEFEFE59FA67B7C2169487 /* QMUISheetPresentationSupports.h */; settings = {ATTRIBUTES = (Public, ); }; }; 780E0EF90C74434AF53C49C3594357C2 /* JTCalendarDayView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1486A22660C5EA362429493C82D5A21B /* JTCalendarDayView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 784908F07EC38CCAF4704A2FD06C4713 /* NSDictionary+YYAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = A57F94A84D2B5A9F1A86301DA551CE81 /* NSDictionary+YYAdd.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7873F2F89CD0A435FAB776BC27BFB56A /* MJExtension-MJExtension in Resources */ = {isa = PBXBuildFile; fileRef = 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension-MJExtension */; }; + 7873F2F89CD0A435FAB776BC27BFB56A /* MJExtension.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension.bundle */; }; 7902D28FC9EF5AFEB452F508C7F266B1 /* MJRefreshAutoNormalFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D1E8A0142331D3DF5CA8AA97FEC37C0 /* MJRefreshAutoNormalFooter.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7929CFE2870362624707CCEC764C20C7 /* QMUIWindowSizeMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 70834183A5A494976C7DE256619019AF /* QMUIWindowSizeMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7989A6E79BFA78440C39F568D972305C /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CDBED5F1B71979C8463CFEAB8C87D23 /* MJRefresh.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -634,10 +635,10 @@ D3F2C605B373F0902E2AB7F00545662E /* NSAttributedString+QMUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D4A5765231AC1E7F4B145A7521BE61 /* NSAttributedString+QMUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; D40D76BF0FF793CDA8FA9EFB67E7AE67 /* QMUIAsset.m in Sources */ = {isa = PBXBuildFile; fileRef = 88925A4E02D0802B4BC4424B98EB7DFC /* QMUIAsset.m */; }; D4C4BB5029ED675E59D58F2FAAAF454A /* YYImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F12F54D282E372A275B71743E3F9F3D /* YYImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4D4E8BD5F155B6C32FE15226FD3315C /* QMUIKit-QMUIResources in Resources */ = {isa = PBXBuildFile; fileRef = FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIKit-QMUIResources */; }; + D4D4E8BD5F155B6C32FE15226FD3315C /* QMUIResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIResources.bundle */; }; D5CFBD8B611789FC080D35D91127053F /* UIPasteboard+YYText.h in Headers */ = {isa = PBXBuildFile; fileRef = E11E78C23F020213B88F74354507BC71 /* UIPasteboard+YYText.h */; settings = {ATTRIBUTES = (Public, ); }; }; D606858436460D12F75B4B33F005EEA8 /* QMUIAssetsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = AD7543DFBAEB5709781B696F48132044 /* QMUIAssetsManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D60FD96D6C7D9442E6A71E410301B3E2 /* Toast-Toast in Resources */ = {isa = PBXBuildFile; fileRef = F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast-Toast */; }; + D60FD96D6C7D9442E6A71E410301B3E2 /* Toast.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast.bundle */; }; D63E3BDFA1F026C99920F7EA132C533C /* QMUISheetPresentationSupports.m in Sources */ = {isa = PBXBuildFile; fileRef = E02E057999FC194ADFF5BD09E510A59C /* QMUISheetPresentationSupports.m */; }; D663837F4347AF58660EE6F7FD426ECE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52F6FA78ACC249DBB13C32B1446EA2E2 /* Foundation.framework */; }; D68875F0808F6E211E36E68591E30299 /* YYTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 509530A0C1B6312BF45926B12EDA08E7 /* YYTextLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -929,7 +930,7 @@ 144A00D8F331D7514F95182996BD0F5A /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreImage.framework; sourceTree = DEVELOPER_DIR; }; 146A0435E39CB502277E47ABE2A2D502 /* YYWebImageOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYWebImageOperation.m; path = YYKit/Image/YYWebImageOperation.m; sourceTree = ""; }; 1486A22660C5EA362429493C82D5A21B /* JTCalendarDayView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JTCalendarDayView.h; path = JTCalendar/Views/JTCalendarDayView.h; sourceTree = ""; }; - 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "FMDB-FMDB_Privacy"; path = FMDB_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB_Privacy.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FMDB_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 1538F878B1B88F08D3E0B10CBE652804 /* QMUIThemeManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIThemeManager.h; path = QMUIKit/QMUIComponents/QMUITheme/QMUIThemeManager.h; sourceTree = ""; }; 155BD2EBB35A268BE50E5D16382E10CF /* UIBarItem+QMUIBadge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBarItem+QMUIBadge.m"; path = "QMUIKit/QMUIComponents/QMUIBadge/UIBarItem+QMUIBadge.m"; sourceTree = ""; }; 156999C714704B5CEC2FA8463D3AA837 /* UIVisualEffectView+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIVisualEffectView+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIVisualEffectView+QMUI.m"; sourceTree = ""; }; @@ -951,7 +952,7 @@ 1B55B628750B4DA149C65E6C804055EE /* QMUINavigationBarScrollingSnapAnimator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUINavigationBarScrollingSnapAnimator.m; path = QMUIKit/QMUIComponents/QMUIScrollAnimator/QMUINavigationBarScrollingSnapAnimator.m; sourceTree = ""; }; 1BA4EE6FE0E42F8DA5BCE44A688D4021 /* UIViewController+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+QMUI.h"; path = "QMUIKit/UIKitExtensions/UIViewController+QMUI.h"; sourceTree = ""; }; 1BBB7BCFB162BF6A2493B48534E54217 /* UIBlurEffect+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBlurEffect+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIBlurEffect+QMUI.m"; sourceTree = ""; }; - 1BF46B4DF5FE6C6555418BB5DB0D22CE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 1BF46B4DF5FE6C6555418BB5DB0D22CE /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = MJRefresh/PrivacyInfo.xcprivacy; sourceTree = ""; }; 1C5B0ACBC0062108B17D261A2A00F7A4 /* QMUITips.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUITips.h; path = QMUIKit/QMUIComponents/QMUITips.h; sourceTree = ""; }; 1C85EE5A2BC00B81A1B7CB802F149A70 /* QMUIKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIKit.h; path = QMUIKit/QMUIKit.h; sourceTree = ""; }; 1CB507858B4CDF0C15A6DB438078A24F /* UIImage+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+YYAdd.h"; path = "YYKit/Base/UIKit/UIImage+YYAdd.h"; sourceTree = ""; }; @@ -967,7 +968,7 @@ 1F625FE003C7210B84C3183786251E4F /* NSKeyedUnarchiver+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSKeyedUnarchiver+YYAdd.m"; path = "YYKit/Base/Foundation/NSKeyedUnarchiver+YYAdd.m"; sourceTree = ""; }; 1FC00E30D2DF1107D7B123F9753645CE /* NSParagraphStyle+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSParagraphStyle+YYText.h"; path = "YYKit/Text/String/NSParagraphStyle+YYText.h"; sourceTree = ""; }; 1FFBCC31B267852E2AD3B92F3C1402F2 /* NSURL+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+QMUI.h"; path = "QMUIKit/UIKitExtensions/NSURL+QMUI.h"; sourceTree = ""; }; - 1FFED36A657123030ABB700256D73F15 /* Masonry */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Masonry; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1FFED36A657123030ABB700256D73F15 /* Masonry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Masonry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 203D7A8266F5D1948598F9634266001B /* NSString+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+QMUI.h"; path = "QMUIKit/UIKitExtensions/NSString+QMUI.h"; sourceTree = ""; }; 20CDAF1CB0DEA182EAEE0D1FCACD1753 /* MJRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "MJRefresh-umbrella.h"; sourceTree = ""; }; 210CE7656DBF9E5DEB549A11738B6860 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefresh/MJRefresh.bundle; sourceTree = ""; }; @@ -1001,7 +1002,7 @@ 2A1A3F3F9A5AA7D840B285E28A248B0A /* QMUITableView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUITableView.h; path = QMUIKit/QMUIComponents/QMUITableView.h; sourceTree = ""; }; 2A556F85B44157EE6E41E0CF4E31D7AB /* FMResultSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMResultSet.h; path = src/fmdb/FMResultSet.h; sourceTree = ""; }; 2A6E56A5F1295AB6A110D6C498B90369 /* FMDB-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FMDB-prefix.pch"; sourceTree = ""; }; - 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJExtension; path = MJExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MJExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 2B5DADD3C70404C695F2048EFB9519E9 /* Masonry.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.debug.xcconfig; sourceTree = ""; }; 2B8C909CE5E7C512D6F7272FA5C056EB /* NSCharacterSet+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCharacterSet+QMUI.h"; path = "QMUIKit/UIKitExtensions/NSCharacterSet+QMUI.h"; sourceTree = ""; }; 2BAE7CE9D130CC9182E8DADCF821BB75 /* UINavigationItem+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINavigationItem+QMUI.h"; path = "QMUIKit/UIKitExtensions/UINavigationItem+QMUI.h"; sourceTree = ""; }; @@ -1075,7 +1076,7 @@ 43880A90B2EB6BD442270F23831D8827 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = ""; }; 439B05E8444163695926633CD77A9B8B /* UILabel+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UILabel+QMUI.h"; path = "QMUIKit/UIKitExtensions/UILabel+QMUI.h"; sourceTree = ""; }; 43DE542563498D897EAC83BECC760207 /* UIView+Toast.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+Toast.m"; path = "Toast/UIView+Toast.m"; sourceTree = ""; }; - 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension-MJExtension */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJExtension-MJExtension"; path = MJExtension.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MJExtension.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 44BAE1FBF34F0B7C012B8A7CDEC17793 /* MBProgressHUD.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MBProgressHUD.modulemap; sourceTree = ""; }; 44CE09DAE6F57AF77FD209344243F791 /* NSObject+MJKeyValue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MJKeyValue.m"; path = "MJExtension/NSObject+MJKeyValue.m"; sourceTree = ""; }; 45322EEC3B916922730EE5121AD496DC /* MJRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.debug.xcconfig; sourceTree = ""; }; @@ -1100,7 +1101,7 @@ 4AD1803C1C0940757571408AF4621AA2 /* QMUIEasings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIEasings.h; path = QMUIKit/QMUIComponents/QMUIAnimation/QMUIEasings.h; sourceTree = ""; }; 4AD7C2DC034DB543E9D24CD093F10210 /* NSObject+YYAddForARC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+YYAddForARC.m"; path = "YYKit/Base/Foundation/NSObject+YYAddForARC.m"; sourceTree = ""; }; 4AE8ECADEE4F9BE84B92B065692843F8 /* UIMenuController+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIMenuController+QMUI.h"; path = "QMUIKit/UIKitExtensions/UIMenuController+QMUI.h"; sourceTree = ""; }; - 4AF171581392AD234F23BE913F0C22FE /* DateTools */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DateTools; path = DateTools.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4AF171581392AD234F23BE913F0C22FE /* DateTools.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DateTools.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4B192178A695EE4EC2CC5B5AD3E0D06D /* NSNotificationCenter+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+YYAdd.m"; path = "YYKit/Base/Foundation/NSNotificationCenter+YYAdd.m"; sourceTree = ""; }; 4BF8167F1F16B53D0D36DA6486C24AB5 /* UIView+QMUITheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+QMUITheme.m"; path = "QMUIKit/QMUIComponents/QMUITheme/UIView+QMUITheme.m"; sourceTree = ""; }; 4C8567BC18809B231D1174CCA61DEE84 /* JTCalendarWeek.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JTCalendarWeek.h; path = JTCalendar/Protocols/JTCalendarWeek.h; sourceTree = ""; }; @@ -1141,7 +1142,7 @@ 5522334BCBE27DD03CEDF79812364DB8 /* YYTextEffectWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextEffectWindow.m; path = YYKit/Text/Component/YYTextEffectWindow.m; sourceTree = ""; }; 5577FE954794383A429608BE236F2105 /* UIView+QMUITheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+QMUITheme.h"; path = "QMUIKit/QMUIComponents/QMUITheme/UIView+QMUITheme.h"; sourceTree = ""; }; 55ABB06C8A1800962A74E007E7733796 /* Pods-iosApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-iosApp-frameworks.sh"; sourceTree = ""; }; - 55E0AFD333353D71ACC2207149E879D6 /* Toast */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Toast; path = Toast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 55E0AFD333353D71ACC2207149E879D6 /* Toast.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Toast.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 560DBC31EF8D71C0CE5ACE67B84F7467 /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ViewController+MASAdditions.m"; path = "Masonry/ViewController+MASAdditions.m"; sourceTree = ""; }; 561BE7E02597857878BBD6393DB888B5 /* QMUICellSizeKeyCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUICellSizeKeyCache.m; path = QMUIKit/QMUIComponents/QMUICellSizeKeyCache/QMUICellSizeKeyCache.m; sourceTree = ""; }; 56E257C81857ACA18812DE13B487E283 /* UIImage+QMUITheme.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+QMUITheme.m"; path = "QMUIKit/QMUIComponents/QMUITheme/UIImage+QMUITheme.m"; sourceTree = ""; }; @@ -1235,7 +1236,7 @@ 7717F2669547DFACA2E8350992F2C5C4 /* QMUIStaticTableViewCellDataSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIStaticTableViewCellDataSource.m; path = QMUIKit/QMUIComponents/StaticTableView/QMUIStaticTableViewCellDataSource.m; sourceTree = ""; }; 77A31BF82F3B213410AA24EBC69F9864 /* DTTimePeriodChain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTimePeriodChain.m; path = DateTools/DateTools/DTTimePeriodChain.m; sourceTree = ""; }; 77DC5902FD0E09544E689A46772929E9 /* QMUITabBarViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUITabBarViewController.m; path = QMUIKit/QMUIMainFrame/QMUITabBarViewController.m; sourceTree = ""; }; - 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit-QMUIKit */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "QMUIKit-QMUIKit"; path = QMUIKit.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QMUIKit.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 79F980119DEEB9C4D92E87FE7796D2C4 /* UIBezierPath+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIBezierPath+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIBezierPath+QMUI.m"; sourceTree = ""; }; 7A2E08F52007C2164856EAD4FFA4BD7C /* ResourceBundle-QMUIKit-QMUIKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-QMUIKit-QMUIKit-Info.plist"; sourceTree = ""; }; 7B1A02173FD541731473196E24567A85 /* YYKitMacro.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYKitMacro.h; path = YYKit/Base/YYKitMacro.h; sourceTree = ""; }; @@ -1247,7 +1248,7 @@ 7D722EC0B7C39B80EC104C18DD77B22D /* YYKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = YYKit.modulemap; sourceTree = ""; }; 7DC03FC27C6A637A4897F2F2F113F50F /* QMUIImagePickerPreviewViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIImagePickerPreviewViewController.m; path = QMUIKit/QMUIComponents/ImagePickerLibrary/QMUIImagePickerPreviewViewController.m; sourceTree = ""; }; 7E0AE8C46252EC77CD69CCA94F8EAA10 /* QMUISegmentedControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUISegmentedControl.m; path = QMUIKit/QMUIComponents/QMUISegmentedControl.m; sourceTree = ""; }; - 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "MJRefresh-MJRefresh.Privacy"; path = MJRefresh.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh.Privacy.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MJRefresh.Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 7E5DA53E5B7691BE49BDF52955794E19 /* UIImageView+YYWebImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+YYWebImage.h"; path = "YYKit/Image/Categories/UIImageView+YYWebImage.h"; sourceTree = ""; }; 7E6DFB04A0486C105583FCB120FC7F5E /* QMUIConsole.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIConsole.h; path = QMUIKit/QMUIComponents/QMUIConsole/QMUIConsole.h; sourceTree = ""; }; 7E9C2CDA618DA37BCE638643ADBCFCCC /* NSObject+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+QMUI.m"; path = "QMUIKit/UIKitExtensions/NSObject+QMUI.m"; sourceTree = ""; }; @@ -1271,7 +1272,7 @@ 83B8D4168ED903D88916BCD33A4BD3DF /* MJRefreshConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConfig.m; path = MJRefresh/MJRefreshConfig.m; sourceTree = ""; }; 84E03CF4DDF15DB471C5CDCAE7D4BF35 /* UIFont+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIFont+QMUI.m"; sourceTree = ""; }; 8567FB68C84B78EDD5692F7CB8D37560 /* CAAnimation+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CAAnimation+QMUI.h"; path = "QMUIKit/QMUIComponents/CAAnimation+QMUI.h"; sourceTree = ""; }; - 8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = QMUIKit; path = QMUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = QMUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 859F65CBAD1C7F4130531CCA3CBC642C /* UIControl+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIControl+YYAdd.m"; path = "YYKit/Base/UIKit/UIControl+YYAdd.m"; sourceTree = ""; }; 85B823E57AA708F105F6D3FB2B777E6C /* UITextView+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITextView+QMUI.m"; path = "QMUIKit/UIKitExtensions/UITextView+QMUI.m"; sourceTree = ""; }; 875F3DC8605226054EF379B96768682B /* YYThreadSafeDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYThreadSafeDictionary.m; path = YYKit/Utility/YYThreadSafeDictionary.m; sourceTree = ""; }; @@ -1284,7 +1285,7 @@ 8A84838CC30AC4504FE90E893AA3DA1B /* NSObject+YYAddForKVO.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+YYAddForKVO.h"; path = "YYKit/Base/Foundation/NSObject+YYAddForKVO.h"; sourceTree = ""; }; 8AA10EA2ACEBF8BAE84C9BAA62D98A5B /* QMUIKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "QMUIKit-prefix.pch"; sourceTree = ""; }; 8B3DE9C0679562961726358E30E0CF4D /* UITabBar+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITabBar+QMUI.h"; path = "QMUIKit/UIKitExtensions/UITabBar+QMUI.h"; sourceTree = ""; }; - 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MBProgressHUD; path = MBProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MBProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8BC38D1D00FF6962FC7D0377F12C10BB /* JTCalendarWeekDayView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JTCalendarWeekDayView.m; path = JTCalendar/Views/JTCalendarWeekDayView.m; sourceTree = ""; }; 8C26259258740078C8DCAEA6A23CB14C /* QMUIImagePickerCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIImagePickerCollectionViewCell.m; path = QMUIKit/QMUIComponents/ImagePickerLibrary/QMUIImagePickerCollectionViewCell.m; sourceTree = ""; }; 8C8C1AEAB496AE6EE122EA570CD73910 /* Toast-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Toast-umbrella.h"; sourceTree = ""; }; @@ -1295,7 +1296,7 @@ 8DE5F38A08177EE9C09B6B53D7064B8A /* JTCalendarManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JTCalendarManager.m; path = JTCalendar/JTCalendarManager.m; sourceTree = ""; }; 8ED88CA768B5C686E04F982BE1C7160A /* QMUIImagePickerHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIImagePickerHelper.h; path = QMUIKit/QMUIComponents/ImagePickerLibrary/QMUIImagePickerHelper.h; sourceTree = ""; }; 8EE583DFD1CABA9BA581808C375F4E4D /* Toast-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Toast-Info.plist"; sourceTree = ""; }; - 8EF3F6D5B12FD742052D13B61D5C814F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = privacy/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 8EF3F6D5B12FD742052D13B61D5C814F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = privacy/PrivacyInfo.xcprivacy; sourceTree = ""; }; 8F12F54D282E372A275B71743E3F9F3D /* YYImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYImage.h; path = YYKit/Image/YYImage.h; sourceTree = ""; }; 8FC8C4A87070241C640DCFAA14CCC8CB /* YYTextLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextLine.m; path = YYKit/Text/Component/YYTextLine.m; sourceTree = ""; }; 904A84447FB88FC309A48C948FA1E289 /* QMUIDialogViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIDialogViewController.m; path = QMUIKit/QMUIComponents/QMUIDialogViewController.m; sourceTree = ""; }; @@ -1322,7 +1323,7 @@ 94B9B8910B23A0BF1D0F9763A0DAB01A /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; 9537B8ABCEC1F17A6241E8C414A58019 /* MKAnnotationView+YYWebImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MKAnnotationView+YYWebImage.m"; path = "YYKit/Image/Categories/MKAnnotationView+YYWebImage.m"; sourceTree = ""; }; 9550C737553A5A30C38DE422329C7D20 /* QMUIKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = QMUIKit.modulemap; sourceTree = ""; }; - 95784DA3E052291A415D111DC394DDB0 /* JTCalendar */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JTCalendar; path = JTCalendar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 95784DA3E052291A415D111DC394DDB0 /* JTCalendar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JTCalendar.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 961F2D673D70A5598ED8D4C01E8FE173 /* YYMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYMemoryCache.h; path = YYKit/Cache/YYMemoryCache.h; sourceTree = ""; }; 966B7812D4FDE4B60DFBC087B973DB41 /* MJRefreshNormalHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshNormalHeader.m; path = MJRefresh/Custom/Header/MJRefreshNormalHeader.m; sourceTree = ""; }; 969AEBD6B204DBEAAC40D31E0F145485 /* UINavigationBar+Transition.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINavigationBar+Transition.h"; path = "QMUIKit/QMUIComponents/NavigationBarTransition/UINavigationBar+Transition.h"; sourceTree = ""; }; @@ -1345,7 +1346,7 @@ 9D3AB291AAA77506CEEA0B3275651F46 /* QMUILogger+QMUIConfigurationTemplate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "QMUILogger+QMUIConfigurationTemplate.h"; path = "QMUIKit/QMUIComponents/QMUILogger+QMUIConfigurationTemplate.h"; sourceTree = ""; }; 9D658656CBA1A3194388574E9D1C972F /* QMUIDialogViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIDialogViewController.h; path = QMUIKit/QMUIComponents/QMUIDialogViewController.h; sourceTree = ""; }; 9D931D0D1DD2F6F967102BE1C27B58AC /* QMUIPopupMenuItemView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIPopupMenuItemView.h; path = QMUIKit/QMUIComponents/QMUIPopupMenuView/QMUIPopupMenuItemView.h; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 9DB09952EC2FA5B9CA5A148F7B6EF258 /* NSData+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+YYAdd.m"; path = "YYKit/Base/Foundation/NSData+YYAdd.m"; sourceTree = ""; }; 9E56471C7EDE6544F1C2DF241DC0F337 /* QMUIScrollAnimator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIScrollAnimator.h; path = QMUIKit/QMUIComponents/QMUIScrollAnimator/QMUIScrollAnimator.h; sourceTree = ""; }; 9EA987614A541E9052D4B2379ECB6CF3 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; @@ -1374,7 +1375,7 @@ A366D8F61B66F9B0644F4C828EBC630F /* NSThread+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSThread+YYAdd.m"; path = "YYKit/Base/Foundation/NSThread+YYAdd.m"; sourceTree = ""; }; A37DCDD5739412E29BC59828B9D6F6D1 /* UITableViewCell+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UITableViewCell+QMUI.m"; path = "QMUIKit/UIKitExtensions/UITableViewCell+QMUI.m"; sourceTree = ""; }; A39ECB8468A0684D587FCCD9CF5B150D /* UIApplication+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+QMUI.h"; path = "QMUIKit/UIKitExtensions/UIApplication+QMUI.h"; sourceTree = ""; }; - A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FMDB; path = FMDB.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FMDB.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A3E3B2AFE230CEA9E7F8EA0DA684EC02 /* QMUITabBarViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUITabBarViewController.h; path = QMUIKit/QMUIMainFrame/QMUITabBarViewController.h; sourceTree = ""; }; A445C85678E48F427EAB92744CE46240 /* QMUIPopupMenuItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIPopupMenuItem.h; path = QMUIKit/QMUIComponents/QMUIPopupMenuView/QMUIPopupMenuItem.h; sourceTree = ""; }; A52375CEBA5EEE849E2C3A713CFE3B63 /* MJRefreshAutoStateFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshAutoStateFooter.m; path = MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m; sourceTree = ""; }; @@ -1386,7 +1387,7 @@ A7D8EBE0A05AD61C8C7D8762FF98BD09 /* QMUIImagePreviewView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIImagePreviewView.m; path = QMUIKit/QMUIComponents/QMUIImagePreviewView/QMUIImagePreviewView.m; sourceTree = ""; }; A7FACA30C97F3BFC83588B3E50AA5B4B /* DateTools-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DateTools-Info.plist"; sourceTree = ""; }; A8169D3089AD4B331710912DFEEC08C9 /* QMUILogManagerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUILogManagerViewController.m; path = QMUIKit/QMUIComponents/QMUILogManagerViewController.m; sourceTree = ""; }; - A81CAF7165BA36F56425571C70138AA9 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = QMUIKit/PrivacyInfo.xcprivacy; sourceTree = ""; }; + A81CAF7165BA36F56425571C70138AA9 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = QMUIKit/PrivacyInfo.xcprivacy; sourceTree = ""; }; A82B1BED716DE5D52061470409334F68 /* MJRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = MJRefresh.modulemap; sourceTree = ""; }; A8664BF30872D5794A2246C65BE5C62F /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Photos.framework; sourceTree = DEVELOPER_DIR; }; A86C1CDEA08E9FEFC85D6165E784B3A5 /* UINavigationBar+QMUIBarProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINavigationBar+QMUIBarProtocol.h"; path = "QMUIKit/UIKitExtensions/QMUIBarProtocol/UINavigationBar+QMUIBarProtocol.h"; sourceTree = ""; }; @@ -1420,7 +1421,7 @@ AF5B039453FE62D663CB7CB29ED98F0A /* MJRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = MJRefresh.release.xcconfig; sourceTree = ""; }; AFEE9CC03509452585E6C4679E10464B /* QMUICommonViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUICommonViewController.h; path = QMUIKit/QMUIMainFrame/QMUICommonViewController.h; sourceTree = ""; }; B04C735B97EC4B936D408F673F7FCB28 /* QMUICellHeightKeyCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUICellHeightKeyCache.h; path = QMUIKit/QMUIComponents/QMUICellHeightKeyCache/QMUICellHeightKeyCache.h; sourceTree = ""; }; - B097DD7534E741D5C41838011D755842 /* Pods-iosApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-iosApp"; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B097DD7534E741D5C41838011D755842 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B0E0499F15203226BF565DB1BFB6DE2B /* QMUITheme.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUITheme.h; path = QMUIKit/QMUIComponents/QMUITheme/QMUITheme.h; sourceTree = ""; }; B0FE5A520EE5266F1CBEB05466DE30C6 /* NSString+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+YYAdd.h"; path = "YYKit/Base/Foundation/NSString+YYAdd.h"; sourceTree = ""; }; B18E769BEE575C532C4B87E1AC4D560D /* QMUICore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUICore.h; path = QMUIKit/QMUICore/QMUICore.h; sourceTree = ""; }; @@ -1447,7 +1448,7 @@ B6DB9D1615EE8A837522538688F4B777 /* NSBundle+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSBundle+MJRefresh.h"; path = "MJRefresh/NSBundle+MJRefresh.h"; sourceTree = ""; }; B7925FFC9C6E0D7F7E94846D2F6570FC /* QMUIImagePickerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIImagePickerViewController.m; path = QMUIKit/QMUIComponents/ImagePickerLibrary/QMUIImagePickerViewController.m; sourceTree = ""; }; B7DDEBFFF99F2983FADE57DADF047954 /* Masonry-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Masonry-Info.plist"; sourceTree = ""; }; - B859C319A7199FDF80B64D597C478C52 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = MJExtension/PrivacyInfo.xcprivacy; sourceTree = ""; }; + B859C319A7199FDF80B64D597C478C52 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = MJExtension/PrivacyInfo.xcprivacy; sourceTree = ""; }; B87072D3B9792B6CF15677BB3187DEC1 /* FMDatabaseQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FMDatabaseQueue.h; path = src/fmdb/FMDatabaseQueue.h; sourceTree = ""; }; B92FF99DE7C65FF0FE229B85F4375DF2 /* UIBarButtonItem+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIBarButtonItem+YYAdd.h"; path = "YYKit/Base/UIKit/UIBarButtonItem+YYAdd.h"; sourceTree = ""; }; B93BB930C684F4F41D32F3208BD05836 /* Toast-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Toast-dummy.m"; sourceTree = ""; }; @@ -1563,20 +1564,20 @@ DFC8EA9D75040D5DF7E41A9EB8B06365 /* UIView+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+QMUI.h"; path = "QMUIKit/UIKitExtensions/UIView+QMUI.h"; sourceTree = ""; }; E02E057999FC194ADFF5BD09E510A59C /* QMUISheetPresentationSupports.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUISheetPresentationSupports.m; path = QMUIKit/QMUIComponents/QMUISheetPresentation/QMUISheetPresentationSupports.m; sourceTree = ""; }; E05874626ECD90A0246CAAB55D4EFF36 /* NSBundle+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSBundle+MJRefresh.m"; path = "MJRefresh/NSBundle+MJRefresh.m"; sourceTree = ""; }; - E0808F98C2488C041B64234F38FB396F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Toast/Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; + E0808F98C2488C041B64234F38FB396F /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Toast/Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; E09E3B2B558328C84304AF372F4A5194 /* JTCalendarWeekView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = JTCalendarWeekView.m; path = JTCalendar/Views/JTCalendarWeekView.m; sourceTree = ""; }; E11E78C23F020213B88F74354507BC71 /* UIPasteboard+YYText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIPasteboard+YYText.h"; path = "YYKit/Text/String/UIPasteboard+YYText.h"; sourceTree = ""; }; E23CE514570EF1F8D4C5876F9E01B060 /* UIControl+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIControl+YYAdd.h"; path = "YYKit/Base/UIKit/UIControl+YYAdd.h"; sourceTree = ""; }; E2E022FDBAEF5A5C4AC8E7AD124F0877 /* UITableView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UITableView+YYAdd.h"; path = "YYKit/Base/UIKit/UITableView+YYAdd.h"; sourceTree = ""; }; - E2E6BF268E792329201BC2BF5DE0B8DB /* shared.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = shared.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + E2E6BF268E792329201BC2BF5DE0B8DB /* shared.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = shared.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; E2FC95BB9F61DE49FA89BFDBE60FA448 /* UIInterface+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIInterface+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIInterface+QMUI.m"; sourceTree = ""; }; - E325DCCD357AF9DF2F7C506424659D7E /* YYKit */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = YYKit; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E325DCCD357AF9DF2F7C506424659D7E /* YYKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = YYKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E39BE12967CFA5BCDF680F7E8376943C /* shared.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = shared.release.xcconfig; sourceTree = ""; }; E421DAC2E39B321B2E8F66F48872AFC1 /* NSString+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+YYAdd.m"; path = "YYKit/Base/Foundation/NSString+YYAdd.m"; sourceTree = ""; }; E462E23B3674BF94EAB1504D506F2803 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; E46C60D542D0A844448162142EC75414 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "View+MASAdditions.m"; path = "Masonry/View+MASAdditions.m"; sourceTree = ""; }; E47DBF9B62AEE05EBC325255EEF945CF /* QMUIBarProtocolPrivate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QMUIBarProtocolPrivate.m; path = QMUIKit/UIKitExtensions/QMUIBarProtocol/QMUIBarProtocolPrivate.m; sourceTree = ""; }; - E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = MJRefresh; path = MJRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MJRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E4C923318724794E3CC670804C2D6A6B /* Pods-iosApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-iosApp-acknowledgements.markdown"; sourceTree = ""; }; E54CCF51B605536EFA83945EF94B4EEA /* YYTextParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYTextParser.m; path = YYKit/Text/String/YYTextParser.m; sourceTree = ""; }; E5826B9926F269D68CAC9BD758B80CA3 /* QMUIKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = QMUIKit.debug.xcconfig; sourceTree = ""; }; @@ -1617,7 +1618,7 @@ EF049A659713139834385CEE82C69609 /* UIWindow+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWindow+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIWindow+QMUI.m"; sourceTree = ""; }; EFA9DC5FB92D08D8950DDBD1310F1D22 /* QMUIButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUIButton.h; path = QMUIKit/QMUIComponents/QMUIButton/QMUIButton.h; sourceTree = ""; }; EFBDCA93B4680A2BB8A955F659251FA1 /* FMResultSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FMResultSet.m; path = src/fmdb/FMResultSet.m; sourceTree = ""; }; - F064C0D7CE795102A652A82AEBBA7514 /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; name = "compose-resources"; path = "build/compose/cocoapods/compose-resources"; sourceTree = ""; }; + F064C0D7CE795102A652A82AEBBA7514 /* compose-resources */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = "compose-resources"; path = "build/compose/cocoapods/compose-resources"; sourceTree = ""; }; F07E48F2C3EE67A8994B426EF4BF07AE /* JTCalendarMenuView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JTCalendarMenuView.h; path = JTCalendar/Views/JTCalendarMenuView.h; sourceTree = ""; }; F117A87C7FBEFEFE59FA67B7C2169487 /* QMUISheetPresentationSupports.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QMUISheetPresentationSupports.h; path = QMUIKit/QMUIComponents/QMUISheetPresentation/QMUISheetPresentationSupports.h; sourceTree = ""; }; F123B632FFC891BD7ACF07399B314C59 /* MJRefreshStateTrailer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshStateTrailer.m; path = MJRefresh/Custom/Trailer/MJRefreshStateTrailer.m; sourceTree = ""; }; @@ -1640,7 +1641,7 @@ F59C3DC9BD951FF1F657BADC8BA2E399 /* Images.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = QMUIKit/QMUIResources/Images.xcassets; sourceTree = ""; }; F660573EA68F19AEBD85810F770B605E /* NSNumber+YYAdd.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+YYAdd.m"; path = "YYKit/Base/Foundation/NSNumber+YYAdd.m"; sourceTree = ""; }; F68D082E47A4E2F4A0E530138B6A04DF /* YYSpriteSheetImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YYSpriteSheetImage.h; path = YYKit/Image/YYSpriteSheetImage.h; sourceTree = ""; }; - F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast-Toast */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Toast-Toast"; path = Toast.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Toast.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; F7379BE8F406F3C72A6231E3793B2664 /* YYKVStorage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YYKVStorage.m; path = YYKit/Cache/YYKVStorage.m; sourceTree = ""; }; F79D3EEA43B8DB0BC3CCB347E263757D /* UIActivityIndicatorView+QMUI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+QMUI.m"; path = "QMUIKit/UIKitExtensions/UIActivityIndicatorView+QMUI.m"; sourceTree = ""; }; F7BFCD2C98284A7E9D224C33B48B3F7F /* NSNumber+QMUI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+QMUI.h"; path = "QMUIKit/UIKitExtensions/NSNumber+QMUI.h"; sourceTree = ""; }; @@ -1669,7 +1670,7 @@ FEF639B20DD6F38FF8EBB3EC61143B7D /* UIView+YYAdd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+YYAdd.h"; path = "YYKit/Base/UIKit/UIView+YYAdd.h"; sourceTree = ""; }; FF1C43BE49695E132A0C408E341DA0D7 /* YYKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "YYKit-dummy.m"; sourceTree = ""; }; FFAF591ACE0B050AED1F749C6E2F9444 /* JTVerticalCalendarView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = JTVerticalCalendarView.h; path = JTCalendar/Views/JTVerticalCalendarView.h; sourceTree = ""; }; - FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIKit-QMUIResources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "QMUIKit-QMUIResources"; path = QMUIResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QMUIResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1991,7 +1992,6 @@ 560DBC31EF8D71C0CE5ACE67B84F7467 /* ViewController+MASAdditions.m */, 7BBCFB40EB87A89F94E866E9E40EB17F /* Support Files */, ); - name = Masonry; path = Masonry; sourceTree = ""; }; @@ -2091,7 +2091,6 @@ 6A976840C663BDE1D11F983C55587F48 /* MBProgressHUD.m */, DBF5826E493B9701A1E7031256471519 /* Support Files */, ); - name = MBProgressHUD; path = MBProgressHUD; sourceTree = ""; }; @@ -2156,7 +2155,6 @@ AE83BD689E0100F727209055F1A8CBFE /* JTVerticalCalendarView.m */, 35368B3F77B483377BBB9CCA2D1EDEBA /* Support Files */, ); - name = JTCalendar; path = JTCalendar; sourceTree = ""; }; @@ -2187,7 +2185,6 @@ 76CE4D3A7AE1A8E71D8FD57706767234 /* Resources */, AA5316CB55C7534E376E3DF36109F8F9 /* Support Files */, ); - name = MJExtension; path = MJExtension; sourceTree = ""; }; @@ -2197,7 +2194,6 @@ 30F3A671CAA8FEC94E6F14DD3507038D /* Core */, 8B5DCD800073497DDB7B0F7613A5CDAA /* Support Files */, ); - name = FMDB; path = FMDB; sourceTree = ""; }; @@ -2348,23 +2344,23 @@ 3A74C13BD22F5258125530629A5F8D14 /* Products */ = { isa = PBXGroup; children = ( - 4AF171581392AD234F23BE913F0C22FE /* DateTools */, - A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB */, - 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */, - 95784DA3E052291A415D111DC394DDB0 /* JTCalendar */, - 1FFED36A657123030ABB700256D73F15 /* Masonry */, - 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */, - 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension */, - 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension-MJExtension */, - E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */, - 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */, - B097DD7534E741D5C41838011D755842 /* Pods-iosApp */, - 8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit */, - 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit-QMUIKit */, - FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIKit-QMUIResources */, - 55E0AFD333353D71ACC2207149E879D6 /* Toast */, - F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast-Toast */, - E325DCCD357AF9DF2F7C506424659D7E /* YYKit */, + 4AF171581392AD234F23BE913F0C22FE /* DateTools.framework */, + A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB.framework */, + 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB_Privacy.bundle */, + 95784DA3E052291A415D111DC394DDB0 /* JTCalendar.framework */, + 1FFED36A657123030ABB700256D73F15 /* Masonry.framework */, + 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD.framework */, + 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension.framework */, + 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension.bundle */, + E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh.framework */, + 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh.Privacy.bundle */, + B097DD7534E741D5C41838011D755842 /* Pods_iosApp.framework */, + 8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit.framework */, + 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit.bundle */, + FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIResources.bundle */, + 55E0AFD333353D71ACC2207149E879D6 /* Toast.framework */, + F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast.bundle */, + E325DCCD357AF9DF2F7C506424659D7E /* YYKit.framework */, ); name = Products; sourceTree = ""; @@ -2723,7 +2719,6 @@ EAC932B63F4CB3BC8F70262E06A858DA /* Resources */, 5F6E41DD88E68F94EBA958A6C348C3FD /* Support Files */, ); - name = Toast; path = Toast; sourceTree = ""; }; @@ -2977,7 +2972,6 @@ 1E6EAF556834D0F6AEB4BEA3D04D1AF2 /* no-arc */, 18A559C0F8BE56F8E20591E08CEBD075 /* Support Files */, ); - name = YYKit; path = YYKit; sourceTree = ""; }; @@ -3114,7 +3108,6 @@ BB895CE877FC657AB7E5B8A0035555B2 /* Resources */, C1ACA7E450ABD1AA622C5C3B4B9C682C /* Support Files */, ); - name = DateTools; path = DateTools; sourceTree = ""; }; @@ -3199,7 +3192,6 @@ E6307622D19FF978837C843981D42250 /* Resources */, 0BDACE2DF2DD5FF2526B04F2EA826B75 /* Support Files */, ); - name = MJRefresh; path = MJRefresh; sourceTree = ""; }; @@ -3266,7 +3258,6 @@ AA2F6EEF8EF543F539A97B1DF314F534 /* Resources */, 5B2FC84517AB039B6B9A71D68459A6D9 /* Support Files */, ); - name = QMUIKit; path = QMUIKit; sourceTree = ""; }; @@ -3941,7 +3932,7 @@ ); name = YYKit; productName = YYKit; - productReference = E325DCCD357AF9DF2F7C506424659D7E /* YYKit */; + productReference = E325DCCD357AF9DF2F7C506424659D7E /* YYKit.framework */; productType = "com.apple.product-type.framework"; }; 225FB3DC8F47C58DEEAE716AFE3005BD /* QMUIKit-QMUIKit */ = { @@ -3958,7 +3949,7 @@ ); name = "QMUIKit-QMUIKit"; productName = QMUIKit; - productReference = 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit-QMUIKit */; + productReference = 77DEF480928809EA82047E24B3C57BA7 /* QMUIKit.bundle */; productType = "com.apple.product-type.bundle"; }; 2B1A4F9261E8F421732B6CB1319CCC3E /* DateTools */ = { @@ -3976,7 +3967,7 @@ ); name = DateTools; productName = DateTools; - productReference = 4AF171581392AD234F23BE913F0C22FE /* DateTools */; + productReference = 4AF171581392AD234F23BE913F0C22FE /* DateTools.framework */; productType = "com.apple.product-type.framework"; }; 4D3BA58D0583DF37575CACAB3DDADC85 /* MJExtension */ = { @@ -3995,7 +3986,7 @@ ); name = MJExtension; productName = MJExtension; - productReference = 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension */; + productReference = 2B276B0A79173A1D6E83C9B4FB9A4A57 /* MJExtension.framework */; productType = "com.apple.product-type.framework"; }; 55AF53E6C77A10ED4985E04D74A8878E /* Masonry */ = { @@ -4013,7 +4004,7 @@ ); name = Masonry; productName = Masonry; - productReference = 1FFED36A657123030ABB700256D73F15 /* Masonry */; + productReference = 1FFED36A657123030ABB700256D73F15 /* Masonry.framework */; productType = "com.apple.product-type.framework"; }; 6868056D761E163D10FDAF8CF1C4D9B8 /* MJRefresh */ = { @@ -4032,7 +4023,7 @@ ); name = MJRefresh; productName = MJRefresh; - productReference = E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh */; + productReference = E49D6D248DD1CEE584E6776B9164A1B2 /* MJRefresh.framework */; productType = "com.apple.product-type.framework"; }; 740124B3EE5D14F0E8AF4C9163C297A8 /* QMUIKit */ = { @@ -4052,7 +4043,7 @@ ); name = QMUIKit; productName = QMUIKit; - productReference = 8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit */; + productReference = 8596B7A0C5A3E188061E9EDDAB573FCE /* QMUIKit.framework */; productType = "com.apple.product-type.framework"; }; 7F7C709A913CD2DAF7541A1D8CAC7706 /* JTCalendar */ = { @@ -4070,7 +4061,7 @@ ); name = JTCalendar; productName = JTCalendar; - productReference = 95784DA3E052291A415D111DC394DDB0 /* JTCalendar */; + productReference = 95784DA3E052291A415D111DC394DDB0 /* JTCalendar.framework */; productType = "com.apple.product-type.framework"; }; 82B0A41D3031FF27D78E17B0A9A46FB0 /* MBProgressHUD */ = { @@ -4088,7 +4079,7 @@ ); name = MBProgressHUD; productName = MBProgressHUD; - productReference = 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD */; + productReference = 8B8FAB0D627B17EDE1366984278705D9 /* MBProgressHUD.framework */; productType = "com.apple.product-type.framework"; }; 8592E0E389D40AC17881400ADC67ABC0 /* FMDB */ = { @@ -4107,7 +4098,7 @@ ); name = FMDB; productName = FMDB; - productReference = A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB */; + productReference = A3A80BA70CFB7F75C5391BEBBBA8C9DA /* FMDB.framework */; productType = "com.apple.product-type.framework"; }; 973B9A51B49701F13767694DCAF5C37D /* FMDB-FMDB_Privacy */ = { @@ -4124,7 +4115,7 @@ ); name = "FMDB-FMDB_Privacy"; productName = FMDB_Privacy; - productReference = 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB-FMDB_Privacy */; + productReference = 148D9AC15C4A9777E5ACBB46C03FE218 /* FMDB_Privacy.bundle */; productType = "com.apple.product-type.bundle"; }; 9972C9CC43A34349C035FE6C913368BF /* Toast-Toast */ = { @@ -4141,7 +4132,7 @@ ); name = "Toast-Toast"; productName = Toast; - productReference = F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast-Toast */; + productReference = F6A5F09CA59AF20B5A450FA1B72ECFB5 /* Toast.bundle */; productType = "com.apple.product-type.bundle"; }; A4F02C53B5B4FD6A5A304A7F0FAC06E6 /* QMUIKit-QMUIResources */ = { @@ -4158,7 +4149,7 @@ ); name = "QMUIKit-QMUIResources"; productName = QMUIResources; - productReference = FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIKit-QMUIResources */; + productReference = FFDF743B2D7D655F7364FF1154FFEDE6 /* QMUIResources.bundle */; productType = "com.apple.product-type.bundle"; }; A80A4D6B185BA43BC06122FED0C15F94 /* Toast */ = { @@ -4177,7 +4168,7 @@ ); name = Toast; productName = Toast; - productReference = 55E0AFD333353D71ACC2207149E879D6 /* Toast */; + productReference = 55E0AFD333353D71ACC2207149E879D6 /* Toast.framework */; productType = "com.apple.product-type.framework"; }; B26054DF1DEA11585A231AF6D1D80D5E /* MJRefresh-MJRefresh.Privacy */ = { @@ -4194,7 +4185,7 @@ ); name = "MJRefresh-MJRefresh.Privacy"; productName = MJRefresh.Privacy; - productReference = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh-MJRefresh.Privacy */; + productReference = 7E3097CFEFDA621E9FB0E62009FF87FC /* MJRefresh.Privacy.bundle */; productType = "com.apple.product-type.bundle"; }; B32AF3F43989CBA171BB1FB3957A4509 /* MJExtension-MJExtension */ = { @@ -4211,7 +4202,7 @@ ); name = "MJExtension-MJExtension"; productName = MJExtension; - productReference = 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension-MJExtension */; + productReference = 43EAAD2AB7E6B407E80E95F643F93D22 /* MJExtension.bundle */; productType = "com.apple.product-type.bundle"; }; ED39C638569286489CD697A6C8964146 /* Pods-iosApp */ = { @@ -4240,7 +4231,7 @@ ); name = "Pods-iosApp"; productName = Pods_iosApp; - productReference = B097DD7534E741D5C41838011D755842 /* Pods-iosApp */; + productReference = B097DD7534E741D5C41838011D755842 /* Pods_iosApp.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -4261,8 +4252,6 @@ en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - minimizedProjectReferenceProxies = 0; - preferredProjectObjectVersion = 77; productRefGroup = 3A74C13BD22F5258125530629A5F8D14 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -4316,7 +4305,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 03F2428C9FE1AF75B287A39D46F646FA /* FMDB-FMDB_Privacy in Resources */, + 03F2428C9FE1AF75B287A39D46F646FA /* FMDB_Privacy.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4332,7 +4321,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7873F2F89CD0A435FAB776BC27BFB56A /* MJExtension-MJExtension in Resources */, + 7873F2F89CD0A435FAB776BC27BFB56A /* MJExtension.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4365,7 +4354,7 @@ buildActionMask = 2147483647; files = ( D90DF1376DF5E2EA644313BCD2E03058 /* MJRefresh.bundle in Resources */, - 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh-MJRefresh.Privacy in Resources */, + 327BA3DDA513422E632D3DA4A8FC60EC /* MJRefresh.Privacy.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4380,7 +4369,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D60FD96D6C7D9442E6A71E410301B3E2 /* Toast-Toast in Resources */, + D60FD96D6C7D9442E6A71E410301B3E2 /* Toast.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4396,8 +4385,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 62CFA1DA1F44515EBEFAC8BBDCAFEA86 /* QMUIKit-QMUIKit in Resources */, - D4D4E8BD5F155B6C32FE15226FD3315C /* QMUIKit-QMUIResources in Resources */, + 62CFA1DA1F44515EBEFAC8BBDCAFEA86 /* QMUIKit.bundle in Resources */, + D4D4E8BD5F155B6C32FE15226FD3315C /* QMUIResources.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4431,7 +4420,11 @@ buildActionMask = 2147483647; files = ( ); + inputPaths = ( + ); name = "[CP-User] Build shared"; + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = " if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\"\"\n exit 0\n fi\n set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n"; @@ -5121,7 +5114,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/Masonry/Masonry-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5238,7 +5231,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/DateTools/DateTools-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5488,7 +5481,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/DateTools/DateTools-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5642,7 +5635,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/MBProgressHUD/MBProgressHUD-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5720,7 +5713,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/YYKit/YYKit-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5849,7 +5842,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/Masonry/Masonry-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5888,7 +5881,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/JTCalendar/JTCalendar-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -5943,7 +5936,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/MBProgressHUD/MBProgressHUD-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -6073,7 +6066,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/YYKit/YYKit-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -6194,7 +6187,7 @@ GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = "Target Support Files/JTCalendar/JTCalendar-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 12; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index 0d10da7..380808e 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -9,21 +9,178 @@ /* Begin PBXBuildFile section */ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 204461E92DF06025009AF7B6 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3F1F0F9655FE3CEE26EB7A52 /* Pods_iosApp.framework */; }; + 204461EA2DF06025009AF7B6 /* Pods_iosApp.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3F1F0F9655FE3CEE26EB7A52 /* Pods_iosApp.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 204461ED2DF06034009AF7B6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 204461EC2DF06034009AF7B6 /* Foundation.framework */; }; + 204461EF2DF06041009AF7B6 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 204461EE2DF06041009AF7B6 /* Security.framework */; }; + 204462612DF07D18009AF7B6 /* ReadyDrawObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044623A2DF07D18009AF7B6 /* ReadyDrawObj.m */; }; + 204462622DF07D18009AF7B6 /* DeviceCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462482DF07D18009AF7B6 /* DeviceCenter.m */; }; + 204462632DF07D18009AF7B6 /* ActivityObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462312DF07D18009AF7B6 /* ActivityObj.m */; }; + 204462642DF07D18009AF7B6 /* MJPropertyType.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462242DF07D18009AF7B6 /* MJPropertyType.m */; }; + 204462652DF07D18009AF7B6 /* MJExtensionConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044621C2DF07D18009AF7B6 /* MJExtensionConst.m */; }; + 204462662DF07D18009AF7B6 /* NSObject+MJCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462282DF07D18009AF7B6 /* NSObject+MJCoding.m */; }; + 204462672DF07D18009AF7B6 /* MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462202DF07D18009AF7B6 /* MJProperty.m */; }; + 204462682DF07D18009AF7B6 /* NSObject+MJClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462262DF07D18009AF7B6 /* NSObject+MJClass.m */; }; + 204462692DF07D18009AF7B6 /* NSObject+MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044622C2DF07D18009AF7B6 /* NSObject+MJProperty.m */; }; + 2044626A2DF07D18009AF7B6 /* SleepObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044623F2DF07D18009AF7B6 /* SleepObj.m */; }; + 2044626B2DF07D18009AF7B6 /* MJPropertyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462222DF07D18009AF7B6 /* MJPropertyKey.m */; }; + 2044626C2DF07D18009AF7B6 /* MJFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044621E2DF07D18009AF7B6 /* MJFoundation.m */; }; + 2044626D2DF07D18009AF7B6 /* NSDate+DateTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462182DF07D18009AF7B6 /* NSDate+DateTools.m */; }; + 2044626E2DF07D18009AF7B6 /* NSObject+MJKeyValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044622A2DF07D18009AF7B6 /* NSObject+MJKeyValue.m */; }; + 2044626F2DF07D18009AF7B6 /* OTAHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462352DF07D18009AF7B6 /* OTAHelper.m */; }; + 204462702DF07D18009AF7B6 /* DTTimePeriodChain.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462122DF07D18009AF7B6 /* DTTimePeriodChain.m */; }; + 204462712DF07D18009AF7B6 /* DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044620E2DF07D18009AF7B6 /* DTError.m */; }; + 204462722DF07D18009AF7B6 /* LocalizeTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044624D2DF07D18009AF7B6 /* LocalizeTool.m */; }; + 204462732DF07D18009AF7B6 /* HMUserdefaultUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044624A2DF07D18009AF7B6 /* HMUserdefaultUtil.m */; }; + 204462742DF07D18009AF7B6 /* SleepHrObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044623D2DF07D18009AF7B6 /* SleepHrObj.m */; }; + 204462752DF07D18009AF7B6 /* DTTimePeriodCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462142DF07D18009AF7B6 /* DTTimePeriodCollection.m */; }; + 204462762DF07D18009AF7B6 /* DTTimePeriod.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462102DF07D18009AF7B6 /* DTTimePeriod.m */; }; + 204462772DF07D18009AF7B6 /* OusideBleDiscovery.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462442DF07D18009AF7B6 /* OusideBleDiscovery.m */; }; + 204462782DF07D18009AF7B6 /* NSString+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044622E2DF07D18009AF7B6 /* NSString+MJExtension.m */; }; + 204462792DF07D18009AF7B6 /* LTPHud.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044625C2DF07D18009AF7B6 /* LTPHud.m */; }; + 2044627A2DF07D18009AF7B6 /* NSDate+HMTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462502DF07D18009AF7B6 /* NSDate+HMTools.m */; }; + 2044627B2DF07D18009AF7B6 /* SleepTimeDrawObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462412DF07D18009AF7B6 /* SleepTimeDrawObj.m */; }; + 2044627C2DF07D18009AF7B6 /* NSObject+Tool.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044625E2DF07D18009AF7B6 /* NSObject+Tool.m */; }; + 2044627D2DF07D18009AF7B6 /* DTTimePeriodGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462162DF07D18009AF7B6 /* DTTimePeriodGroup.m */; }; + 2044627E2DF07D18009AF7B6 /* DTConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 2044620C2DF07D18009AF7B6 /* DTConstants.m */; }; + 2044627F2DF07D18009AF7B6 /* OTAImgObj.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462372DF07D18009AF7B6 /* OTAImgObj.m */; }; + 204462802DF07D18009AF7B6 /* SRDeviceInfo+description.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462522DF07D18009AF7B6 /* SRDeviceInfo+description.m */; }; + 204462812DF07D18009AF7B6 /* libRingSDK_2.0.2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2044625A2DF07D18009AF7B6 /* libRingSDK_2.0.2.a */; }; + 2044628A2DF07D95009AF7B6 /* NSString+Check.m in Sources */ = {isa = PBXBuildFile; fileRef = 204462892DF07D95009AF7B6 /* NSString+Check.m */; }; 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; - 41F867E78A3D26751CF26651 /* Pods_iosApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50D4814DBF5E896805BB34AB /* Pods_iosApp.framework */; }; 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 204461EB2DF06025009AF7B6 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 204461EA2DF06025009AF7B6 /* Pods_iosApp.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; - 1C1DFA9EB164DC5B3278E19E /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; + 204461EC2DF06034009AF7B6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 204461EE2DF06041009AF7B6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 204461F02DF06099009AF7B6 /* libRingSDK_2.0.2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libRingSDK_2.0.2.a; path = iosApp/Libs/libRingSDK_2.0.2.a; sourceTree = ""; }; + 204461F12DF07C89009AF7B6 /* iosApp-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "iosApp-Bridging-Header.h"; sourceTree = ""; }; + 204461F42DF07D18009AF7B6 /* SRBLeService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SRBLeService.h; sourceTree = ""; }; + 204461F52DF07D18009AF7B6 /* SRDeviceInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SRDeviceInfo.h; sourceTree = ""; }; + 204461F72DF07D18009AF7B6 /* EcgParamObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EcgParamObj.h; sourceTree = ""; }; + 204461F82DF07D18009AF7B6 /* SrEcgAlgorithmResults.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SrEcgAlgorithmResults.h; sourceTree = ""; }; + 204461F92DF07D18009AF7B6 /* SrEcgData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SrEcgData.h; sourceTree = ""; }; + 204461FB2DF07D18009AF7B6 /* LTSRingSDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LTSRingSDK.h; sourceTree = ""; }; + 204461FC2DF07D18009AF7B6 /* SDKConstant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDKConstant.h; sourceTree = ""; }; + 204461FE2DF07D18009AF7B6 /* DBDevices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBDevices.h; sourceTree = ""; }; + 204461FF2DF07D18009AF7B6 /* DBHeartRate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBHeartRate.h; sourceTree = ""; }; + 204462002DF07D18009AF7B6 /* DBHistoryDataSr03.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBHistoryDataSr03.h; sourceTree = ""; }; + 204462012DF07D18009AF7B6 /* DBHrv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBHrv.h; sourceTree = ""; }; + 204462022DF07D18009AF7B6 /* DBOxygen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBOxygen.h; sourceTree = ""; }; + 204462032DF07D18009AF7B6 /* DBRespiratory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBRespiratory.h; sourceTree = ""; }; + 204462042DF07D18009AF7B6 /* DBSleepData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBSleepData.h; sourceTree = ""; }; + 204462052DF07D18009AF7B6 /* DBSteps.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBSteps.h; sourceTree = ""; }; + 204462062DF07D18009AF7B6 /* DBTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBTables.h; sourceTree = ""; }; + 204462072DF07D18009AF7B6 /* DBThermemoter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBThermemoter.h; sourceTree = ""; }; + 204462082DF07D18009AF7B6 /* DBValueSuper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DBValueSuper.h; sourceTree = ""; }; + 2044620A2DF07D18009AF7B6 /* DateTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DateTools.h; sourceTree = ""; }; + 2044620B2DF07D18009AF7B6 /* DTConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTConstants.h; sourceTree = ""; }; + 2044620C2DF07D18009AF7B6 /* DTConstants.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DTConstants.m; sourceTree = ""; }; + 2044620D2DF07D18009AF7B6 /* DTError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTError.h; sourceTree = ""; }; + 2044620E2DF07D18009AF7B6 /* DTError.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DTError.m; sourceTree = ""; }; + 2044620F2DF07D18009AF7B6 /* DTTimePeriod.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTTimePeriod.h; sourceTree = ""; }; + 204462102DF07D18009AF7B6 /* DTTimePeriod.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DTTimePeriod.m; sourceTree = ""; }; + 204462112DF07D18009AF7B6 /* DTTimePeriodChain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTTimePeriodChain.h; sourceTree = ""; }; + 204462122DF07D18009AF7B6 /* DTTimePeriodChain.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DTTimePeriodChain.m; sourceTree = ""; }; + 204462132DF07D18009AF7B6 /* DTTimePeriodCollection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTTimePeriodCollection.h; sourceTree = ""; }; + 204462142DF07D18009AF7B6 /* DTTimePeriodCollection.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DTTimePeriodCollection.m; sourceTree = ""; }; + 204462152DF07D18009AF7B6 /* DTTimePeriodGroup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTTimePeriodGroup.h; sourceTree = ""; }; + 204462162DF07D18009AF7B6 /* DTTimePeriodGroup.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DTTimePeriodGroup.m; sourceTree = ""; }; + 204462172DF07D18009AF7B6 /* NSDate+DateTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSDate+DateTools.h"; sourceTree = ""; }; + 204462182DF07D18009AF7B6 /* NSDate+DateTools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSDate+DateTools.m"; sourceTree = ""; }; + 2044621A2DF07D18009AF7B6 /* MJExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MJExtension.h; sourceTree = ""; }; + 2044621B2DF07D18009AF7B6 /* MJExtensionConst.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MJExtensionConst.h; sourceTree = ""; }; + 2044621C2DF07D18009AF7B6 /* MJExtensionConst.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MJExtensionConst.m; sourceTree = ""; }; + 2044621D2DF07D18009AF7B6 /* MJFoundation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MJFoundation.h; sourceTree = ""; }; + 2044621E2DF07D18009AF7B6 /* MJFoundation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MJFoundation.m; sourceTree = ""; }; + 2044621F2DF07D18009AF7B6 /* MJProperty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MJProperty.h; sourceTree = ""; }; + 204462202DF07D18009AF7B6 /* MJProperty.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MJProperty.m; sourceTree = ""; }; + 204462212DF07D18009AF7B6 /* MJPropertyKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MJPropertyKey.h; sourceTree = ""; }; + 204462222DF07D18009AF7B6 /* MJPropertyKey.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MJPropertyKey.m; sourceTree = ""; }; + 204462232DF07D18009AF7B6 /* MJPropertyType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MJPropertyType.h; sourceTree = ""; }; + 204462242DF07D18009AF7B6 /* MJPropertyType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MJPropertyType.m; sourceTree = ""; }; + 204462252DF07D18009AF7B6 /* NSObject+MJClass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJClass.h"; sourceTree = ""; }; + 204462262DF07D18009AF7B6 /* NSObject+MJClass.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJClass.m"; sourceTree = ""; }; + 204462272DF07D18009AF7B6 /* NSObject+MJCoding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJCoding.h"; sourceTree = ""; }; + 204462282DF07D18009AF7B6 /* NSObject+MJCoding.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJCoding.m"; sourceTree = ""; }; + 204462292DF07D18009AF7B6 /* NSObject+MJKeyValue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJKeyValue.h"; sourceTree = ""; }; + 2044622A2DF07D18009AF7B6 /* NSObject+MJKeyValue.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJKeyValue.m"; sourceTree = ""; }; + 2044622B2DF07D18009AF7B6 /* NSObject+MJProperty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJProperty.h"; sourceTree = ""; }; + 2044622C2DF07D18009AF7B6 /* NSObject+MJProperty.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJProperty.m"; sourceTree = ""; }; + 2044622D2DF07D18009AF7B6 /* NSString+MJExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+MJExtension.h"; sourceTree = ""; }; + 2044622E2DF07D18009AF7B6 /* NSString+MJExtension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+MJExtension.m"; sourceTree = ""; }; + 204462302DF07D18009AF7B6 /* ActivityObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ActivityObj.h; sourceTree = ""; }; + 204462312DF07D18009AF7B6 /* ActivityObj.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ActivityObj.m; sourceTree = ""; }; + 204462332DF07D18009AF7B6 /* OTAHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTAHeader.h; sourceTree = ""; }; + 204462342DF07D18009AF7B6 /* OTAHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTAHelper.h; sourceTree = ""; }; + 204462352DF07D18009AF7B6 /* OTAHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OTAHelper.m; sourceTree = ""; }; + 204462362DF07D18009AF7B6 /* OTAImgObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTAImgObj.h; sourceTree = ""; }; + 204462372DF07D18009AF7B6 /* OTAImgObj.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OTAImgObj.m; sourceTree = ""; }; + 204462392DF07D18009AF7B6 /* ReadyDrawObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReadyDrawObj.h; sourceTree = ""; }; + 2044623A2DF07D18009AF7B6 /* ReadyDrawObj.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReadyDrawObj.m; sourceTree = ""; }; + 2044623C2DF07D18009AF7B6 /* SleepHrObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SleepHrObj.h; sourceTree = ""; }; + 2044623D2DF07D18009AF7B6 /* SleepHrObj.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SleepHrObj.m; sourceTree = ""; }; + 2044623E2DF07D18009AF7B6 /* SleepObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SleepObj.h; sourceTree = ""; }; + 2044623F2DF07D18009AF7B6 /* SleepObj.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SleepObj.m; sourceTree = ""; }; + 204462402DF07D18009AF7B6 /* SleepTimeDrawObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SleepTimeDrawObj.h; sourceTree = ""; }; + 204462412DF07D18009AF7B6 /* SleepTimeDrawObj.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SleepTimeDrawObj.m; sourceTree = ""; }; + 204462432DF07D18009AF7B6 /* OusideBleDiscovery.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OusideBleDiscovery.h; sourceTree = ""; }; + 204462442DF07D18009AF7B6 /* OusideBleDiscovery.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OusideBleDiscovery.m; sourceTree = ""; }; + 204462462DF07D18009AF7B6 /* ConfigModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfigModel.h; sourceTree = ""; }; + 204462472DF07D18009AF7B6 /* DeviceCenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceCenter.h; sourceTree = ""; }; + 204462482DF07D18009AF7B6 /* DeviceCenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DeviceCenter.m; sourceTree = ""; }; + 204462492DF07D18009AF7B6 /* HMUserdefaultUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HMUserdefaultUtil.h; sourceTree = ""; }; + 2044624A2DF07D18009AF7B6 /* HMUserdefaultUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HMUserdefaultUtil.m; sourceTree = ""; }; + 2044624B2DF07D18009AF7B6 /* LocalizeKeys.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalizeKeys.h; sourceTree = ""; }; + 2044624C2DF07D18009AF7B6 /* LocalizeTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalizeTool.h; sourceTree = ""; }; + 2044624D2DF07D18009AF7B6 /* LocalizeTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LocalizeTool.m; sourceTree = ""; }; + 2044624E2DF07D18009AF7B6 /* NotificationNameHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NotificationNameHeader.h; sourceTree = ""; }; + 2044624F2DF07D18009AF7B6 /* NSDate+HMTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSDate+HMTools.h"; sourceTree = ""; }; + 204462502DF07D18009AF7B6 /* NSDate+HMTools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSDate+HMTools.m"; sourceTree = ""; }; + 204462512DF07D18009AF7B6 /* SRDeviceInfo+description.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SRDeviceInfo+description.h"; sourceTree = ""; }; + 204462522DF07D18009AF7B6 /* SRDeviceInfo+description.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "SRDeviceInfo+description.m"; sourceTree = ""; }; + 204462542DF07D18009AF7B6 /* SleepStageHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SleepStageHeader.h; sourceTree = ""; }; + 204462552DF07D18009AF7B6 /* StagingDataV2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StagingDataV2.h; sourceTree = ""; }; + 204462562DF07D18009AF7B6 /* StagingListObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StagingListObj.h; sourceTree = ""; }; + 204462572DF07D18009AF7B6 /* StagingSubObj.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StagingSubObj.h; sourceTree = ""; }; + 204462592DF07D18009AF7B6 /* Colors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Colors.h; sourceTree = ""; }; + 2044625A2DF07D18009AF7B6 /* libRingSDK_2.0.2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libRingSDK_2.0.2.a; sourceTree = ""; }; + 2044625B2DF07D18009AF7B6 /* LTPHud.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LTPHud.h; sourceTree = ""; }; + 2044625C2DF07D18009AF7B6 /* LTPHud.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LTPHud.m; sourceTree = ""; }; + 2044625D2DF07D18009AF7B6 /* NSObject+Tool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+Tool.h"; sourceTree = ""; }; + 2044625E2DF07D18009AF7B6 /* NSObject+Tool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+Tool.m"; sourceTree = ""; }; + 2044625F2DF07D18009AF7B6 /* TimeUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TimeUtils.h; sourceTree = ""; }; + 204462852DF07D77009AF7B6 /* HMTabbarController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HMTabbarController.h; sourceTree = ""; }; + 204462892DF07D95009AF7B6 /* NSString+Check.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+Check.m"; sourceTree = ""; }; + 2044628B2DF07DCD009AF7B6 /* LTSRingSDK+Desc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "LTSRingSDK+Desc.h"; sourceTree = ""; }; + 2044628E2DF07DF9009AF7B6 /* LoginVc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginVc.h; sourceTree = ""; }; + 204462912DF07E1A009AF7B6 /* MainNav.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainNav.h; sourceTree = ""; }; + 204462972DF07E75009AF7B6 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; }; + 204462AC2DF082FA009AF7B6 /* NSString+Check.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+Check.h"; sourceTree = ""; }; 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - 50D4814DBF5E896805BB34AB /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2BB8C8CFB6051CAD0EEB82BE /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 3F1F0F9655FE3CEE26EB7A52 /* Pods_iosApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iosApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF7B242A565900829871 /* iosApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - ECED503BC33901942998D2B9 /* Pods-iosApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.release.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.release.xcconfig"; sourceTree = ""; }; + 7D35E63CAA7E76EF357D18B8 /* Pods-iosApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iosApp.debug.xcconfig"; path = "Target Support Files/Pods-iosApp/Pods-iosApp.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -31,7 +188,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 41F867E78A3D26751CF26651 /* Pods_iosApp.framework in Frameworks */, + 204461E92DF06025009AF7B6 /* Pods_iosApp.framework in Frameworks */, + 204462812DF07D18009AF7B6 /* libRingSDK_2.0.2.a in Frameworks */, + 204461EF2DF06041009AF7B6 /* Security.framework in Frameworks */, + 204461ED2DF06034009AF7B6 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -46,19 +206,224 @@ path = "Preview Content"; sourceTree = ""; }; - 34ACFE592B3A075F1F4D7F96 /* Frameworks */ = { + 204461F62DF07D18009AF7B6 /* Ble */ = { isa = PBXGroup; children = ( - 50D4814DBF5E896805BB34AB /* Pods_iosApp.framework */, + 204461F42DF07D18009AF7B6 /* SRBLeService.h */, + 204461F52DF07D18009AF7B6 /* SRDeviceInfo.h */, ); - name = Frameworks; + path = Ble; + sourceTree = ""; + }; + 204461FA2DF07D18009AF7B6 /* Ecg */ = { + isa = PBXGroup; + children = ( + 204461F72DF07D18009AF7B6 /* EcgParamObj.h */, + 204461F82DF07D18009AF7B6 /* SrEcgAlgorithmResults.h */, + 204461F92DF07D18009AF7B6 /* SrEcgData.h */, + ); + path = Ecg; + sourceTree = ""; + }; + 204461FD2DF07D18009AF7B6 /* BLESDK */ = { + isa = PBXGroup; + children = ( + 204461F62DF07D18009AF7B6 /* Ble */, + 204461FA2DF07D18009AF7B6 /* Ecg */, + 204461FB2DF07D18009AF7B6 /* LTSRingSDK.h */, + 204461FC2DF07D18009AF7B6 /* SDKConstant.h */, + ); + path = BLESDK; + sourceTree = ""; + }; + 204462092DF07D18009AF7B6 /* DataBase */ = { + isa = PBXGroup; + children = ( + 204461FE2DF07D18009AF7B6 /* DBDevices.h */, + 204461FF2DF07D18009AF7B6 /* DBHeartRate.h */, + 204462002DF07D18009AF7B6 /* DBHistoryDataSr03.h */, + 204462012DF07D18009AF7B6 /* DBHrv.h */, + 204462022DF07D18009AF7B6 /* DBOxygen.h */, + 204462032DF07D18009AF7B6 /* DBRespiratory.h */, + 204462042DF07D18009AF7B6 /* DBSleepData.h */, + 204462052DF07D18009AF7B6 /* DBSteps.h */, + 204462062DF07D18009AF7B6 /* DBTables.h */, + 204462072DF07D18009AF7B6 /* DBThermemoter.h */, + 204462082DF07D18009AF7B6 /* DBValueSuper.h */, + ); + path = DataBase; + sourceTree = ""; + }; + 204462192DF07D18009AF7B6 /* DateTools */ = { + isa = PBXGroup; + children = ( + 2044620A2DF07D18009AF7B6 /* DateTools.h */, + 2044620B2DF07D18009AF7B6 /* DTConstants.h */, + 2044620C2DF07D18009AF7B6 /* DTConstants.m */, + 2044620D2DF07D18009AF7B6 /* DTError.h */, + 2044620E2DF07D18009AF7B6 /* DTError.m */, + 2044620F2DF07D18009AF7B6 /* DTTimePeriod.h */, + 204462102DF07D18009AF7B6 /* DTTimePeriod.m */, + 204462112DF07D18009AF7B6 /* DTTimePeriodChain.h */, + 204462122DF07D18009AF7B6 /* DTTimePeriodChain.m */, + 204462132DF07D18009AF7B6 /* DTTimePeriodCollection.h */, + 204462142DF07D18009AF7B6 /* DTTimePeriodCollection.m */, + 204462152DF07D18009AF7B6 /* DTTimePeriodGroup.h */, + 204462162DF07D18009AF7B6 /* DTTimePeriodGroup.m */, + 204462172DF07D18009AF7B6 /* NSDate+DateTools.h */, + 204462182DF07D18009AF7B6 /* NSDate+DateTools.m */, + ); + path = DateTools; + sourceTree = ""; + }; + 2044622F2DF07D18009AF7B6 /* MJExtension */ = { + isa = PBXGroup; + children = ( + 2044621A2DF07D18009AF7B6 /* MJExtension.h */, + 2044621B2DF07D18009AF7B6 /* MJExtensionConst.h */, + 2044621C2DF07D18009AF7B6 /* MJExtensionConst.m */, + 2044621D2DF07D18009AF7B6 /* MJFoundation.h */, + 2044621E2DF07D18009AF7B6 /* MJFoundation.m */, + 2044621F2DF07D18009AF7B6 /* MJProperty.h */, + 204462202DF07D18009AF7B6 /* MJProperty.m */, + 204462212DF07D18009AF7B6 /* MJPropertyKey.h */, + 204462222DF07D18009AF7B6 /* MJPropertyKey.m */, + 204462232DF07D18009AF7B6 /* MJPropertyType.h */, + 204462242DF07D18009AF7B6 /* MJPropertyType.m */, + 204462252DF07D18009AF7B6 /* NSObject+MJClass.h */, + 204462262DF07D18009AF7B6 /* NSObject+MJClass.m */, + 204462272DF07D18009AF7B6 /* NSObject+MJCoding.h */, + 204462282DF07D18009AF7B6 /* NSObject+MJCoding.m */, + 204462292DF07D18009AF7B6 /* NSObject+MJKeyValue.h */, + 2044622A2DF07D18009AF7B6 /* NSObject+MJKeyValue.m */, + 2044622B2DF07D18009AF7B6 /* NSObject+MJProperty.h */, + 2044622C2DF07D18009AF7B6 /* NSObject+MJProperty.m */, + 2044622D2DF07D18009AF7B6 /* NSString+MJExtension.h */, + 2044622E2DF07D18009AF7B6 /* NSString+MJExtension.m */, + ); + path = MJExtension; + sourceTree = ""; + }; + 204462322DF07D18009AF7B6 /* AboutActivity */ = { + isa = PBXGroup; + children = ( + 204462302DF07D18009AF7B6 /* ActivityObj.h */, + 204462312DF07D18009AF7B6 /* ActivityObj.m */, + ); + path = AboutActivity; + sourceTree = ""; + }; + 204462382DF07D18009AF7B6 /* AboutOta */ = { + isa = PBXGroup; + children = ( + 204462332DF07D18009AF7B6 /* OTAHeader.h */, + 204462342DF07D18009AF7B6 /* OTAHelper.h */, + 204462352DF07D18009AF7B6 /* OTAHelper.m */, + 204462362DF07D18009AF7B6 /* OTAImgObj.h */, + 204462372DF07D18009AF7B6 /* OTAImgObj.m */, + ); + path = AboutOta; + sourceTree = ""; + }; + 2044623B2DF07D18009AF7B6 /* AboutReady */ = { + isa = PBXGroup; + children = ( + 204462392DF07D18009AF7B6 /* ReadyDrawObj.h */, + 2044623A2DF07D18009AF7B6 /* ReadyDrawObj.m */, + ); + path = AboutReady; + sourceTree = ""; + }; + 204462422DF07D18009AF7B6 /* AboutSleep */ = { + isa = PBXGroup; + children = ( + 2044623C2DF07D18009AF7B6 /* SleepHrObj.h */, + 2044623D2DF07D18009AF7B6 /* SleepHrObj.m */, + 2044623E2DF07D18009AF7B6 /* SleepObj.h */, + 2044623F2DF07D18009AF7B6 /* SleepObj.m */, + 204462402DF07D18009AF7B6 /* SleepTimeDrawObj.h */, + 204462412DF07D18009AF7B6 /* SleepTimeDrawObj.m */, + ); + path = AboutSleep; + sourceTree = ""; + }; + 204462452DF07D18009AF7B6 /* OusideBle */ = { + isa = PBXGroup; + children = ( + 204462432DF07D18009AF7B6 /* OusideBleDiscovery.h */, + 204462442DF07D18009AF7B6 /* OusideBleDiscovery.m */, + ); + path = OusideBle; + sourceTree = ""; + }; + 204462532DF07D18009AF7B6 /* Modules */ = { + isa = PBXGroup; + children = ( + 204462322DF07D18009AF7B6 /* AboutActivity */, + 204462382DF07D18009AF7B6 /* AboutOta */, + 2044623B2DF07D18009AF7B6 /* AboutReady */, + 204462422DF07D18009AF7B6 /* AboutSleep */, + 204462452DF07D18009AF7B6 /* OusideBle */, + 204462462DF07D18009AF7B6 /* ConfigModel.h */, + 204462472DF07D18009AF7B6 /* DeviceCenter.h */, + 204462482DF07D18009AF7B6 /* DeviceCenter.m */, + 204462492DF07D18009AF7B6 /* HMUserdefaultUtil.h */, + 2044624A2DF07D18009AF7B6 /* HMUserdefaultUtil.m */, + 2044624B2DF07D18009AF7B6 /* LocalizeKeys.h */, + 2044624C2DF07D18009AF7B6 /* LocalizeTool.h */, + 2044624D2DF07D18009AF7B6 /* LocalizeTool.m */, + 2044624E2DF07D18009AF7B6 /* NotificationNameHeader.h */, + 2044624F2DF07D18009AF7B6 /* NSDate+HMTools.h */, + 204462502DF07D18009AF7B6 /* NSDate+HMTools.m */, + 204462512DF07D18009AF7B6 /* SRDeviceInfo+description.h */, + 204462522DF07D18009AF7B6 /* SRDeviceInfo+description.m */, + ); + path = Modules; + sourceTree = ""; + }; + 204462582DF07D18009AF7B6 /* SleepStagingV2 */ = { + isa = PBXGroup; + children = ( + 204462542DF07D18009AF7B6 /* SleepStageHeader.h */, + 204462552DF07D18009AF7B6 /* StagingDataV2.h */, + 204462562DF07D18009AF7B6 /* StagingListObj.h */, + 204462572DF07D18009AF7B6 /* StagingSubObj.h */, + ); + path = SleepStagingV2; + sourceTree = ""; + }; + 204462602DF07D18009AF7B6 /* Libs */ = { + isa = PBXGroup; + children = ( + 204462972DF07E75009AF7B6 /* PrefixHeader.pch */, + 204461FD2DF07D18009AF7B6 /* BLESDK */, + 204462092DF07D18009AF7B6 /* DataBase */, + 204462192DF07D18009AF7B6 /* DateTools */, + 2044622F2DF07D18009AF7B6 /* MJExtension */, + 204462532DF07D18009AF7B6 /* Modules */, + 204462582DF07D18009AF7B6 /* SleepStagingV2 */, + 204462592DF07D18009AF7B6 /* Colors.h */, + 2044625A2DF07D18009AF7B6 /* libRingSDK_2.0.2.a */, + 2044625B2DF07D18009AF7B6 /* LTPHud.h */, + 2044625C2DF07D18009AF7B6 /* LTPHud.m */, + 2044625D2DF07D18009AF7B6 /* NSObject+Tool.h */, + 2044625E2DF07D18009AF7B6 /* NSObject+Tool.m */, + 2044625F2DF07D18009AF7B6 /* TimeUtils.h */, + 204462852DF07D77009AF7B6 /* HMTabbarController.h */, + 204462892DF07D95009AF7B6 /* NSString+Check.m */, + 2044628B2DF07DCD009AF7B6 /* LTSRingSDK+Desc.h */, + 2044628E2DF07DF9009AF7B6 /* LoginVc.h */, + 204462912DF07E1A009AF7B6 /* MainNav.h */, + 204462AC2DF082FA009AF7B6 /* NSString+Check.h */, + ); + path = Libs; sourceTree = ""; }; 6659EF739E744394EC711C80 /* Pods */ = { isa = PBXGroup; children = ( - 1C1DFA9EB164DC5B3278E19E /* Pods-iosApp.debug.xcconfig */, - ECED503BC33901942998D2B9 /* Pods-iosApp.release.xcconfig */, + 7D35E63CAA7E76EF357D18B8 /* Pods-iosApp.debug.xcconfig */, + 2BB8C8CFB6051CAD0EEB82BE /* Pods-iosApp.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -69,7 +434,7 @@ 7555FF7D242A565900829871 /* iosApp */, 7555FF7C242A565900829871 /* Products */, 6659EF739E744394EC711C80 /* Pods */, - 34ACFE592B3A075F1F4D7F96 /* Frameworks */, + 7F492F9D678DB5C178EE9E8B /* Frameworks */, ); sourceTree = ""; }; @@ -89,10 +454,23 @@ 7555FF8C242A565B00829871 /* Info.plist */, 2152FB032600AC8F00CF470E /* iOSApp.swift */, 058557D7273AAEEB004C7B11 /* Preview Content */, + 204461F12DF07C89009AF7B6 /* iosApp-Bridging-Header.h */, + 204462602DF07D18009AF7B6 /* Libs */, ); path = iosApp; sourceTree = ""; }; + 7F492F9D678DB5C178EE9E8B /* Frameworks */ = { + isa = PBXGroup; + children = ( + 204461F02DF06099009AF7B6 /* libRingSDK_2.0.2.a */, + 204461EE2DF06041009AF7B6 /* Security.framework */, + 204461EC2DF06034009AF7B6 /* Foundation.framework */, + 3F1F0F9655FE3CEE26EB7A52 /* Pods_iosApp.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -100,12 +478,13 @@ isa = PBXNativeTarget; buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; buildPhases = ( - BF04EABC7586D2B239E221C0 /* [CP] Check Pods Manifest.lock */, + 5FE676F1E9B776E5AB187D7D /* [CP] Check Pods Manifest.lock */, 7555FF77242A565900829871 /* Sources */, 7555FF79242A565900829871 /* Resources */, 708C81AE081D7C5D6DEC1EE0 /* Frameworks */, - 7CBF11B78E4F93CAB7A07BF6 /* [CP] Copy Pods Resources */, - E73A1ECB2BDAB9AAC398F036 /* [CP] Embed Pods Frameworks */, + 9126EA7ACCFC690C91067081 /* [CP] Embed Pods Frameworks */, + 204461EB2DF06025009AF7B6 /* Embed Frameworks */, + E2756170C1E36A35E5DCC589 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -128,6 +507,7 @@ TargetAttributes = { 7555FF7A242A565900829871 = { CreatedOnToolsVersion = 11.3.1; + LastSwiftMigration = 1630; }; }; }; @@ -162,60 +542,68 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 7CBF11B78E4F93CAB7A07BF6 /* [CP] Copy Pods Resources */ = { + 5FE676F1E9B776E5AB187D7D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - BF04EABC7586D2B239E221C0 /* [CP] Check Pods Manifest.lock */ = { + 9126EA7ACCFC690C91067081 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iosApp-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - E73A1ECB2BDAB9AAC398F036 /* [CP] Embed Pods Frameworks */ = { + E2756170C1E36A35E5DCC589 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -226,6 +614,39 @@ buildActionMask = 2147483647; files = ( 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, + 204462612DF07D18009AF7B6 /* ReadyDrawObj.m in Sources */, + 204462622DF07D18009AF7B6 /* DeviceCenter.m in Sources */, + 204462632DF07D18009AF7B6 /* ActivityObj.m in Sources */, + 204462642DF07D18009AF7B6 /* MJPropertyType.m in Sources */, + 204462652DF07D18009AF7B6 /* MJExtensionConst.m in Sources */, + 204462662DF07D18009AF7B6 /* NSObject+MJCoding.m in Sources */, + 204462672DF07D18009AF7B6 /* MJProperty.m in Sources */, + 204462682DF07D18009AF7B6 /* NSObject+MJClass.m in Sources */, + 204462692DF07D18009AF7B6 /* NSObject+MJProperty.m in Sources */, + 2044626A2DF07D18009AF7B6 /* SleepObj.m in Sources */, + 2044626B2DF07D18009AF7B6 /* MJPropertyKey.m in Sources */, + 2044626C2DF07D18009AF7B6 /* MJFoundation.m in Sources */, + 2044626D2DF07D18009AF7B6 /* NSDate+DateTools.m in Sources */, + 2044626E2DF07D18009AF7B6 /* NSObject+MJKeyValue.m in Sources */, + 2044626F2DF07D18009AF7B6 /* OTAHelper.m in Sources */, + 204462702DF07D18009AF7B6 /* DTTimePeriodChain.m in Sources */, + 204462712DF07D18009AF7B6 /* DTError.m in Sources */, + 204462722DF07D18009AF7B6 /* LocalizeTool.m in Sources */, + 204462732DF07D18009AF7B6 /* HMUserdefaultUtil.m in Sources */, + 204462742DF07D18009AF7B6 /* SleepHrObj.m in Sources */, + 2044628A2DF07D95009AF7B6 /* NSString+Check.m in Sources */, + 204462752DF07D18009AF7B6 /* DTTimePeriodCollection.m in Sources */, + 204462762DF07D18009AF7B6 /* DTTimePeriod.m in Sources */, + 204462772DF07D18009AF7B6 /* OusideBleDiscovery.m in Sources */, + 204462782DF07D18009AF7B6 /* NSString+MJExtension.m in Sources */, + 204462792DF07D18009AF7B6 /* LTPHud.m in Sources */, + 2044627A2DF07D18009AF7B6 /* NSDate+HMTools.m in Sources */, + 2044627B2DF07D18009AF7B6 /* SleepTimeDrawObj.m in Sources */, + 2044627C2DF07D18009AF7B6 /* NSObject+Tool.m in Sources */, + 2044627D2DF07D18009AF7B6 /* DTTimePeriodGroup.m in Sources */, + 2044627E2DF07D18009AF7B6 /* DTConstants.m in Sources */, + 2044627F2DF07D18009AF7B6 /* OTAImgObj.m in Sources */, + 204462802DF07D18009AF7B6 /* SRDeviceInfo+description.m in Sources */, 7555FF83242A565900829871 /* ContentView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -284,7 +705,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -339,7 +760,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -351,21 +772,43 @@ }; 7555FFA6242A565B00829871 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1C1DFA9EB164DC5B3278E19E /* Pods-iosApp.debug.xcconfig */; + baseConfigurationReference = 7D35E63CAA7E76EF357D18B8 /* Pods-iosApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = NLHG3FFX4L; ENABLE_PREVIEWS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "SQLITE_HAS_CODEC=1", + ); INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + /Users/anranyusheng/Documents/works/Ring/iosApp/iosApp/Libs, + "$(PROJECT_DIR)/iosApp/Libs", + ); + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC", + "-DSQLITE_TEMP_STORE=3", + "-DSQLCIPHER_CRYPTO_CC", + "-DNDEBUG", + ); + OTHER_LDFLAGS = ( + "-lRingSDK_2.0.2", + "$(inherited)", + ); PRODUCT_BUNDLE_IDENTIFIER = moe.uni.app; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "iosApp/iosApp-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -373,9 +816,10 @@ }; 7555FFA7242A565B00829871 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ECED503BC33901942998D2B9 /* Pods-iosApp.release.xcconfig */; + baseConfigurationReference = 2BB8C8CFB6051CAD0EEB82BE /* Pods-iosApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = NLHG3FFX4L; @@ -386,8 +830,23 @@ "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + /Users/anranyusheng/Documents/works/Ring/iosApp/iosApp/Libs, + "$(PROJECT_DIR)/iosApp/Libs", + ); + OTHER_CFLAGS = ( + "-DSQLITE_HAS_CODEC", + "-DSQLITE_TEMP_STORE=3", + "-DSQLCIPHER_CRYPTO_CC", + "-DNDEBUG", + ); + OTHER_LDFLAGS = ( + "-lRingSDK_2.0.2", + "$(inherited)", + ); PRODUCT_BUNDLE_IDENTIFIER = moe.uni.app; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "iosApp/iosApp-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/iosApp/iosApp/Libs/HMTabbarController.h b/iosApp/iosApp/Libs/HMTabbarController.h new file mode 100755 index 0000000..20c7e4e --- /dev/null +++ b/iosApp/iosApp/Libs/HMTabbarController.h @@ -0,0 +1,33 @@ +// +// LNCTabbarController.h +// +// +// Created by lanzhongping on 2020/11/4. +// Copyright © 2020 linktop. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface HMTabbarController : UITabBarController + + +-(void)createTabs; + +/// 添加VC +/// @param vc 控制器 +/// @param title tabbaritem标题 +/// @param imgNm tabbaritem普通图片 +/// @param selecImgNm tabbaritem选中图片 +- (void)addSubControllers:(UIViewController *)vc + Title:(NSString * __nullable)title + ImageName:(NSString *)imgNm + SelectImagName:(NSString *)selecImgNm; + +@property(copy, nonatomic) void (^viewdidAppearBLK)(void); + + +@end + +NS_ASSUME_NONNULL_END diff --git a/iosApp/iosApp/Libs/LTPHud.m b/iosApp/iosApp/Libs/LTPHud.m index 9d0f1b9..9683c1b 100755 --- a/iosApp/iosApp/Libs/LTPHud.m +++ b/iosApp/iosApp/Libs/LTPHud.m @@ -7,7 +7,7 @@ // #import "LTPHud.h" -#import "AppDelegate.h" +//#import "AppDelegate.h" #import @@ -32,7 +32,7 @@ { self = [super init]; if (self) { - self.baseView = ((AppDelegate *)[UIApplication sharedApplication].delegate).window; +// self.baseView = ((AppDelegate *)[UIApplication sharedApplication].delegate).window; self.mbpHud = [[MBProgressHUD alloc]initWithView:self.baseView]; self.mbpHud.minShowTime = 1.0f; self.mbpHud.removeFromSuperViewOnHide = YES; diff --git a/iosApp/iosApp/Libs/LTSRingSDK+Desc.h b/iosApp/iosApp/Libs/LTSRingSDK+Desc.h new file mode 100644 index 0000000..88db9a5 --- /dev/null +++ b/iosApp/iosApp/Libs/LTSRingSDK+Desc.h @@ -0,0 +1,16 @@ +// +// LTSRingSDK+Desc.h +// CareRingApp +// +// Created by Linktop on 2023/8/1. +// + +#import "LTSRingSDK.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface LTSRingSDK (Desc) +-(NSString *)cmdErrorDesc:(EXCUTED_CMD)cmd; +@end + +NS_ASSUME_NONNULL_END diff --git a/iosApp/iosApp/Libs/LoginVc.h b/iosApp/iosApp/Libs/LoginVc.h new file mode 100644 index 0000000..71aecba --- /dev/null +++ b/iosApp/iosApp/Libs/LoginVc.h @@ -0,0 +1,17 @@ +// +// LoginVc.h +// CareRingApp +// +// Created by Linktop on 2022/6/6. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +@interface LoginVc : UIViewController + +@property(strong, nonatomic)NSString *cacheAccount; // 退出登录缓存使用 + +@end + +NS_ASSUME_NONNULL_END diff --git a/iosApp/iosApp/Libs/MainNav.h b/iosApp/iosApp/Libs/MainNav.h new file mode 100644 index 0000000..33ba6e3 --- /dev/null +++ b/iosApp/iosApp/Libs/MainNav.h @@ -0,0 +1,18 @@ +// +// MainNav.h +// +// +// Created by Linktop on 2021/4/20. +// Copyright © 2021 linktop. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MainNav : UINavigationController +-(instancetype)initWithRootViewController:(UIViewController *)rootViewController ShowNavBar:(BOOL)show; + +@end + +NS_ASSUME_NONNULL_END diff --git a/iosApp/iosApp/Libs/Modules/AboutActivity/ActivityObj.m b/iosApp/iosApp/Libs/Modules/AboutActivity/ActivityObj.m index 8e97770..9ab65ed 100644 --- a/iosApp/iosApp/Libs/Modules/AboutActivity/ActivityObj.m +++ b/iosApp/iosApp/Libs/Modules/AboutActivity/ActivityObj.m @@ -7,7 +7,7 @@ #import "ActivityObj.h" #import "ConfigModel.h" -#import "BarDrawView.h" +//#import "BarDrawView.h" //#import "tools.h" #import "../../DataBase/DBTables.h" #import "TimeUtils.h" @@ -211,9 +211,9 @@ STRONG_SELF NSMutableArray *objArray = [NSMutableArray arrayWithCapacity:24]; for (int i = 0; i < 24; i++) { - BarDrawObj * drwObj = [[BarDrawObj alloc]init]; - drwObj.hour = i; - [objArray addObject:drwObj]; +// BarDrawObj * drwObj = [[BarDrawObj alloc]init]; +// drwObj.hour = i; +// [objArray addObject:drwObj]; } __block NSNumber *allMax = results.firstObject.value; @@ -221,7 +221,7 @@ [results enumerateObjectsUsingBlock:^(DBHeartRate * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { NSInteger hour = [obj.time hour]; - [objArray[hour].valueArrayOfHour addObject:obj.value]; +// [objArray[hour].valueArrayOfHour addObject:obj.value]; if ([obj.value intValue] > allMax.intValue) { @@ -232,7 +232,7 @@ } }]; for (BarDrawObj *obj in objArray) { - [obj sortValueAsc:YES]; +// [obj sortValueAsc:YES]; } strongSelf.allMaxValue = allMax; diff --git a/iosApp/iosApp/Libs/Modules/AboutOta/OTAImgObj.m b/iosApp/iosApp/Libs/Modules/AboutOta/OTAImgObj.m index 92e05ba..b9b0063 100644 --- a/iosApp/iosApp/Libs/Modules/AboutOta/OTAImgObj.m +++ b/iosApp/iosApp/Libs/Modules/AboutOta/OTAImgObj.m @@ -77,7 +77,7 @@ NSString * const IMG_FLODER = @"devImgs"; NSURLSessionDownloadTask * downloadTask = [_session downloadTaskWithRequest:request completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) { STRONG_SELF_NOT_CHECK - DebugNSLog(@"文件URL: %@", location); +// DebugNSLog(@"文件URL: %@", location); @@ -90,7 +90,7 @@ NSString * const IMG_FLODER = @"devImgs"; NSError * copyError; [fileMgr moveItemAtPath:location.path toPath:file error:©Error]; - DebugNSLog(@"拷贝文件URL: %@", file); +// DebugNSLog(@"拷贝文件URL: %@", file); strongSelf.sandBoxFileUrl = [NSURL fileURLWithPath:file]; if (strongSelf.downLoadCBK) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -111,7 +111,7 @@ NSString * const IMG_FLODER = @"devImgs"; didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler { - DebugNSLog(@"本次请求大小 %lld", response.expectedContentLength); +// DebugNSLog(@"本次请求大小 %lld", response.expectedContentLength); completionHandler(NSURLSessionResponseAllow); @@ -120,7 +120,7 @@ NSString * const IMG_FLODER = @"devImgs"; //02 接收服务器返回的数据 (可能调用多次) -(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { - DebugNSLog(@"下载 size:%lu", (unsigned long)data.length); +// DebugNSLog(@"下载 size:%lu", (unsigned long)data.length); } @@ -128,7 +128,7 @@ NSString * const IMG_FLODER = @"devImgs"; //03 结束 -(void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session { - DebugNSLog(@"下载结束!"); +// DebugNSLog(@"下载结束!"); } @end diff --git a/iosApp/iosApp/Libs/Modules/DeviceCenter.m b/iosApp/iosApp/Libs/Modules/DeviceCenter.m index 07050b3..fbf1ffe 100644 --- a/iosApp/iosApp/Libs/Modules/DeviceCenter.m +++ b/iosApp/iosApp/Libs/Modules/DeviceCenter.m @@ -14,7 +14,7 @@ #import "NSString+Check.h" #import "AboutOta/OTAHelper.h" -#import "../Libs/OusideBle/OusideBleDiscovery.h" +#import "OusideBleDiscovery.h" #import "LTSRingSDK+Desc.h" #import "SRDeviceInfo+description.h" @@ -132,7 +132,7 @@ NSString * const CP_NAME = @"BlackShark"; WEAK_SELF [perphelArray enumerateObjectsUsingBlock:^(SRBLeService * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { STRONG_SELF - DebugNSLog(@"found devcie: %@", obj.macAddress); +// DebugNSLog(@"found devcie: %@", obj.macAddress); if ([obj.macAddress isEqual:strongSelf.bindDevice.macAddress]) { // 自动连接 [strongSelf connectDevice:obj]; @@ -175,7 +175,7 @@ NSString * const CP_NAME = @"BlackShark"; -(void)startBleScan { - DebugNSLog(@"ble CBManagerState: %ld", (long)self.sdk.bleCenterManagerState); +// DebugNSLog(@"ble CBManagerState: %ld", (long)self.sdk.bleCenterManagerState); if (self.isCustomBleManage) { [self.ousideBleManager startScanning]; } else { @@ -438,12 +438,12 @@ NSString * const CP_NAME = @"BlackShark"; case CBManagerStateUnsupported:// 不支持蓝牙 { //不支持 - DebugNSLog(@"StateChange = CBManagerStateUnsupported"); +// DebugNSLog(@"StateChange = CBManagerStateUnsupported"); } break; case CBManagerStatePoweredOff:// 未启动 { - DebugNSLog(@"StateChange = CBManagerStatePoweredOff"); +// DebugNSLog(@"StateChange = CBManagerStatePoweredOff"); } @@ -451,27 +451,27 @@ NSString * const CP_NAME = @"BlackShark"; case CBManagerStateUnauthorized: // 未授权 { /* Tell user the app is not allowed. */ - DebugNSLog(@"StateChange = CBManagerStateUnauthorized"); +// DebugNSLog(@"StateChange = CBManagerStateUnauthorized"); } break; case CBManagerStateUnknown: // 未知 { /* Bad news, let's wait for another event. */ - DebugNSLog(@"StateChange = CBManagerStateUnknown"); +// DebugNSLog(@"StateChange = CBManagerStateUnknown"); } break; case CBManagerStatePoweredOn:// 开启 { - DebugNSLog(@"StateChange = CBManagerStatePoweredOn"); +// DebugNSLog(@"StateChange = CBManagerStatePoweredOn"); isOn = YES; } break; case CBManagerStateResetting:// 重置中 { - DebugNSLog(@"StateChange = CBManagerStateResetting"); +// DebugNSLog(@"StateChange = CBManagerStateResetting"); break; } @@ -489,11 +489,11 @@ NSString * const CP_NAME = @"BlackShark"; - (void)srBleCmdExcute:(EXCUTED_CMD)cmd Succ:(BOOL)isSucc Reason:(CMD_EXECTE_ERROR_REASON)reason { - DebugNSLog(@"Command 0x%.2X - %@ ,Exec result %@ , Fail reason:%lu -- %@", - cmd, - [self.sdk cmdErrorDesc:cmd] , - isSucc ? @"succ" :@"fail", (unsigned long)reason, - [SRDeviceInfo descryOfErrorReason:reason] ); +// DebugNSLog(@"Command 0x%.2X - %@ ,Exec result %@ , Fail reason:%lu -- %@", +// cmd, +// [self.sdk cmdErrorDesc:cmd] , +// isSucc ? @"succ" :@"fail", (unsigned long)reason, +// [SRDeviceInfo descryOfErrorReason:reason] ); if ([self.appDataDelegate respondsToSelector:@selector(srBleCmdExcute:Succ:Reason:)]) { [self.appDataDelegate srBleCmdExcute:cmd Succ:isSucc Reason:reason]; @@ -570,7 +570,7 @@ NSString * const CP_NAME = @"BlackShark"; -(void)srBleMeasureDuration:(NSInteger)seconds { self.currentDevice.hrMeasureDurations = seconds; - DebugNSLog(@"测量时长 %ld s", (long)seconds); +// DebugNSLog(@"测量时长 %ld s", (long)seconds); if ([self.appDataDelegate respondsToSelector:@selector(srBleMeasureDuration:)]){ [self.appDataDelegate srBleMeasureDuration:seconds]; } @@ -684,7 +684,7 @@ NSString * const CP_NAME = @"BlackShark"; } - (void)srBleSN:(nonnull NSString *)sn { - DebugNSLog(@"sn:%@", sn); +// DebugNSLog(@"sn:%@", sn); if (self.bindDevice) { self.bindDevice.otherInfo.sn = sn; [self.bindDevice updateOtherInfo:^(BOOL succ) { @@ -721,7 +721,7 @@ NSString * const CP_NAME = @"BlackShark"; default: break; } - DebugNSLog(@"ble cmd sending error: %@ when calling %@", errorDesc,methodNm); +// DebugNSLog(@"ble cmd sending error: %@ when calling %@", errorDesc,methodNm); if ([self.appDataDelegate respondsToSelector:@selector(srBleFunctionErrorCallBack:MehthodName:)]) { [self.appDataDelegate srBleFunctionErrorCallBack:error MehthodName:methodNm]; @@ -812,7 +812,7 @@ NSString * const CP_NAME = @"BlackShark"; WEAK_SELF [[OTAHelper Instance] otaQueryUpgrade:OTA_HOST Cat:catDwn CBK:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error, NSDictionary * _Nullable resultDict) { STRONG_SELF - DebugNSLog(@"ota 请求 %@", resultDict); +// DebugNSLog(@"ota 请求 %@", resultDict); BOOL needUpdate = [[DeviceCenter instance] checkNeedUpdate:resultDict[@"ver"]]; if (needUpdate) { if (resultDict) { diff --git a/iosApp/iosApp/Libs/Modules/OusideBle/OusideBleDiscovery.m b/iosApp/iosApp/Libs/Modules/OusideBle/OusideBleDiscovery.m index a9e3456..4ee4479 100755 --- a/iosApp/iosApp/Libs/Modules/OusideBle/OusideBleDiscovery.m +++ b/iosApp/iosApp/Libs/Modules/OusideBle/OusideBleDiscovery.m @@ -139,7 +139,7 @@ if (service.macAddress != nil) { - DebugNSLog(@"ouside scan add %@ %@", service.advDataLocalName, service.macAddress); +// DebugNSLog(@"ouside scan add %@ %@", service.advDataLocalName, service.macAddress); [self addToFoundService:service AdvertisementData:advertisementData]; if ([_scanDelegate respondsToSelector:@selector(srScanDeviceDidRefresh:)]) { @@ -219,7 +219,7 @@ if (_currentService.peripheral.state == CBPeripheralStateConnected) { [_centralManager cancelPeripheralConnection:_currentService.peripheral]; - DebugNSLog(@"主动断开 %s %d", __func__, __LINE__); +// DebugNSLog(@"/*主*/动断开 %s %d", __func__, __LINE__); } _currentService = keyService; @@ -256,7 +256,7 @@ } if (keyService.peripheral) { [_centralManager cancelPeripheralConnection:keyService.peripheral]; - DebugNSLog(@"主动断开 %s %d", __func__, __LINE__); +// DebugNSLog(@"主动断开 %s %d", __func__, __LINE__); } _currentService = nil; @@ -312,7 +312,7 @@ - (void) centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error { - DebugNSLog(@"Attempted connection to peripheral %@ failed: %@", [peripheral name], [error localizedDescription]); +// DebugNSLog(@"Attempted connection to peripheral %@ failed: %@", [peripheral name], [error localizedDescription]); } @@ -323,7 +323,7 @@ if ([_currentService peripheral] != peripheral) { return; } - DebugNSLog(@"异常断开 error:%@", error); +// DebugNSLog(@"异常断开 error:%@", error); //异常断开的动画 //3.通知代理 if ([self.scanDelegate respondsToSelector:@selector(srBleDidDisconnectPeripheral:)]) { @@ -341,7 +341,7 @@ if (_currentService.peripheral.state == CBPeripheralStateConnected) { [_centralManager cancelPeripheralConnection:_currentService.peripheral]; - DebugNSLog(@"主动断开 %s %d", __func__, __LINE__); +// DebugNSLog(@"主动断开 %s %d", __func__, __LINE__); _currentService = nil; } @@ -444,11 +444,11 @@ } if (manufacturerData.length >= 8) { - DebugNSLog(@"advName:%@ color:%d,size:%d,isCharging:%d, batteryLevel:%d%% ", advDataLocalName, deviceColor, deviceSize, isCharging,batteryLevel); +// DebugNSLog(@"advName:%@ color:%d,size:%d,isCharging:%d, batteryLevel:%d%% ", advDataLocalName, deviceColor, deviceSize, isCharging,batteryLevel); return; } if (manufacturerData.length >= 6) { - DebugNSLog(@"advName:%@ color:%d,size:%d", advDataLocalName, deviceColor, deviceSize); +// DebugNSLog(@"advName:%@ color:%d,size:%d", advDataLocalName, deviceColor, deviceSize); } } diff --git a/iosApp/iosApp/Libs/NAVTemplateViewController.m b/iosApp/iosApp/Libs/NAVTemplateViewController.m new file mode 100644 index 0000000..bbaeec1 --- /dev/null +++ b/iosApp/iosApp/Libs/NAVTemplateViewController.m @@ -0,0 +1,162 @@ +// +// NAVTemplateViewController.m +// +// +// Created by Linktop on 2021/4/15. +// Copyright © 2021 linktop. All rights reserved. +// + +#import "NAVTemplateViewController.h" +#import "ConfigModel.h" +#import "UILabel+LNCTitleStyle.h" +#import + +@interface NAVTemplateViewController () + +@property(copy, nonatomic)void(^backBlk)(void); + +@end + +@implementation NAVTemplateViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor blackColor]; + // Do any additional setup after loading the view. + self.navigationController.interactivePopGestureRecognizer.delegate = self; + + + +} + +#pragma mark -- navbar style + +-(void)arrowback:(void(^ __nullable)(void))backBlk +{ + + UIImage *image = [UIImage imageNamed:@"back_white"]; + QMUIButton *backBtn = [[QMUIButton alloc]init]; + [backBtn setImage:image forState:UIControlStateNormal]; + backBtn.frame = CGRectMake(0, 0, 50, 44); + [backBtn setTitle:@" " forState:UIControlStateNormal]; + backBtn.imagePosition = QMUIButtonImagePositionLeft; + [backBtn addTarget:self action:@selector(backBtn:) forControlEvents:UIControlEventTouchUpInside]; + + self.backBlk = backBlk; + UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithCustomView:backBtn];; + + self.navigationItem.leftBarButtonItem = leftItem; +} + +-(void)cleanLeftBarButon +{ + + UIBarButtonItem *leftItem = [[UIBarButtonItem alloc]initWithCustomView:[[UIView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)] ];; + + self.navigationItem.leftBarButtonItem = leftItem; +} + +-(void)customNavStyleNormal:(NSString *)centerTitle BackBlk:( void(^ __nullable)(void))backBlk +{ + //navbar 背景 + + UINavigationBar *navBar = self.navigationController.navigationBar; + if (!navBar) { + return; + } + navBar.tintColor = [UIColor whiteColor]; +// self.title = centerTitle; +// [self gradientBackGround]; //渐变色背景 + //title + UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 250, 44)]; + titleLabel.font = [UIFont fontWithName:@"ArialMT" size:19.0f]; + [titleLabel setTextColor:[UIColor whiteColor]]; + titleLabel.text = centerTitle; + titleLabel.textAlignment = NSTextAlignmentCenter; + + + self.navigationItem.titleView = titleLabel; + + //左按钮 + CGFloat bt_w = 50.0f; + UIButton * leftCustomBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 60, bt_w, 44)]; + [leftCustomBtn addTarget:self action:@selector(backBtn:) forControlEvents:UIControlEventTouchUpInside]; + UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftCustomBtn]; + if (backBlk != nil) { + UIImage *btnArrowImg = [UIImage imageNamed:@"back_white"]; + [leftCustomBtn setImage:btnArrowImg forState:UIControlStateNormal]; + CGFloat imageV_w = btnArrowImg.size.width; + leftCustomBtn.imageEdgeInsets = UIEdgeInsetsMake(0, imageV_w - bt_w, 0, 0); + } + + self.navigationItem.leftBarButtonItem = leftItem; + + self.backBlk = backBlk; + +// self.navigationController.interactivePopGestureRecognizer.enabled = YES; +// self.navigationController.interactivePopGestureRecognizer.delegate = (id)self; +} + +- (void)customNavBarView:(NSString *)leftBtnTitle +{ + + //navbar 背景 + UINavigationBar *navBar = self.navigationController.navigationBar; + if (!navBar) { + return; + } +// navBar.tintColor = [UIColor whiteColor]; + +// [self gradientBackGround]; //渐变色背景 + + //左按钮 + /* + UIButton * leftCustomBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 60, 100, 44)]; + [leftCustomBtn useNavTitleFont]; + [leftCustomBtn setTitle:leftBtnTitle forState:UIControlStateNormal]; + leftCustomBtn.enabled = NO; + UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftCustomBtn]; + + self.navigationItem.leftBarButtonItem = leftItem; + */ + + UILabel * leftCustomLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 60, 100, 44)]; + leftCustomLbl.text = leftBtnTitle; + leftCustomLbl.textAlignment = NSTextAlignmentLeft; + [leftCustomLbl userNavTitleFont:nil]; + UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftCustomLbl]; + self.navigationItem.leftBarButtonItem = leftItem; + + + +} + +#pragma mark --navbar按键响应 +- (void)backBtn:(id)sender { + if (self.backBlk) { + self.backBlk(); + } else { + [self.navigationController popViewControllerAnimated:YES]; + } + +} + + +//- (void)gradientBackGround { +// self.navigationController.navigationBar.translucent = NO; +// self.navigationController.navigationBar.barTintColor = MAIN_BG_COLOR; +// +// if (@available(iOS 15.0, *)) { +// UINavigationBarAppearance *appearance = [UINavigationBarAppearance new]; +// [appearance configureWithOpaqueBackground]; +// appearance.backgroundColor = MAIN_BG_COLOR; +// self.navigationController.navigationBar.standardAppearance = appearance; +// self.navigationController.navigationBar.scrollEdgeAppearance = self.navigationController.navigationBar.standardAppearance; +// } +// +// +//// self.navigationController.navigationBar.backgroundColor = [UIColor blackColor]; +//} + + +@end diff --git a/iosApp/iosApp/Libs/NSString+Check.h b/iosApp/iosApp/Libs/NSString+Check.h new file mode 100644 index 0000000..907092d --- /dev/null +++ b/iosApp/iosApp/Libs/NSString+Check.h @@ -0,0 +1,23 @@ +// +// NSString+Check.h +// CareRingApp +// +// Created by Linktop on 2022/8/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSString (Check) + +/// 检查是否包含非法字符 YES = 包含 +-(BOOL)isContainSpecialCharacters; +// yes = 复合规则 +-(BOOL)isValiadEmail; + +//-(int)transVersionToInt; +-(BOOL)versionIsLowThan:(NSString *)remote; +@end + +NS_ASSUME_NONNULL_END diff --git a/iosApp/iosApp/Libs/NSString+Check.m b/iosApp/iosApp/Libs/NSString+Check.m new file mode 100644 index 0000000..2786065 --- /dev/null +++ b/iosApp/iosApp/Libs/NSString+Check.m @@ -0,0 +1,67 @@ +// +// NSString+Check.m +// CareRingApp +// +// Created by Linktop on 2022/8/23. +// + +#import "NSString+Check.h" + +@implementation NSString (Check) +//非法字符 +-(BOOL)isContainSpecialCharacters { + + NSCharacterSet *nameCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] invertedSet]; + NSRange userNameRange = [self rangeOfCharacterFromSet:nameCharacters]; + if (userNameRange.location != NSNotFound) { + NSLog(@"包含特殊字符"); + return YES; + } + return NO; +} + +-(BOOL)isValiadEmail +{ + + // ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ + NSString* emailRegu = @"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"; + NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",emailRegu]; + return [numberPre evaluateWithObject:self]; + +} + +-(int)transVersionToInt +{ + + NSArray *arr = [self componentsSeparatedByString:@"."]; + int res = 0; + NSMutableString *tempString = [NSMutableString new]; + for (int i = 0; i < arr.count; i++) { + [tempString appendFormat:@"%d", arr[i].intValue]; + + } + res = [tempString intValue]; + return res; + +} + +-(BOOL)versionIsLowThan:(NSString *)remote { + + NSArray *arrLocal = [self componentsSeparatedByString:@"."]; + NSArray *arrRemote = [remote componentsSeparatedByString:@"."]; + if (arrLocal.count != arrRemote.count) { + return NO; //格式不匹配 + } + BOOL isLow = NO; + for (int i = 0; i < arrLocal.count; i++) { + if ([arrLocal[i] intValue] < [arrRemote[i] intValue]) { + isLow = YES; + break; + } + + } + + return isLow; +} + +@end diff --git a/iosApp/iosApp/Libs/PrefixHeader.pch b/iosApp/iosApp/Libs/PrefixHeader.pch new file mode 100644 index 0000000..4454631 --- /dev/null +++ b/iosApp/iosApp/Libs/PrefixHeader.pch @@ -0,0 +1,23 @@ +// +// PrefixHeader.pch +// sr01sdkProject +// +// Created by Linktop on 2022/5/30. +// + +#ifndef PrefixHeader_pch +#define PrefixHeader_pch + +//#import "TestUtils.h" + +// Include any system framework and library headers here that should be included in all compilation units. +// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. + +#ifdef DEBUG +#define DebugNSLog(...) NSLog(__VA_ARGS__) +#else +#define DebugNSLog(...) + +#endif + +#endif /* PrefixHeader_pch */ diff --git a/iosApp/iosApp/iosApp-Bridging-Header.h b/iosApp/iosApp/iosApp-Bridging-Header.h new file mode 100644 index 0000000..d358b53 --- /dev/null +++ b/iosApp/iosApp/iosApp-Bridging-Header.h @@ -0,0 +1,5 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + +#import "DeviceCenter.h" diff --git a/iosApp/iosApp/temp.m b/iosApp/iosApp/temp.m new file mode 100644 index 0000000..352b9e4 --- /dev/null +++ b/iosApp/iosApp/temp.m @@ -0,0 +1,9 @@ +// +// temp.m +// iosApp +// +// Created by 安然雨声 on 2025/6/4. +// Copyright © 2025 orgName. All rights reserved. +// + +#import diff --git a/shared/Ring.def b/shared/Ring.def index 28e9cf5..386c100 100644 --- a/shared/Ring.def +++ b/shared/Ring.def @@ -1 +1,3 @@ language = Objective-C +package = com.whitefish.ring.objc +linkerOpts = -L../iosApp/iosApp/Libs -lRingSDK_2.0.2 diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index f283d44..389978d 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -22,12 +22,15 @@ kotlin { compilations.getByName("main"){ val cin by cinterops.creating{ definitionFile.set(project.file("Ring.def")) - packageName("com.whitefish.app.objc") + packageName("com.whitefish.ring.objc") val files = project.fileTree("../iosApp/iosApp/Libs").files.filter { it.extension == "h" } headers(files) val links = files.map { "-I${it.parent}" }.distinct() compilerOpts(links) compilerOpts.add("-I../iosApp/Pods/YYKit/YYKit/Base/Foundation") + compilerOpts.add("-I../iosApp/Pods/Masonry/Masonry") + compilerOpts.add("-I../iosApp/Pods/QMUIKit/QMUIKit") + println("cinterops build complete") } } } @@ -40,6 +43,10 @@ kotlin { framework { baseName = "shared" isStatic = true + freeCompilerArgs += listOf( + "-linker-option", "-L${project.projectDir.parent}/iosApp/iosApp/Libs", + "-linker-option", "-lRingSDK_2.0.2" + ) } } @@ -70,6 +77,9 @@ android { defaultConfig { minSdk = 29 } + lint{ + disable.add("NullSafeMutableLiveData") + } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/shared/src/androidMain/kotlin/com/whitefish/ring/DeviceManager.kt b/shared/src/androidMain/kotlin/com/whitefish/ring/DeviceManager.kt new file mode 100644 index 0000000..25190ea --- /dev/null +++ b/shared/src/androidMain/kotlin/com/whitefish/ring/DeviceManager.kt @@ -0,0 +1,13 @@ +package com.whitefish.ring + +import com.whitefish.ring.device.IDeviceManager + +class DeviceManager: IDeviceManager { + override fun startScan() { + TODO("Not yet implemented") + } + + override fun stopScan() { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/shared/src/androidMain/kotlin/com/whitefish/ring/Platform.android.kt b/shared/src/androidMain/kotlin/com/whitefish/ring/Platform.android.kt index 11eac6f..a5ac730 100644 --- a/shared/src/androidMain/kotlin/com/whitefish/ring/Platform.android.kt +++ b/shared/src/androidMain/kotlin/com/whitefish/ring/Platform.android.kt @@ -6,6 +6,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.Dp import android.content.Context +import com.whitefish.ring.device.IDeviceManager class AndroidPlatform : Platform { override val name: String = "Android ${Build.VERSION.SDK_INT}" @@ -54,3 +55,7 @@ private fun getNavigationBarHeightPx(context: Context): Int { } return navigationBarHeight } + +actual fun obtainDeviceManager(): IDeviceManager { + return DeviceManager() +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/whitefish/ring/Platform.kt b/shared/src/commonMain/kotlin/com/whitefish/ring/Platform.kt index 79e7fe6..1e44571 100644 --- a/shared/src/commonMain/kotlin/com/whitefish/ring/Platform.kt +++ b/shared/src/commonMain/kotlin/com/whitefish/ring/Platform.kt @@ -2,6 +2,7 @@ package com.whitefish.ring import androidx.compose.runtime.Composable import androidx.compose.ui.unit.Dp +import com.whitefish.ring.device.IDeviceManager interface Platform { val name: String @@ -13,4 +14,6 @@ expect fun getPlatform(): Platform expect fun getStatusBarHeight(): Dp @Composable -expect fun getNavigationBarHeight(): Dp \ No newline at end of file +expect fun getNavigationBarHeight(): Dp + +expect fun obtainDeviceManager(): IDeviceManager \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/whitefish/ring/device/IDeviceManager.kt b/shared/src/commonMain/kotlin/com/whitefish/ring/device/IDeviceManager.kt new file mode 100644 index 0000000..55a33fb --- /dev/null +++ b/shared/src/commonMain/kotlin/com/whitefish/ring/device/IDeviceManager.kt @@ -0,0 +1,6 @@ +package com.whitefish.ring.device + +interface IDeviceManager { + fun startScan() + fun stopScan() +} \ No newline at end of file diff --git a/shared/src/iosMain/kotlin/com/whitefish/ring/DeviceManager.kt b/shared/src/iosMain/kotlin/com/whitefish/ring/DeviceManager.kt new file mode 100644 index 0000000..2b3c682 --- /dev/null +++ b/shared/src/iosMain/kotlin/com/whitefish/ring/DeviceManager.kt @@ -0,0 +1,19 @@ +package com.whitefish.ring + +import com.whitefish.ring.device.IDeviceManager +import com.whitefish.ring.objc.DeviceCenter +import com.whitefish.ring.objc.LTSRingSDK +import kotlinx.cinterop.ExperimentalForeignApi +import platform.CoreBluetooth.CBManagerState +import platform.darwin.NSObject + +@OptIn(ExperimentalForeignApi::class) +class DeviceManager: IDeviceManager { + private val manager = DeviceCenter() + override fun startScan() { + + } + + override fun stopScan() { + } +} \ No newline at end of file diff --git a/shared/src/iosMain/kotlin/com/whitefish/ring/Platform.ios.kt b/shared/src/iosMain/kotlin/com/whitefish/ring/Platform.ios.kt index 6abfb78..253b651 100644 --- a/shared/src/iosMain/kotlin/com/whitefish/ring/Platform.ios.kt +++ b/shared/src/iosMain/kotlin/com/whitefish/ring/Platform.ios.kt @@ -3,6 +3,9 @@ package com.whitefish.ring import androidx.compose.runtime.Composable import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import com.whitefish.ring.device.IDeviceManager +import io.github.aakira.napier.DebugAntilog +import io.github.aakira.napier.Napier import platform.UIKit.UIDevice class IOSPlatform: Platform { @@ -49,4 +52,15 @@ actual fun getNavigationBarHeight(): Dp { 0.dp } } +} + +private val DeviceInstance: DeviceManager by lazy { + DeviceManager() +} +actual fun obtainDeviceManager(): IDeviceManager { + return DeviceInstance +} + +fun initLogger(){ + Napier.base(DebugAntilog()) } \ No newline at end of file