diff --git a/lib/oto/commands/build/build_ios.dart b/lib/oto/commands/build/build_ios.dart index e10d314..bc3b97b 100644 --- a/lib/oto/commands/build/build_ios.dart +++ b/lib/oto/commands/build/build_ios.dart @@ -40,11 +40,16 @@ class BuildiOS extends Command { if (appID == null) { throw Exception('Can not find App Identifier.'); } + var teamID = data.teamID; + if(teamID == null) { + throw Exception('Can not find Apple Store Team ID'); + } if (data.apiKeyPath == null) { throw Exception( 'If autoVersionNumber = true then must set apiKeyPath.'); } - var fastFile = await initializeFastlane(data.workspace!, data.apiKeyPath!, appID); + var apiKeyPath = data.apiKeyPath!; + var fastFile = await initializeFastlane(data.workspace!, apiKeyPath, appID); var fastlaneContent = fastFile.readAsStringSync(); //Find PREPARE_FOR_SUBMISSION state Version @@ -82,14 +87,13 @@ class BuildiOS extends Command { fastFile.writeAsStringSync(fastlaneContent, flush: true); shell = StringBuffer(); shell.write('cd ${data.workspace}/fastlane'); - shell.write(' && fastlane latest_build_number'); + shell.write(' && fastlane run latest_testflight_build_number app_identifier:$appID version:$version platform:ios api_key_path:"$apiKeyPath" team_id:"$teamID"'); process = await ProcessExecutor.run(shell); arr = process.stdout.toString().split('\n'); for (var item in arr) { if (item.contains(result)) { - var json = - jsonDecode(item.substring(item.indexOf(result) + result.length)); - targetBuildNumber = json['latest_build_number']; + targetBuildNumber = item.substring(item.indexOf(result) + result.length).trim(); + print('Build Number: $targetBuildNumber'); break; } } diff --git a/lib/oto/data/command_data.dart b/lib/oto/data/command_data.dart index 2f12588..8273270 100644 --- a/lib/oto/data/command_data.dart +++ b/lib/oto/data/command_data.dart @@ -226,6 +226,7 @@ class DataBuildiOS extends DataParam { late String? version; //존재시 autoBuildNumber = false late String? buildNumber; //존재시 autoBuildNumber = false late bool? autoBuildNumber = false; + late String? teamID; //Apple store team ID late String? apiKeyPath; //autoVersionNumber 사용시 필수 //set diff --git a/lib/oto/data/command_data.g.dart b/lib/oto/data/command_data.g.dart index ed4c701..5f5cfff 100644 --- a/lib/oto/data/command_data.g.dart +++ b/lib/oto/data/command_data.g.dart @@ -402,6 +402,7 @@ DataBuildiOS _$DataBuildiOSFromJson(Map json) => DataBuildiOS() ..version = json['version'] as String? ..buildNumber = json['buildNumber'] as String? ..autoBuildNumber = json['autoBuildNumber'] as bool? + ..teamID = json['teamID'] as String? ..apiKeyPath = json['apiKeyPath'] as String? ..setVersion = json['setVersion'] as String? ..setBuildNumber = json['setBuildNumber'] as String? @@ -427,6 +428,7 @@ Map _$DataBuildiOSToJson(DataBuildiOS instance) => 'version': instance.version, 'buildNumber': instance.buildNumber, 'autoBuildNumber': instance.autoBuildNumber, + 'teamID': instance.teamID, 'apiKeyPath': instance.apiKeyPath, 'setVersion': instance.setVersion, 'setBuildNumber': instance.setBuildNumber,