初步完成埋点事件开发

This commit is contained in:
bluesea 2024-03-20 16:09:00 +08:00
parent 04135ee4ba
commit 53f570d6d0
18 changed files with 965 additions and 201 deletions

View File

@ -7,7 +7,7 @@
<key>Alamofire.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>13</integer>
<integer>6</integer>
</dict>
<key>CocoaAsyncSocket.xcscheme_^#shared#^_</key>
<dict>
@ -17,52 +17,52 @@
<key>DeviceKit.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
<integer>17</integer>
</dict>
<key>FirebaseCore.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>9</integer>
<integer>16</integer>
</dict>
<key>FirebaseCoreExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>15</integer>
<integer>10</integer>
</dict>
<key>FirebaseCoreInternal.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>12</integer>
<integer>14</integer>
</dict>
<key>FirebaseCrashlytics.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>20</integer>
<integer>18</integer>
</dict>
<key>FirebaseInstallations.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
<integer>3</integer>
</dict>
<key>FirebaseMessaging.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>11</integer>
<integer>5</integer>
</dict>
<key>FirebaseSessions.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>7</integer>
<integer>21</integer>
</dict>
<key>GoogleDataTransport.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>18</integer>
<integer>19</integer>
</dict>
<key>GoogleUtilities.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>10</integer>
<integer>8</integer>
</dict>
<key>KTVHTTPCache.xcscheme_^#shared#^_</key>
<dict>
@ -72,52 +72,52 @@
<key>Kingfisher-Kingfisher.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>5</integer>
<integer>9</integer>
</dict>
<key>Kingfisher.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
<integer>4</integer>
</dict>
<key>LLCycleScrollView.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>16</integer>
<integer>20</integer>
</dict>
<key>Pods-SwiftProject.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>8</integer>
<integer>7</integer>
</dict>
<key>PromisesObjC.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>19</integer>
<integer>15</integer>
</dict>
<key>PromisesSwift.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>14</integer>
<integer>12</integer>
</dict>
<key>SVProgressHUD.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>17</integer>
<integer>1</integer>
</dict>
<key>SnapKit.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>21</integer>
<integer>11</integer>
</dict>
<key>TZImagePickerController.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
<integer>0</integer>
</dict>
<key>nanopb.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>2</integer>
</dict>
</dict>
</dict>

View File

