Skip to content

Commit

Permalink
refactor(environment): load environment using environment_config
Browse files Browse the repository at this point in the history
  • Loading branch information
JagandeepBrar committed Jun 14, 2022
1 parent ef9bbaf commit c4dd509
Show file tree
Hide file tree
Showing 19 changed files with 184 additions and 173 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/prepare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,10 @@ jobs:

- name: Generate Environment Configuration
run: |
echo FLAVOR=${{ inputs.flavor }} > .env
echo COMMIT=${{ github.sha }} >> .env
echo BUILD=${{ needs.build-details.outputs.build-number }} >> .env
export FLAVOR=${{ inputs.flavor }}
export COMMIT=${{ github.sha }}
export BUILD=${{ needs.build-details.outputs.build-number }}
flutter packages pub run environment_config:generate
- name: Generate Localization
run: dart ${{github.workspace }}/scripts/generate_localization.dart
Expand All @@ -231,6 +232,6 @@ jobs:
with:
name: core-files
path: |
${{ github.workspace }}/.env
${{ github.workspace }}/assets/localization
${{ github.workspace }}/lib/**/*.g.dart
${{ github.workspace }}/lib/system/environment.dart
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ ios/Flutter/.last_build_id
output/
*.packages
coverage/
lib/system/environment.dart

# XCode Build Artifacts
ios/build/
Expand Down
34 changes: 22 additions & 12 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"request": "launch",
"type": "dart"
}
]
}
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"request": "launch",
"type": "dart",
"flutterMode": "debug"
},
{
"name": "Profile",
"request": "launch",
"type": "dart",
"flutterMode": "profile"
},
{
"name": "Release",
"request": "launch",
"type": "dart",
"flutterMode": "release"
}
]
}
5 changes: 0 additions & 5 deletions .vscode/settings.json

This file was deleted.

17 changes: 17 additions & 0 deletions environment_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
environment_config:
path: system/environment.dart
class: LunaEnvironment

fields:
build:
type: int
default: 9999999999
env_var: BUILD
commit:
type: String
default: master
env_var: COMMIT
flavor:
type: String
default: edge
env_var: FLAVOR
8 changes: 4 additions & 4 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,9 @@ PODS:
- PromisesObjC (2.1.0)
- quick_actions_ios (0.0.1):
- Flutter
- SDWebImage (5.12.5):
- SDWebImage/Core (= 5.12.5)
- SDWebImage/Core (5.12.5)
- SDWebImage (5.12.6):
- SDWebImage/Core (= 5.12.6)
- SDWebImage/Core (5.12.6)
- share_plus (0.0.1):
- Flutter
- shared_preferences_ios (0.0.1):
Expand Down Expand Up @@ -272,7 +272,7 @@ SPEC CHECKSUMS:
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
PromisesObjC: 99b6f43f9e1044bd87a95a60beff28c2c44ddb72
quick_actions_ios: 622e9076602c57f1f937f1c13e5c59c3379347e9
SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
SDWebImage: a47aea9e3d8816015db4e523daff50cfd294499d
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
Expand Down
162 changes: 81 additions & 81 deletions ios/Runner.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import 'package:lunasea/system/network/network.dart';
import 'package:lunasea/system/quick_actions/quick_actions.dart';
import 'package:lunasea/system/window_manager/window_manager.dart';
import 'package:lunasea/system/platform.dart';
import 'package:lunasea/widgets/changelog/sheet.dart';
import 'package:lunasea/utils/changelog/sheet.dart';

/// LunaSea Entry Point: Initialize & Run Application
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:lunasea/system/environment.dart';
import 'package:lunasea/system/flavor.dart';
import 'package:lunasea/system/platform.dart';
import 'package:lunasea/vendor.dart';
import 'package:lunasea/widgets/changelog/sheet.dart';
import 'package:lunasea/utils/changelog/sheet.dart';
import 'package:lunasea/widgets/ui.dart';

