| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter_tools/src/base/logger.dart'; |
| import 'package:flutter_tools/src/base/process.dart'; |
| import 'package:flutter_tools/src/ios/xcodeproj.dart'; |
| import 'package:flutter_tools/src/ios/xcresult.dart'; |
| import 'package:flutter_tools/src/macos/xcode.dart'; |
| |
| import '../../src/common.dart'; |
| import '../../src/fake_process_manager.dart'; |
| |
| void main() { |
| // Creates a FakeCommand for the xcresult get call to build the app |
| // in the given configuration. |
| FakeCommand _setUpFakeXCResultGetCommand({ |
| required String stdout, |
| required String tempResultPath, |
| required Xcode xcode, |
| int exitCode = 0, |
| String stderr = '', |
| }) { |
| return FakeCommand( |
| command: <String>[ |
| ...xcode.xcrunCommand(), |
| 'xcresulttool', |
| 'get', |
| '--path', |
| tempResultPath, |
| '--format', |
| 'json', |
| ], |
| stdout: stdout, |
| stderr: stderr, |
| exitCode: exitCode, |
| onRun: () {}, |
| ); |
| } |
| |
| const FakeCommand _kWhichSysctlCommand = FakeCommand( |
| command: <String>[ |
| 'which', |
| 'sysctl', |
| ], |
| ); |
| |
| const FakeCommand _kx64CheckCommand = FakeCommand( |
| command: <String>[ |
| 'sysctl', |
| 'hw.optional.arm64', |
| ], |
| exitCode: 1, |
| ); |
| |
| XCResultGenerator _setupGenerator({ |
| required String resultJson, |
| int exitCode = 0, |
| String stderr = '', |
| }) { |
| final FakeProcessManager fakeProcessManager = |
| FakeProcessManager.list(<FakeCommand>[ |
| _kWhichSysctlCommand, |
| _kx64CheckCommand, |
| ]); |
| final Xcode xcode = Xcode.test( |
| processManager: fakeProcessManager, |
| xcodeProjectInterpreter: XcodeProjectInterpreter.test( |
| processManager: fakeProcessManager, |
| version: null, |
| ), |
| ); |
| fakeProcessManager.addCommands( |
| <FakeCommand>[ |
| _setUpFakeXCResultGetCommand( |
| stdout: resultJson, |
| tempResultPath: _tempResultPath, |
| xcode: xcode, |
| exitCode: exitCode, |
| stderr: stderr, |
| ), |
| ], |
| ); |
| final ProcessUtils processUtils = ProcessUtils( |
| processManager: fakeProcessManager, |
| logger: BufferLogger.test(), |
| ); |
| return XCResultGenerator( |
| resultPath: _tempResultPath, |
| xcode: xcode, |
| processUtils: processUtils, |
| ); |
| } |
| |
| testWithoutContext( |
| 'correctly parse sample result json when there are issues.', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: _sampleResultJsonWithIssues); |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 2); |
| expect(result.issues.first.type, XCResultIssueType.error); |
| expect(result.issues.first.subType, 'Semantic Issue'); |
| expect(result.issues.first.message, "Use of undeclared identifier 'asdas'"); |
| expect(result.issues.last.type, XCResultIssueType.warning); |
| expect(result.issues.last.subType, 'Warning'); |
| expect(result.issues.last.message, |
| "The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99."); |
| expect(result.parseSuccess, isTrue); |
| expect(result.parsingErrorMessage, isNull); |
| }); |
| |
| testWithoutContext('correctly parse sample result json when no issues.', |
| () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: _sampleResultJsonNoIssues); |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, isTrue); |
| expect(result.parsingErrorMessage, isNull); |
| }); |
| |
| testWithoutContext( |
| 'error: `xcresulttool get` process fail should return an `XCResult` with stderr as `parsingErrorMessage`.', |
| () async { |
| const String fakeStderr = 'Fake: fail to parse result json.'; |
| final XCResultGenerator generator = _setupGenerator( |
| resultJson: '', |
| exitCode: 1, |
| stderr: fakeStderr, |
| ); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, fakeStderr); |
| }); |
| |
| testWithoutContext('error: `xcresulttool get` no stdout', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: ''); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Unrecognized top level json format.'); |
| }); |
| |
| testWithoutContext('error: wrong top level json format.', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: '[]'); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Unrecognized top level json format.'); |
| }); |
| |
| testWithoutContext('error: fail to parse actions map', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: '{}'); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Failed to parse the actions map.'); |
| }); |
| |
| testWithoutContext('error: empty actions map', () async { |
| final XCResultGenerator generator = |
| _setupGenerator(resultJson: _sampleResultJsonEmptyActionsMap); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Failed to parse the actions map.'); |
| }); |
| |
| testWithoutContext('error: empty actions map', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: _sampleResultJsonEmptyActionsMap); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Failed to parse the actions map.'); |
| }); |
| |
| testWithoutContext('error: empty actions map', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: _sampleResultJsonInvalidActionMap); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Failed to parse the first action map.'); |
| }); |
| |
| testWithoutContext('error: empty actions map', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: _sampleResultJsonInvalidBuildResultMap); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Failed to parse the buildResult map.'); |
| }); |
| |
| testWithoutContext('error: empty actions map', () async { |
| final XCResultGenerator generator = _setupGenerator(resultJson: _sampleResultJsonInvalidIssuesMap); |
| |
| final XCResult result = await generator.generate(); |
| expect(result.issues.length, 0); |
| expect(result.parseSuccess, false); |
| expect(result.parsingErrorMessage, |
| 'xcresult parser: Failed to parse the issues map.'); |
| }); |
| } |
| |
| const String _sampleResultJsonInvalidIssuesMap = r''' |
| { |
| "_type" : { |
| "_name" : "ActionsInvocationRecord" |
| }, |
| "actions" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "buildResult": { |
| } |
| } |
| ] |
| } |
| } |
| '''; |
| |
| const String _sampleResultJsonInvalidBuildResultMap = r''' |
| { |
| "_type" : { |
| "_name" : "ActionsInvocationRecord" |
| }, |
| "actions" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| {} |
| ] |
| } |
| } |
| '''; |
| |
| const String _sampleResultJsonInvalidActionMap = r''' |
| { |
| "_type" : { |
| "_name" : "ActionsInvocationRecord" |
| }, |
| "actions" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| [] |
| ] |
| } |
| } |
| '''; |
| |
| const String _sampleResultJsonEmptyActionsMap = r''' |
| { |
| "_type" : { |
| "_name" : "ActionsInvocationRecord" |
| }, |
| "actions" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| ] |
| } |
| } |
| '''; |
| |
| const String _sampleResultJsonWithIssues = r''' |
| { |
| "_type" : { |
| "_name" : "ActionsInvocationRecord" |
| }, |
| "actions" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "_type" : { |
| "_name" : "ActionRecord" |
| }, |
| "actionResult" : { |
| "_type" : { |
| "_name" : "ActionResult" |
| }, |
| "coverage" : { |
| "_type" : { |
| "_name" : "CodeCoverageInfo" |
| } |
| }, |
| "issues" : { |
| "_type" : { |
| "_name" : "ResultIssueSummaries" |
| } |
| }, |
| "metrics" : { |
| "_type" : { |
| "_name" : "ResultMetrics" |
| } |
| }, |
| "resultName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "action" |
| }, |
| "status" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "notRequested" |
| } |
| }, |
| "buildResult" : { |
| "_type" : { |
| "_name" : "ActionResult" |
| }, |
| "coverage" : { |
| "_type" : { |
| "_name" : "CodeCoverageInfo" |
| } |
| }, |
| "issues" : { |
| "_type" : { |
| "_name" : "ResultIssueSummaries" |
| }, |
| "errorSummaries" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "_type" : { |
| "_name" : "IssueSummary" |
| }, |
| "documentLocationInCreatingWorkspace" : { |
| "_type" : { |
| "_name" : "DocumentLocation" |
| }, |
| "concreteTypeName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "DVTTextDocumentLocation" |
| }, |
| "url" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "file:\/\/\/Users\/m\/Projects\/test_create\/ios\/Runner\/AppDelegate.m#CharacterRangeLen=0&CharacterRangeLoc=263&EndingColumnNumber=56&EndingLineNumber=7&LocationEncoding=1&StartingColumnNumber=56&StartingLineNumber=7" |
| } |
| }, |
| "issueType" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Semantic Issue" |
| }, |
| "message" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Use of undeclared identifier 'asdas'" |
| } |
| } |
| ] |
| }, |
| "warningSummaries" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "_type" : { |
| "_name" : "IssueSummary" |
| }, |
| "issueType" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Warning" |
| }, |
| "message" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99." |
| } |
| } |
| ] |
| } |
| }, |
| "logRef" : { |
| "_type" : { |
| "_name" : "Reference" |
| }, |
| "id" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "0~bjiFq9EH53z6VfWSr47dakT0w_aGcY_GFqgPuexHq1JsoKMmvf_6GLglMcWBYRCSNufKEX6l1YgbFmnuobsw5w==" |
| }, |
| "targetType" : { |
| "_type" : { |
| "_name" : "TypeDefinition" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "ActivityLogSection" |
| } |
| } |
| }, |
| "metrics" : { |
| "_type" : { |
| "_name" : "ResultMetrics" |
| }, |
| "errorCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "1" |
| }, |
| "warningCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "1" |
| } |
| }, |
| "resultName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "build" |
| }, |
| "status" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "failed" |
| } |
| }, |
| "endedTime" : { |
| "_type" : { |
| "_name" : "Date" |
| }, |
| "_value" : "2020-09-28T14:31:16.931-0700" |
| }, |
| "runDestination" : { |
| "_type" : { |
| "_name" : "ActionRunDestinationRecord" |
| }, |
| "displayName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Any iOS Device" |
| }, |
| "localComputerRecord" : { |
| "_type" : { |
| "_name" : "ActionDeviceRecord" |
| }, |
| "busSpeedInMHz" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "100" |
| }, |
| "cpuCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "1" |
| }, |
| "cpuKind" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "8-Core Intel Xeon W" |
| }, |
| "cpuSpeedInMHz" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "3200" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "87BE7059-56E3-5470-B52D-31A0F76402B3" |
| }, |
| "isConcreteDevice" : { |
| "_type" : { |
| "_name" : "Bool" |
| }, |
| "_value" : "true" |
| }, |
| "logicalCPUCoresPerPackage" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "16" |
| }, |
| "modelCode" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iMacPro1,1" |
| }, |
| "modelName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iMac Pro" |
| }, |
| "modelUTI" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.imacpro-2017" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "My Mac" |
| }, |
| "nativeArchitecture" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "x86_64h" |
| }, |
| "operatingSystemVersion" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "10.15.5" |
| }, |
| "operatingSystemVersionWithBuildNumber" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "10.15.5 (19F101)" |
| }, |
| "physicalCPUCoresPerPackage" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "8" |
| }, |
| "platformRecord" : { |
| "_type" : { |
| "_name" : "ActionPlatformRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.platform.macosx" |
| }, |
| "userDescription" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "macOS" |
| } |
| }, |
| "ramSizeInMegabytes" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "65536" |
| } |
| }, |
| "targetArchitecture" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "arm64e" |
| }, |
| "targetDeviceRecord" : { |
| "_type" : { |
| "_name" : "ActionDeviceRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder" |
| }, |
| "modelCode" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "GenericiOS" |
| }, |
| "modelName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "GenericiOS" |
| }, |
| "modelUTI" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.dt.Xcode.device.GenericiOS" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Any iOS Device" |
| }, |
| "nativeArchitecture" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "arm64e" |
| }, |
| "platformRecord" : { |
| "_type" : { |
| "_name" : "ActionPlatformRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.platform.iphoneos" |
| }, |
| "userDescription" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iOS" |
| } |
| } |
| }, |
| "targetSDKRecord" : { |
| "_type" : { |
| "_name" : "ActionSDKRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iphoneos14.0" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iOS 14.0" |
| }, |
| "operatingSystemVersion" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "14.0" |
| } |
| } |
| }, |
| "schemeCommandName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Run" |
| }, |
| "schemeTaskName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Build" |
| }, |
| "startedTime" : { |
| "_type" : { |
| "_name" : "Date" |
| }, |
| "_value" : "2020-09-28T14:31:13.125-0700" |
| }, |
| "title" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Build \"Runner\"" |
| } |
| } |
| ] |
| }, |
| "issues" : { |
| "_type" : { |
| "_name" : "ResultIssueSummaries" |
| }, |
| "errorSummaries" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "_type" : { |
| "_name" : "IssueSummary" |
| }, |
| "documentLocationInCreatingWorkspace" : { |
| "_type" : { |
| "_name" : "DocumentLocation" |
| }, |
| "concreteTypeName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "DVTTextDocumentLocation" |
| }, |
| "url" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "file:\/\/\/Users\/m\/Projects\/test_create\/ios\/Runner\/AppDelegate.m#CharacterRangeLen=0&CharacterRangeLoc=263&EndingColumnNumber=56&EndingLineNumber=7&LocationEncoding=1&StartingColumnNumber=56&StartingLineNumber=7" |
| } |
| }, |
| "issueType" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Semantic Issue" |
| }, |
| "message" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Use of undeclared identifier 'asdas'" |
| } |
| } |
| ] |
| }, |
| "warningSummaries" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "_type" : { |
| "_name" : "IssueSummary" |
| }, |
| "issueType" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Warning" |
| }, |
| "message" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99." |
| } |
| } |
| ] |
| } |
| }, |
| "metadataRef" : { |
| "_type" : { |
| "_name" : "Reference" |
| }, |
| "id" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "0~hrKQOFMo2Ri-TrlvSpVK8vTHcYQxwuWYJuRHCjoxIleliOdh5fHOdfIALZV0S0FtjVmUB83FpKkPbWajga4wxA==" |
| }, |
| "targetType" : { |
| "_type" : { |
| "_name" : "TypeDefinition" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "ActionsInvocationMetadata" |
| } |
| } |
| }, |
| "metrics" : { |
| "_type" : { |
| "_name" : "ResultMetrics" |
| }, |
| "errorCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "1" |
| }, |
| "warningCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "1" |
| } |
| } |
| } |
| '''; |
| |
| const String _sampleResultJsonNoIssues = r''' |
| { |
| "_type" : { |
| "_name" : "ActionsInvocationRecord" |
| }, |
| "actions" : { |
| "_type" : { |
| "_name" : "Array" |
| }, |
| "_values" : [ |
| { |
| "_type" : { |
| "_name" : "ActionRecord" |
| }, |
| "actionResult" : { |
| "_type" : { |
| "_name" : "ActionResult" |
| }, |
| "coverage" : { |
| "_type" : { |
| "_name" : "CodeCoverageInfo" |
| } |
| }, |
| "issues" : { |
| "_type" : { |
| "_name" : "ResultIssueSummaries" |
| } |
| }, |
| "metrics" : { |
| "_type" : { |
| "_name" : "ResultMetrics" |
| } |
| }, |
| "resultName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "action" |
| }, |
| "status" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "notRequested" |
| } |
| }, |
| "buildResult" : { |
| "_type" : { |
| "_name" : "ActionResult" |
| }, |
| "coverage" : { |
| "_type" : { |
| "_name" : "CodeCoverageInfo" |
| } |
| }, |
| "issues" : { |
| "_type" : { |
| "_name" : "ResultIssueSummaries" |
| } |
| }, |
| "logRef" : { |
| "_type" : { |
| "_name" : "Reference" |
| }, |
| "id" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "0~XBP6QfgBACcao7crWD8_8W18SPIqMzlK0U0oBhSvElOM8k-vQKO4ZmCtUhL-BfTDFSylC3qEPStUI3jNsBPTXA==" |
| }, |
| "targetType" : { |
| "_type" : { |
| "_name" : "TypeDefinition" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "ActivityLogSection" |
| } |
| } |
| }, |
| "metrics" : { |
| "_type" : { |
| "_name" : "ResultMetrics" |
| } |
| }, |
| "resultName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "build" |
| }, |
| "status" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "succeeded" |
| } |
| }, |
| "endedTime" : { |
| "_type" : { |
| "_name" : "Date" |
| }, |
| "_value" : "2021-10-27T13:13:38.875-0700" |
| }, |
| "runDestination" : { |
| "_type" : { |
| "_name" : "ActionRunDestinationRecord" |
| }, |
| "displayName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Any iOS Device" |
| }, |
| "localComputerRecord" : { |
| "_type" : { |
| "_name" : "ActionDeviceRecord" |
| }, |
| "busSpeedInMHz" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "100" |
| }, |
| "cpuCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "1" |
| }, |
| "cpuKind" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "12-Core Intel Xeon E5" |
| }, |
| "cpuSpeedInMHz" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "2700" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "2BE58010-D352-540B-92E6-9A945BA6D36D" |
| }, |
| "isConcreteDevice" : { |
| "_type" : { |
| "_name" : "Bool" |
| }, |
| "_value" : "true" |
| }, |
| "logicalCPUCoresPerPackage" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "24" |
| }, |
| "modelCode" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "MacPro6,1" |
| }, |
| "modelName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Mac Pro" |
| }, |
| "modelUTI" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.macpro-cylinder" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "My Mac" |
| }, |
| "nativeArchitecture" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "x86_64" |
| }, |
| "operatingSystemVersion" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "11.6" |
| }, |
| "operatingSystemVersionWithBuildNumber" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "11.6 (20G165)" |
| }, |
| "physicalCPUCoresPerPackage" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "12" |
| }, |
| "platformRecord" : { |
| "_type" : { |
| "_name" : "ActionPlatformRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.platform.macosx" |
| }, |
| "userDescription" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "macOS" |
| } |
| }, |
| "ramSizeInMegabytes" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "65536" |
| } |
| }, |
| "targetArchitecture" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "arm64e" |
| }, |
| "targetDeviceRecord" : { |
| "_type" : { |
| "_name" : "ActionDeviceRecord" |
| }, |
| "busSpeedInMHz" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "0" |
| }, |
| "cpuCount" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "0" |
| }, |
| "cpuSpeedInMHz" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "0" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder" |
| }, |
| "logicalCPUCoresPerPackage" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "0" |
| }, |
| "modelCode" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "GenericiOS" |
| }, |
| "modelName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "GenericiOS" |
| }, |
| "modelUTI" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.dt.Xcode.device.GenericiOS" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Any iOS Device" |
| }, |
| "nativeArchitecture" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "arm64e" |
| }, |
| "physicalCPUCoresPerPackage" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "0" |
| }, |
| "platformRecord" : { |
| "_type" : { |
| "_name" : "ActionPlatformRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "com.apple.platform.iphoneos" |
| }, |
| "userDescription" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iOS" |
| } |
| }, |
| "ramSizeInMegabytes" : { |
| "_type" : { |
| "_name" : "Int" |
| }, |
| "_value" : "0" |
| } |
| }, |
| "targetSDKRecord" : { |
| "_type" : { |
| "_name" : "ActionSDKRecord" |
| }, |
| "identifier" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iphoneos15.0" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "iOS 15.0" |
| }, |
| "operatingSystemVersion" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "15.0" |
| } |
| } |
| }, |
| "schemeCommandName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Run" |
| }, |
| "schemeTaskName" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Build" |
| }, |
| "startedTime" : { |
| "_type" : { |
| "_name" : "Date" |
| }, |
| "_value" : "2021-10-27T13:13:02.396-0700" |
| }, |
| "title" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "Build \"XCResultTestApp\"" |
| } |
| } |
| ] |
| }, |
| "issues" : { |
| "_type" : { |
| "_name" : "ResultIssueSummaries" |
| } |
| }, |
| "metadataRef" : { |
| "_type" : { |
| "_name" : "Reference" |
| }, |
| "id" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "0~4PY3oMxYEC19JHgIcIfOFnFe-ngUSzJD4NzcBevC8Y2-5y41lCyXxYXhi9eObvKdlU14arnDn8ilaTw6B_bbQQ==" |
| }, |
| "targetType" : { |
| "_type" : { |
| "_name" : "TypeDefinition" |
| }, |
| "name" : { |
| "_type" : { |
| "_name" : "String" |
| }, |
| "_value" : "ActionsInvocationMetadata" |
| } |
| } |
| }, |
| "metrics" : { |
| "_type" : { |
| "_name" : "ResultMetrics" |
| } |
| } |
| } |
| |
| '''; |
| |
| const String _tempResultPath = 'temp'; |