@ -11,6 +11,9 @@
005580782B9F1525004B9567 /* ZZHHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 005580772B9F1525004B9567 /* ZZHHelper.swift */; };
00B946232B67B26D00DA668F /* ddd_video.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 00B946222B67B26D00DA668F /* ddd_video.mp4 */; };
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; };
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
00C665762BAA84C500C309C3 /* FirebaseAnalyticsWithoutAdIdSupport in Frameworks */ = {isa = PBXBuildFile; productRef = 00C665752BAA84C500C309C3 /* FirebaseAnalyticsWithoutAdIdSupport */; };
00C665792BAA94EA00C309C3 /* CopyCrashHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */; };
00D33BF42B998BF700604A44 /* SpatialImageConvertor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00D33BF32B998BF700604A44 /* SpatialImageConvertor.swift */; };
00D33BF62B99A19900604A44 /* SpatialVideoConvertor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00D33BF52B99A19900604A44 /* SpatialVideoConvertor.swift */; };
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00D33BF92B9AB21A00604A44 /* ZZHAVExtension.swift */; };
@ -97,6 +100,8 @@
005580772B9F1525004B9567 /* ZZHHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHHelper.swift; sourceTree = "<group>"; };
00B946222B67B26D00DA668F /* ddd_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = ddd_video.mp4; sourceTree = "<group>"; };
00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialPlayView.swift; sourceTree = "<group>"; };
00C665722BAA81F900C309C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyCrashHandler.swift; sourceTree = "<group>"; };
00D33BF32B998BF700604A44 /* SpatialImageConvertor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpatialImageConvertor.swift; sourceTree = "<group>"; };
00D33BF52B99A19900604A44 /* SpatialVideoConvertor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpatialVideoConvertor.swift; sourceTree = "<group>"; };
00D33BF92B9AB21A00604A44 /* ZZHAVExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHAVExtension.swift; sourceTree = "<group>"; };
@ -189,6 +194,7 @@
buildActionMask = 2147483647;
files = (
AF478B032B577D51005C35A5 /* AVFoundation.framework in Frameworks */,
00C665762BAA84C500C309C3 /* FirebaseAnalyticsWithoutAdIdSupport in Frameworks */,
00EB2D052BA2D59000924D84 /* MessageUI.framework in Frameworks */,
1E277B76988DF1691E8E5A49 /* Pods_SwiftProject.framework in Frameworks */,
AF2120D42B4E99FA00400B7F /* MobileCoreServices.framework in Frameworks */,
@ -348,8 +354,10 @@
AF2120A12B4E83AF00400B7F /* CCKit */,
AF2120A62B4E83B000400B7F /* Project */,
AF21208D2B4E7F1A00400B7F /* AppDelegate.swift */,
00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */,
AF2120932B4E7F1A00400B7F /* Main.storyboard */,
AF2120962B4E7F1C00400B7F /* Assets.xcassets */,
00C665722BAA81F900C309C3 /* GoogleService-Info.plist */,
AF2120982B4E7F1C00400B7F /* LaunchScreen.storyboard */,
AF21209B2B4E7F1C00400B7F /* Info.plist */,
00EB2D012BA2D14700924D84 /* Localizable.strings */,
@ -510,6 +518,9 @@
dependencies = (
);
name = SwiftProject;
packageProductDependencies = (
00C665752BAA84C500C309C3 /* FirebaseAnalyticsWithoutAdIdSupport */,
);
productName = SwiftProject;
productReference = AF21208A2B4E7F1A00400B7F /* SwiftProject.app */;
productType = "com.apple.product-type.application";
@ -539,6 +550,9 @@
"zh-Hans",
);
mainGroup = AF2120812B4E7F1A00400B7F;
packageReferences = (
00C665742BAA84C500C309C3 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
);
productRefGroup = AF21208B2B4E7F1A00400B7F /* Products */;
projectDirPath = "";
projectRoot = "";
@ -558,6 +572,7 @@
AF2120972B4E7F1C00400B7F /* Assets.xcassets in Resources */,
00B946232B67B26D00DA668F /* ddd_video.mp4 in Resources */,
AF2120952B4E7F1A00400B7F /* Main.storyboard in Resources */,
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -617,6 +632,7 @@
AF21208E2B4E7F1A00400B7F /* AppDelegate.swift in Sources */,
AF2120FC2B4EA5C800400B7F /* CCMineController.swift in Sources */,
1E3945A02B8398B000D0F5CA /* VRVideoTransformController.swift in Sources */,
00C665792BAA94EA00C309C3 /* CopyCrashHandler.swift in Sources */,
AF2120AD2B4E92B000400B7F /* RootTabBarController.swift in Sources */,
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */,
AFD9F5932B58C34A008716DE /* ImageProcessingShaders.metal in Sources */,
@ -841,15 +857,15 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1.4;
CURRENT_PROJECT_VERSION = 1.5;
DEVELOPMENT_TEAM = 8DQD6BV6H9;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = SwiftProject/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = VPCamera;
INFOPLIST_KEY_NSCameraUsageDescription = "Please allow the app to access your camera to capture the pictures, videos, or avatars you want to upload";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "The app requires your consent to access the microphone";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Please allow the app to access your photos for selecting photos, setting up avatars, uploading and publishing photos, and more.";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Please allow the app to access your photos for selecting photos, setting up avatars, uploading and publishing photos, and more.";
INFOPLIST_KEY_NSCameraUsageDescription = "我们需要访问您的相机,以便能够正常拍摄录制空间视频及空间图片";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "我们需要访问您的麦克风,以便能够正常的拍摄录制空间视频";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "我们需要访问您的相册,以便您能够从相册中选择照片、视频进行媒体空间转码";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "我们需要访问您的相册,以便您能够从相册中选择照片、视频进行媒体空间转码";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
@ -882,15 +898,15 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1.4;
CURRENT_PROJECT_VERSION = 1.5;
DEVELOPMENT_TEAM = 8DQD6BV6H9;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = SwiftProject/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = VPCamera;
INFOPLIST_KEY_NSCameraUsageDescription = "Please allow the app to access your camera to capture the pictures, videos, or avatars you want to upload";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "The app requires your consent to access the microphone";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Please allow the app to access your photos for selecting photos, setting up avatars, uploading and publishing photos, and more.";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Please allow the app to access your photos for selecting photos, setting up avatars, uploading and publishing photos, and more.";
INFOPLIST_KEY_NSCameraUsageDescription = "我们需要访问您的相机,以便能够正常拍摄录制空间视频及空间图片";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "我们需要访问您的麦克风,以便能够正常的拍摄录制空间视频";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "我们需要访问您的相册,以便您能够从相册中选择照片、视频进行媒体空间转码";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "我们需要访问您的相册,以便您能够从相册中选择照片、视频进行媒体空间转码";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
@ -937,6 +953,25 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
00C665742BAA84C500C309C3 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/firebase/firebase-ios-sdk";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 10.23.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
00C665752BAA84C500C309C3 /* FirebaseAnalyticsWithoutAdIdSupport */ = {
isa = XCSwiftPackageProductDependency;
package = 00C665742BAA84C500C309C3 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
productName = FirebaseAnalyticsWithoutAdIdSupport;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = AF2120822B4E7F1A00400B7F /* Project object */;
}