class BuildDetails extends ConsumerStatefulWidget {
Expand Down
2 changes: 1 addition & 1 deletion lib/system/build.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class LunaBuild {
Future<Tuple2<bool, int?>> isLatestBuildNumber() async {
try {
final latest = await LunaPlatform.current.getLatestBuildNumber();
final current = int.parse(LunaEnvironment.build);
const current = LunaEnvironment.build;
return Tuple2(latest > current, latest);
} catch (error, stack) {
LunaLogger().error(
Expand Down
11 changes: 4 additions & 7 deletions lib/system/environment.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import 'package:envify/envify.dart';
class LunaEnvironment {
static const int build = 9999999999;

part 'environment.g.dart';
static const String commit = 'master';

@Envify(path: '.env')
class LunaEnvironment {
static const flavor = _LunaEnvironment.flavor;
static const commit = _LunaEnvironment.commit;
static const build = _LunaEnvironment.build;
static const String flavor = 'stable';
}
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:lunasea/vendor.dart';
import 'package:lunasea/widgets/changelog/change.dart';
import 'package:lunasea/utils/changelog/change.dart';

part 'changelog.g.dart';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import 'package:lunasea/extensions/string/string.dart';
import 'package:lunasea/system/logger.dart';
import 'package:lunasea/utils/links.dart';
import 'package:lunasea/vendor.dart';
import 'package:lunasea/widgets/changelog/change.dart';
import 'package:lunasea/widgets/changelog/changelog.dart';
import 'package:lunasea/utils/changelog/change.dart';
import 'package:lunasea/utils/changelog/changelog.dart';
import 'package:lunasea/widgets/ui.dart';

class ChangelogSheet extends LunaBottomModalSheet {
Expand Down
6 changes: 6 additions & 0 deletions macos/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ PODS:
- path_provider_macos (0.0.1):
- FlutterMacOS
- PromisesObjC (2.1.0)
- screen_retriever (0.0.1):
- FlutterMacOS
- share_plus_macos (0.0.1):
- FlutterMacOS
- shared_preferences_macos (0.0.1):
Expand All @@ -133,6 +135,7 @@ DEPENDENCIES:
- FlutterMacOS (from `Flutter/ephemeral`)
- package_info_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus_macos/macos`)
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
- screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`)
- share_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/share_plus_macos/macos`)
- shared_preferences_macos (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos`)
- sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`)
Expand Down Expand Up @@ -175,6 +178,8 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus_macos/macos
path_provider_macos:
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
screen_retriever:
:path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos
share_plus_macos:
:path: Flutter/ephemeral/.symlinks/plugins/share_plus_macos/macos
shared_preferences_macos:
Expand Down Expand Up @@ -214,6 +219,7 @@ SPEC CHECKSUMS:
package_info_plus_macos: f010621b07802a241d96d01876d6705f15e77c1c
path_provider_macos: 3c0c3b4b0d4a76d2bf989a913c2de869c5641a19
PromisesObjC: 99b6f43f9e1044bd87a95a60beff28c2c44ddb72
screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38
share_plus_macos: 853ee48e7dce06b633998ca0735d482dd671ade4
shared_preferences_macos: a64dc611287ed6cbe28fd1297898db1336975727
sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea
Expand Down
62 changes: 31 additions & 31 deletions macos/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
/* End PBXAggregateTarget section */

/* Begin PBXBuildFile section */
2F600FE3F62402782192436B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DB48EBCA5A47F2E6F79DDFF /* Pods_Runner.framework */; };
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
55FFADED2933301E97B1BABB /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A30F9665A09254A75E06F9FF /* Pods_Runner.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand All @@ -53,7 +53,7 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
1097536DBD513F9C322FD573 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
187DB9BA0B8AAA6BED9BF820 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
33CC10ED2044A3C60003C045 /* LunaSea.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LunaSea.app; sourceTree = BUILT_PRODUCTS_DIR; };
Expand All @@ -69,18 +69,18 @@
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
7DB48EBCA5A47F2E6F79DDFF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
840D2EFF54BB8BA5C48160C9 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
A30F9665A09254A75E06F9FF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BBC15298573357D95D4D0A99 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
E6DC3F27087615BE6F68C8AF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
ECCFC5F4CC999172FEEF8738 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
33CC10EA2044A3C60003C045 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
55FFADED2933301E97B1BABB /* Pods_Runner.framework in Frameworks */,
2F600FE3F62402782192436B /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -105,7 +105,7 @@
33CEB47122A05771004F2AC0 /* Flutter */,
33CC10EE2044A3C60003C045 /* Products */,
C16DBC6D5885D252E3ED5BAD /* Pods */,
8F5EB1A4A52EE9E8FC5A9A78 /* Frameworks */,
9981D0ECE95A3641B5BDD4CB /* Frameworks */,
);
sourceTree = "<group>";
};
Expand Down Expand Up @@ -152,20 +152,20 @@
path = Runner;
sourceTree = "<group>";
};
8F5EB1A4A52EE9E8FC5A9A78 /* Frameworks */ = {
9981D0ECE95A3641B5BDD4CB /* Frameworks */ = {
isa = PBXGroup;
children = (
A30F9665A09254A75E06F9FF /* Pods_Runner.framework */,
7DB48EBCA5A47F2E6F79DDFF /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
C16DBC6D5885D252E3ED5BAD /* Pods */ = {
isa = PBXGroup;
children = (
E6DC3F27087615BE6F68C8AF /* Pods-Runner.debug.xcconfig */,
BBC15298573357D95D4D0A99 /* Pods-Runner.release.xcconfig */,
1097536DBD513F9C322FD573 /* Pods-Runner.profile.xcconfig */,
ECCFC5F4CC999172FEEF8738 /* Pods-Runner.debug.xcconfig */,
187DB9BA0B8AAA6BED9BF820 /* Pods-Runner.release.xcconfig */,
840D2EFF54BB8BA5C48160C9 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
Expand All @@ -177,14 +177,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
A5593BAE096AEA0201DAAB81 /* [CP] Check Pods Manifest.lock */,
B8F3EB307248E7051FBCDFB5 /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
17DFD4E1D82334F1A6A6FCFC /* [CP] Embed Pods Frameworks */,
F6073140124ACCDD312AEF35 /* [CP] Copy Pods Resources */,
2C421D662824C5B857818933 /* [CP] Embed Pods Frameworks */,
55ADDF159E358E6038CD610E /* [CP] Copy Pods Resources */,
);
buildRules = (
);
Expand Down Expand Up @@ -253,7 +253,7 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
17DFD4E1D82334F1A6A6FCFC /* [CP] Embed Pods Frameworks */ = {
2C421D662824C5B857818933 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
Expand Down Expand Up @@ -307,43 +307,43 @@
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
A5593BAE096AEA0201DAAB81 /* [CP] Check Pods Manifest.lock */ = {
55ADDF159E358E6038CD610E /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
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-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
F6073140124ACCDD312AEF35 /* [CP] Copy Pods Resources */ = {
B8F3EB307248E7051FBCDFB5 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-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-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-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;
};
/* End PBXShellScriptBuildPhase section */
Expand Down
7 changes: 3 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,12 @@
"fastlane:update:android": "cd android && bundle update",
"fastlane:update:ios": "cd ios && bundle update",
"fastlane:update:macos": "cd macos && bundle update",
"generate": "npm run generate:assets && npm run generate:build_runner && npm run generate:localization",
"generate": "npm run generate:environment && npm run generate:assets && npm run generate:build_runner && npm run generate:localization",
"generate:assets": "dart pub global activate spider && spider build",
"generate:build_runner": "flutter packages pub run build_runner build",
"generate:environment": "flutter pub run environment_config:generate",
"generate:localization": "dart ./scripts/generate_localization.dart",
"git:ignore": "npm run git:ignore:environment && npm run git:ignore:firebase",
"git:ignore:environment": "git update-index --skip-worktree .env",
"git:ignore:firebase": "git update-index --skip-worktree lib/firebase/options.dart",
"git:ignore": "git update-index --skip-worktree lib/firebase/options.dart",
"prepare": "husky install && npm run git:ignore && flutter pub get",
"prepare:keychain": "npm run prepare:keychain:ios && npm run prepare:keychain:macos",
"prepare:keychain:ios": "cd ios && bundle exec fastlane keychain_create && bundle exec fastlane keychain_setup",
Expand Down
Loading

0 comments on commit c4dd509

Please sign in to comment.