@daemux/store-automator 0.10.4 → 0.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "App Store & Google Play automation for Flutter apps",
8
- "version": "0.10.4"
8
+ "version": "0.10.6"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "store-automator",
13
13
  "source": "./plugins/store-automator",
14
14
  "description": "3 agents for app store publishing: reviewer, meta-creator, media-designer",
15
- "version": "0.10.4",
15
+ "version": "0.10.6",
16
16
  "keywords": [
17
17
  "flutter",
18
18
  "app-store",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daemux/store-automator",
3
- "version": "0.10.4",
3
+ "version": "0.10.6",
4
4
  "description": "Full App Store & Google Play automation for Flutter apps with Claude Code agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "store-automator",
3
- "version": "0.10.4",
3
+ "version": "0.10.6",
4
4
  "description": "App Store & Google Play automation agents for Flutter app publishing",
5
5
  "author": {
6
6
  "name": "Daemux"
@@ -7,6 +7,23 @@ APP_DIR = ENV.fetch("APP_ROOT", "#{ROOT_DIR}/app")
7
7
  APP_DIR = "#{ROOT_DIR}/#{APP_DIR}" unless APP_DIR.start_with?("/")
8
8
 
9
9
  AAB_PATH = "#{APP_DIR}/build/app/outputs/bundle/release/app-release.aab"
10
+ METADATA_DIR = "#{ROOT_DIR}/fastlane/metadata/android"
11
+ SCREENSHOT_DIR = "#{ROOT_DIR}/fastlane/screenshots/android"
12
+
13
+ # Fastlane supply expects screenshots at {metadata_path}/{locale}/images/.
14
+ # Our screenshots live in a separate directory (fastlane/screenshots/android/{locale}/).
15
+ # Bridge the gap by symlinking each locale's screenshot folder into the metadata tree.
16
+ def link_screenshots_into_metadata
17
+ return unless File.directory?(SCREENSHOT_DIR)
18
+ Dir.glob("#{SCREENSHOT_DIR}/*/").each do |locale_dir|
19
+ locale = File.basename(locale_dir)
20
+ images_link = "#{METADATA_DIR}/#{locale}/images"
21
+ next if File.exist?(images_link)
22
+ FileUtils.mkdir_p("#{METADATA_DIR}/#{locale}")
23
+ FileUtils.ln_s(locale_dir.chomp("/"), images_link)
24
+ Fastlane::UI.message("Linked screenshots: #{images_link} -> #{locale_dir.chomp('/')}")
25
+ end
26
+ end
10
27
 
11
28
  def metadata_changed?(path)
12
29
  !sh("git diff --name-only HEAD~1 -- #{path}").strip.empty?
@@ -32,6 +49,7 @@ end
32
49
 
33
50
  platform :android do
34
51
  lane :deploy_android do
52
+ link_screenshots_into_metadata
35
53
  status = ENV.fetch("RELEASE_STATUS", "draft")
36
54
  opts = base_play_store_options.merge(
37
55
  aab: AAB_PATH,
@@ -40,7 +58,7 @@ platform :android do
40
58
  skip_upload_screenshots: !metadata_changed?("fastlane/screenshots/android/"),
41
59
  skip_upload_images: !metadata_changed?("fastlane/screenshots/android/"),
42
60
  skip_upload_changelogs: false,
43
- metadata_path: "#{ROOT_DIR}/fastlane/metadata/android"
61
+ metadata_path: METADATA_DIR
44
62
  )
45
63
  opts.merge!(rollout_options) unless status == "draft"
46
64
  upload_to_play_store(opts)
@@ -63,6 +81,7 @@ platform :android do
63
81
  # this keeps working after the first production release.
64
82
  status = ENV.fetch("RELEASE_STATUS", "draft")
65
83
 
84
+ link_screenshots_into_metadata
66
85
  upload_to_play_store(
67
86
  base_play_store_options.merge(
68
87
  version_code: latest_code,
@@ -73,7 +92,7 @@ platform :android do
73
92
  skip_upload_screenshots: false,
74
93
  skip_upload_images: false,
75
94
  skip_upload_changelogs: true,
76
- metadata_path: "#{ROOT_DIR}/fastlane/metadata/android"
95
+ metadata_path: METADATA_DIR
77
96
  )
78
97
  )
79
98
  end
@@ -80,8 +80,7 @@ platform :ios do
80
80
  skip_metadata: !metadata_changed?("fastlane/metadata/ios/"),
81
81
  skip_screenshots: !metadata_changed?("fastlane/screenshots/ios/"),
82
82
  run_precheck_before_submit: true,
83
- precheck_include_in_app_purchases: false,
84
- wait_processing_timeout_duration: 1800
83
+ precheck_include_in_app_purchases: false
85
84
  )
86
85
  )
87
86
  end
@@ -105,8 +104,7 @@ platform :ios do
105
104
  skip_metadata: true,
106
105
  skip_screenshots: true,
107
106
  run_precheck_before_submit: false,
108
- submit_for_review: false,
109
- wait_processing_timeout_duration: 1800
107
+ submit_for_review: false
110
108
  )
111
109
  )
112
110
  end