View File

@ -7,7 +7,7 @@
<key>SwiftProject.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>6</integer>
<integer>13</integer>
</dict>
</dict>
</dict>

View File

@ -0,0 +1,122 @@
{
"pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "7ce7be095bc3ed3c98b009532fe2d7698c132614",
"version" : "1.2024011601.0"
}
},
{
"identity" : "app-check",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
"revision" : "3e464dad87dad2d29bb29a97836789bf0f8f67d2",
"version" : "10.18.1"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "fcf5ced6dae2d43fced2581e673cc3b59bdb8ffa",
"version" : "10.23.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "6ec4ca62b00a665fa09b594fab897753a8c635fa",
"version" : "10.23.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "a637d318ae7ae246b02d7305121275bc75ed5565",
"version" : "9.4.0"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55",
"version" : "7.13.1"
}
},
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "67043f6389d0e28b38fa02d1c6952afeb04d807f",
"version" : "1.62.1"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "76135c9f4e1ac85459d5fec61b6f76ac47ab3a4c",
"version" : "3.3.1"
}
},
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
"version" : "100.0.0"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "43aaef65e0c665daadf848761d560e446d350d3d",
"version" : "1.22.4"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
"version" : "2.30910.0"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
"version" : "2.4.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "65e8f29b2d63c4e38e736b25c27b83e012159be8",
"version" : "1.25.2"
}
}
],
"version" : 2
}

View File

@ -14,10 +14,10 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "451"
endingLineNumber = "451"
landmarkName = "photoLibrary()"
landmarkType = "7">
startingLineNumber = "515"
endingLineNumber = "515"
landmarkName = "CCHomeController"
landmarkType = "21">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
@ -30,92 +30,12 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "443"
endingLineNumber = "443"
startingLineNumber = "507"
endingLineNumber = "507"
landmarkName = "photoLibrary()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "6BCC74B1-246C-411A-91F4-81589317AEB5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "357"
endingLineNumber = "357"
landmarkName = "addMenu()"
landmarkType = "7">
<Locations>
<Location
uuid = "6BCC74B1-246C-411A-91F4-81589317AEB5 - bb093bc926529bef"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #2 (Foundation.Data) -&gt; () in SwiftProject.CCHomeController.navgationButtonClick2(sender: __C.UIButton) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "357"
endingLineNumber = "357"
offsetFromSymbolStart = "452">
</Location>
<Location
uuid = "6BCC74B1-246C-411A-91F4-81589317AEB5 - bb093bc926529bef"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #2 (Foundation.Data) -&gt; () in SwiftProject.CCHomeController.navgationButtonClick2(sender: __C.UIButton) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "357"
endingLineNumber = "357"
offsetFromSymbolStart = "280">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "B14F4C3D-6C30-4634-AE88-6C5F495F8837"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "158"
endingLineNumber = "158"
landmarkName = "viewDidLoad()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "D4751DEC-AA48-4670-9355-9688FBED3752"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "161"
endingLineNumber = "161"
landmarkName = "viewDidLoad()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@ -126,9 +46,9 @@
filePath = "SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "119"
endingLineNumber = "119"
landmarkName = "init(menuWidth:arrow:datas:configures:)"
startingLineNumber = "125"
endingLineNumber = "125"
landmarkName = "init(menuWidth:arrow:datas:configures:dissMissCallback:)"
landmarkType = "7">
<Locations>
<Location
@ -164,54 +84,6 @@
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "C9EE5907-807C-4224-B614-5AC70451829C"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "352"
endingLineNumber = "352"
landmarkName = "tableView(_:didSelectRowAt:)"
landmarkType = "7">
<Locations>
<Location
uuid = "C9EE5907-807C-4224-B614-5AC70451829C - a4d33f0effcdb136"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialDisplayTypeView.tableView(_: __C.UITableView, didSelectRowAt: Foundation.IndexPath) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "352"
endingLineNumber = "352"
offsetFromSymbolStart = "296">
</Location>
<Location
uuid = "C9EE5907-807C-4224-B614-5AC70451829C - a4d33f0effcdb136"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialDisplayTypeView.tableView(_: __C.UITableView, didSelectRowAt: Foundation.IndexPath) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/View/CCSpatialDisplayTypeView/CCSpatialDisplayTypeView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "352"
endingLineNumber = "352"
offsetFromSymbolStart = "204">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@ -247,49 +119,522 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "446B1059-AB12-4DA2-9206-422E50D2E986"
uuid = "2D2CFF5C-16F9-4734-96BB-A82EC4B1C622"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
filePath = "SwiftProject/Project/View/Album/CCSpaceAlbumPopView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "932"
endingLineNumber = "932"
landmarkName = "createSpVideo()"
startingLineNumber = "270"
endingLineNumber = "270"
landmarkName = "isSpatialVideo(asset:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "D02C9095-F7A8-428A-B1D0-A79B5C306A69"
shouldBeEnabled = "Yes"
uuid = "D467D3F3-40DA-48FC-88D2-603C06CA38C7"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "922"
endingLineNumber = "922"
landmarkName = "fileOutput(_:didFinishRecordingTo:from:error:)"
startingLineNumber = "471"
endingLineNumber = "471"
landmarkName = "gotoPhotoTransformVC(data:url:asset:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "3970BB69-20DE-4AD6-B484-0D74B3D9BA4D"
uuid = "F65B87F5-BB82-4B2A-AAAA-3EC443A66985"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "153"
endingLineNumber = "153"
landmarkName = "viewDidLoad()"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "AC12A8D6-51D9-4E5A-B902-E05E9C3A533D"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Util/SpatialVideoConvertor.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "103"
endingLineNumber = "103"
landmarkName = "convertVideo(asset:outputFile:type:progress:)"
landmarkType = "7">
<Locations>
<Location
uuid = "AC12A8D6-51D9-4E5A-B902-E05E9C3A533D - 949edb90126739b4"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "(9) suspend resume partial function for SwiftProject.SpatialVideoConvertor.convertVideo(asset: __C.AVAsset, outputFile: Foundation.URL, type: SwiftProject.Video3DFormat, progress: Swift.Optional&lt;(Swift.Float) -&gt; ()&gt;) async throws -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/SpatialVideoConvertor.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "94"
endingLineNumber = "94"
offsetFromSymbolStart = "3140">
</Location>
<Location
uuid = "AC12A8D6-51D9-4E5A-B902-E05E9C3A533D - 3e8f5de0faefa96a"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "(11) suspend resume partial function for SwiftProject.SpatialVideoConvertor.convertVideo(asset: __C.AVAsset, outputFile: Foundation.URL, type: SwiftProject.Video3DFormat, progress: Swift.Optional&lt;(Swift.Float) -&gt; ()&gt;) async throws -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/SpatialVideoConvertor.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "94"
endingLineNumber = "94"
offsetFromSymbolStart = "3188">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "8AEE0BD4-6A41-4DBF-8352-10027380D047"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Util/VideoWriter.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "69"
endingLineNumber = "69"
landmarkName = "init?(url:width:height:orientation:sessionStartTime:isRealTime:queue:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "9CDC4FBC-FB27-4329-A06E-2C14E19B142D"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "437"
endingLineNumber = "437"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.SwiftErrorBreakpoint">
<BreakpointContent
uuid = "10C86D5F-BC4C-4AE9-BC32-4D3BC898C3B3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
<BreakpointContent
uuid = "59EC93C4-B455-4980-B575-D594367EBEF4"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
breakpointStackSelectionBehavior = "1"
scope = "0"
stopOnStyle = "0">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "97D73D5E-52DA-4635-81F8-B4BED96FB19E"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "920"
endingLineNumber = "920"
landmarkName = "fileOutput(_:didFinishRecordingTo:from:error:)"
startingLineNumber = "420"
endingLineNumber = "420"
landmarkName = "configureSession()"
landmarkType = "7">
<Locations>
<Location
uuid = "97D73D5E-52DA-4635-81F8-B4BED96FB19E - 928cb49c86da05db"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialShootController.configureSession() -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "406"
endingLineNumber = "406"
offsetFromSymbolStart = "6184">
</Location>
<Location
uuid = "97D73D5E-52DA-4635-81F8-B4BED96FB19E - 928cb49c86da05f8"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialShootController.configureSession() -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "407"
endingLineNumber = "407"
offsetFromSymbolStart = "5852">
</Location>
<Location
uuid = "97D73D5E-52DA-4635-81F8-B4BED96FB19E - 928cb49c86da04c2"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialShootController.configureSession() -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "413"
endingLineNumber = "413"
offsetFromSymbolStart = "6472">
</Location>
<Location
uuid = "97D73D5E-52DA-4635-81F8-B4BED96FB19E - 928cb49c86d9fbad"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialShootController.configureSession() -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "420"
endingLineNumber = "420"
offsetFromSymbolStart = "6472">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "272"
endingLineNumber = "272"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa57b69"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "254"
endingLineNumber = "254"
offsetFromSymbolStart = "1168">
</Location>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa57b69"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "254"
endingLineNumber = "254"
offsetFromSymbolStart = "1140">
</Location>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa5644e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "261"
endingLineNumber = "261"
offsetFromSymbolStart = "1140">
</Location>
<Location
uuid = "39B0FCFC-A922-4F93-8D4C-91879D2F28C3 - 16ed8f55afa5653b"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "272"
endingLineNumber = "272"
offsetFromSymbolStart = "1140">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "278"
endingLineNumber = "278"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa57baf"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "260"
endingLineNumber = "260"
offsetFromSymbolStart = "2100">
</Location>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa5644e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "261"
endingLineNumber = "261"
offsetFromSymbolStart = "2100">
</Location>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa564b7"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "268"
endingLineNumber = "268"
offsetFromSymbolStart = "2100">
</Location>
<Location
uuid = "829B5267-7321-437C-8C9B-51BE1747D98B - 16ed8f55afa56620"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "279"
endingLineNumber = "279"
offsetFromSymbolStart = "2100">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "260"
endingLineNumber = "260"
landmarkName = "setttinisScreenMirroring(isScreenMirroring:)"
landmarkType = "7">
<Locations>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa579dd"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "242"
endingLineNumber = "242"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f8826"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "243"
endingLineNumber = "243"
offsetFromSymbolStart = "36">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa579fc"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "243"
endingLineNumber = "243"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f8845"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "244"
endingLineNumber = "244"
offsetFromSymbolStart = "36">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa57ae5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "250"
endingLineNumber = "250"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f8b5e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "251"
endingLineNumber = "251"
offsetFromSymbolStart = "36">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - 16ed8f55afa5644e"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "261"
endingLineNumber = "261"
offsetFromSymbolStart = "468">
</Location>
<Location
uuid = "FB071E1C-D1E8-4037-BFE1-7CACB5184B9B - f43a84dcef1f95ab"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (__C.UISceneSession) -&gt; Swift.Bool in SwiftProject.CCSpatialPhotoDisplayController.setttinisScreenMirroring(isScreenMirroring: Swift.Bool) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "262"
endingLineNumber = "262"
offsetFromSymbolStart = "36">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Promises (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>23</integer>
</dict>
<key>Promises (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>24</integer>
</dict>
<key>Promises (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>22</integer>
</dict>
</dict>
</dict>
</plist>

View File

@ -16,6 +16,7 @@
import UIKit
import SVProgressHUD
import Firebase
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
@ -24,18 +25,41 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
SVProgressHUD.setDefaultStyle(.dark)
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.backgroundColor = UIColor.white
self.window?.makeKeyAndVisible()
self.window?.rootViewController = RootTabBarController()
Analytics.logEvent("user_launch", parameters: ["type":"new"])
exceptionLogWithData()
return true
}
func exceptionLogWithData() {
CopyCrashHandler.setDefaultHandler()
let str = CopyCrashHandler.getdataPath()
let data = NSData.init(contentsOfFile: str)
if data != nil {
let crushStr:String? = String.init(data: data! as Data, encoding: String.Encoding.utf8)
Analytics.logEvent("app_crash", parameters: ["crashInfo":crushStr ?? ""])
}
}
//--
func applicationWillEnterForeground(_ application: UIApplication) {
print("applicationWillEnterForeground...")
Analytics.logEvent("user_launch", parameters: ["type":"restart"])
}
func applicationWillTerminate(_ application: UIApplication) {
}
}

View File

@ -0,0 +1,104 @@
//
// CopyCrashHandler.swift
// SwiftProject
//
// Created by aaa on 2024/3/20.
//
import Foundation
//public class CopyCrashHandler
//{
// public static func setup(callBack:@escaping CrashCallback){
// crashCallBack = callBack;
// registerSignalHanlder();
// }
//}
//
//public typealias Completion = ()->Void;
//public typealias CrashCallback = (String,Completion)->Void;
//
//public var crashCallBack: CrashCallback?
//
//
//
//
//func signalHandler(signal:Int32) -> Void {
// let stackTrace = Thread.callStackSymbols.joined(separator: "\r\n")
// crashCallBack?(stackTrace,{
// unregisterSignalHandler();
// exit(signal);
// });
//}
//
//func registerSignalHanlder()
//{
// objc_setUncaughtExceptionHandler { (_response:Any?) in
// if let signal = _response as? Int32 {
// signalHandler(signal: signal)
// }
// else if let exception = _response as? NSException {
// crashCallBack?(exception.reason ?? exception.callStackSymbols.joined(separator: "\r\n"),{
// unregisterSignalHandler();
// exception.raise()
// });
// }
// }
//
// signal(SIGINT, signalHandler);
// signal(SIGSEGV, signalHandler);//
// signal(SIGTRAP, signalHandler);
// signal(SIGABRT, signalHandler);
// signal(SIGILL, signalHandler);
// signal(SIGBUS, signalHandler);
// signal(SIGFPE, signalHandler);
// signal(SIGTERM, signalHandler);
// signal(SIGKILL, signalHandler);//CPU(0)
// signal(SIGPIPE, signalHandler);
//}
//
//func unregisterSignalHandler()
//{
// signal(SIGINT, SIG_DFL);
// signal(SIGSEGV, SIG_DFL);
// signal(SIGTRAP, SIG_DFL);
// signal(SIGABRT, SIG_DFL);
// signal(SIGILL, SIG_DFL);
// signal(SIGBUS, SIG_DFL);
// signal(SIGFPE, SIG_DFL);
// signal(SIGTERM, SIG_DFL);
// signal(SIGKILL, SIG_DFL);
// signal(SIGPIPE, SIG_DFL);
//}
//
//
public class CopyCrashHandler {
public class func getdataPath() -> String{
let str = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last!
let urlPath = str.appending("Exception.txt")
return urlPath
}
public class func setDefaultHandler() {
NSSetUncaughtExceptionHandler { (exception) in
let arr:NSArray = exception.callStackSymbols as NSArray
let reason:String = exception.reason!
let name:String = exception.name.rawValue
let date:NSDate = NSDate()
let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "YYYY/MM/dd hh:mm:ss SS"
let strNowTime = timeFormatter.string(from: date as Date) as String
let url:String = String.init(format: "time:%@\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",strNowTime,name,reason,arr.componentsJoined(by: "\n"))
let path = CopyCrashHandler.getdataPath()
do{
if FileManager.default.fileExists(atPath: path) {
try FileManager.default.removeItem(atPath: path)
}
try url.write(toFile: path, atomically: true, encoding: String.Encoding.utf8)
}catch{ error
print("\(error)")
}
}
}
}

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>AIzaSyAPrLVnb7JkiyhiNIK89qgczqSag-QAi24</string>
<key>GCM_SENDER_ID</key>
<string>931841718963</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.nsk.tdvideo</string>
<key>PROJECT_ID</key>
<string>vpro-76262</string>
<key>STORAGE_BUCKET</key>
<string>vpro-76262.appspot.com</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:931841718963:ios:164e5422a1c3f669d04ec6</string>
</dict>
</plist>

View File

@ -24,7 +24,7 @@ import LLCycleScrollView
import TZImagePickerController
import MessageUI
import SVProgressHUD
import Firebase
class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeViewControllerDelegate {
@ -50,6 +50,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
var selectedAssets:[Any] = []
var maxImages:NSInteger = 10
let kNowTimeToUserDefaultKey_Home:String = "kNowTimeToUserDefaultKey_Home"
lazy var spaceAlbumPopView: CCSpaceAlbumFliterPopView = {
let view = CCSpaceAlbumFliterPopView.init(frame: CGRectMake(0, 0, KScreenWidth, KScreenHeight))
@ -84,21 +85,13 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
// return false
// }
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_Home)
self.view.backgroundColor = UIColor.black
self.navLine?.isHidden = true
// let isExternalDeviceConnected = isExternalDeviceConnected()
// if isExternalDeviceConnected {
// let deviceName = UIDevice.current.name
// print("\(deviceName)")
// } else {
// print("")
// }
// AirPlay
NotificationCenter.default.addObserver(self, selector: #selector(airPlayStatusDidChange(_:)), name: AVAudioSession.routeChangeNotification, object: nil)
@ -160,6 +153,12 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
bottomButton()
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey(kNowTimeToUserDefaultKey_Home)
Analytics.logEvent("home_pv", parameters: ["refer_page":"首页","duration":sec])
}
//MARK: -
@objc private func airPlayStatusDidChange(_ notification: Notification) {
checkAirPlayStatus()

View File

@ -14,14 +14,14 @@ import ImageIO
import CoreImage
import Photos
import SVProgressHUD
import Firebase
enum VideoReaderError : Error {
case invalidVideo
case notSpacialVideo
}
class CCSpatialPhotoDisplayController: BaseController {
let kNowTimeToUserDefaultKey_PhotoDisplayController:String = "kNowTimeToUserDefaultKey_PhotoDisplayController"
//
lazy var externalWindow:UIWindow = {
return UIWindow(frame: self.view.bounds)
@ -156,6 +156,7 @@ class CCSpatialPhotoDisplayController: BaseController {
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_PhotoDisplayController)
print("spatioal photo viewdidload...\(self)")
// return
//
@ -212,9 +213,26 @@ class CCSpatialPhotoDisplayController: BaseController {
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey(kNowTimeToUserDefaultKey_PhotoDisplayController)
Analytics.logEvent("preview_pv", parameters: ["refer_page":"图片预览页面","duration":sec])
}
//MARK: -
@objc func airPlayStatusDidChange(notification:Notification) {
checkAirPlayStatus()
if(isAirPlayActive) {
Analytics.logEvent("streaming_live", parameters: ["refer_page":"图片预览页面"])
ZZHHelper.setNowTimeToUserDefaultWithKey("kNowTimeToUserDefaultKey_PhotoDisplayController_airplay")
}
else {
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey("kNowTimeToUserDefaultKey_PhotoDisplayController_airplay")
Analytics.logEvent("streaming_live", parameters: ["refer_page":"图片预览页面","duration":sec])
}
}
// @objc func exScreenDisConnectNotification(notification:Notification) {
@ -293,6 +311,7 @@ class CCSpatialPhotoDisplayController: BaseController {
transVC.sourceImageData = photoOriginalData
transVC.imageAsset = imageAsset
self.navigationController?.pushViewController(transVC, animated: true)
Analytics.logEvent("preview_trans_click", parameters: nil)
}else if sender.tag == 202 {
//
mTopCenterTypeButton.setImage(UIImage.init(named: "type_button_arrow_up"), for: .normal)

View File

@ -11,8 +11,9 @@ import Photos
import AVKit
import VideoToolbox
import SVProgressHUD
import Firebase
class CCSpatialShootController: BaseController {
let kNowTimeToUserDefaultKey_SpatialShootController:String = "kNowTimeToUserDefaultKey_SpatialShootController"
var wideAngleCameraDevice:AVCaptureDevice?//使
//AVCaptureSession ---
@ -253,9 +254,15 @@ class CCSpatialShootController: BaseController {
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey(kNowTimeToUserDefaultKey_SpatialShootController)
Analytics.logEvent("capture_pv", parameters: ["refer_page":"相机拍摄页面","duration":sec])
}
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_SpatialShootController)
// view.backgroundColor = .white
outputVideoURL = URL.documentsDirectory.appendingPathComponent("output.MOV")

View File

@ -10,6 +10,7 @@ import AVFoundation
import Photos
import AVKit
import VideoToolbox
import Firebase
enum SpatialType : Int {
/*
@ -60,7 +61,7 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
var assetTrack:AVAssetTrack?
let kNowTimeToUserDefaultKey_VideoDisplayController:String = "kNowTimeToUserDefaultKey_VideoDisplayController"
var link = false//
var isPlaying = false//
@ -229,6 +230,7 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_VideoDisplayController)
Task {
print("ccs viewdid load ---------")
await self.loadVideoAssetReader()
@ -393,6 +395,12 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey(kNowTimeToUserDefaultKey_VideoDisplayController)
Analytics.logEvent("preview_pv", parameters: ["refer_page":"视频预览页面","duration":sec])
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// AirPlay
@ -402,6 +410,14 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
//MARK: -
@objc private func airPlayStatusDidChange(_ notification: Notification) {
checkAirPlayStatus()
if(isAirPlayActive) {
Analytics.logEvent("streaming_live", parameters: ["refer_page":"视频预览页面"])
ZZHHelper.setNowTimeToUserDefaultWithKey("kNowTimeToUserDefaultKey_VideoDisplayController_airplay")
}
else {
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey("kNowTimeToUserDefaultKey_VideoDisplayController_airplay")
Analytics.logEvent("streaming_live", parameters: ["refer_page":"视频预览页面","duration":sec])
}
}
private func checkAirPlayStatus() {
@ -505,6 +521,7 @@ class CCSpatialVideoDisplayController: BaseController, AVPlayerViewControllerDel
transVC.videoOriginalPHAsset = self.videoOriginalPHAsset
transVC.sourceVideoURL = sourceVideoURL
self.navigationController?.pushViewController(transVC, animated: true)
Analytics.logEvent("preview_trans_click", parameters: nil)
}else if sender.tag == 202 {
//

View File

@ -10,10 +10,11 @@ import DeviceKit
import SVProgressHUD
import Photos
import CoreImage
import Firebase
class VRPhotoTransformController: BaseController {
// var heroAsset1:AVAsset?
let kNowTimeToUserDefaultKey_PhotoTransformController:String = "kNowTimeToUserDefaultKey_PhotoTransformController"
var sourceImageData:Data?
var imageAsset:PHAsset?
@ -38,8 +39,15 @@ class VRPhotoTransformController: BaseController {
self.setNavgationBarColor(color: UIColor.clear)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey(kNowTimeToUserDefaultKey_PhotoTransformController)
Analytics.logEvent("transcode_pic_pv", parameters: ["refer_page":"图片转码页面","duration":sec])
}
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_PhotoTransformController)
self.view.backgroundColor = UIColor.black
self.navLine?.isHidden = true
self.setNavgaionTitle(string: "图片转码")

View File

@ -16,7 +16,7 @@ import Observation
import VideoToolbox
import Photos
import SVProgressHUD
import Firebase
//
enum VideoBitsPerPixel : CGFloat {
case best = 1.0
@ -41,6 +41,7 @@ enum Video3DFormat : Int {
}
class VRVideoTransformController: BaseController {
let kNowTimeToUserDefaultKey_VideoTransformController:String = "kNowTimeToUserDefaultKey_VideoTransformController"
var heroAsset1:AVAsset?
var videoOriginalPHAsset:PHAsset?
@ -103,8 +104,15 @@ class VRVideoTransformController: BaseController {
self.setNavgationBarColor(color: UIColor.clear)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
let sec:TimeInterval = ZZHHelper.getSecFromUserDefaultByKey(kNowTimeToUserDefaultKey_VideoTransformController)
Analytics.logEvent("transcode_video_pv", parameters: ["refer_page":"视频转码页面","duration":sec])
}
override func viewDidLoad() {
super.viewDidLoad()
ZZHHelper.setNowTimeToUserDefaultWithKey(kNowTimeToUserDefaultKey_VideoTransformController)
self.view.backgroundColor = UIColor.black
self.navLine?.isHidden = true
self.setNavgaionTitle(string: "视频转码")

View File

@ -50,4 +50,20 @@ class ZZHHelper {
}
return false
}
//
class func setNowTimeToUserDefaultWithKey(_ key:String) {
UserDefaults.standard.setValue(Date.now, forKey: key)
UserDefaults.standard.synchronize()
}
//
class func getSecFromUserDefaultByKey(_ key:String)->TimeInterval {
var sec:TimeInterval = 0
let date = UserDefaults.standard.value(forKey: key)
if let d = date as? Date{
sec = DateInterval.init(start: d, end: Date.now).duration
}
return sec
}
}