fastlane-plugin-appshot 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a15470692555262a4564076e0e13781454d5ac94f1e0a4127113f4ba163a2689
4
- data.tar.gz: 96ee3e2203453bec0644b375c40223166232e35dc4241b7fa172a4b9d37090e3
3
+ metadata.gz: 6de0b6cc78d131ab369ce7c04ee3697533081dd1920dc4438a076b57ccc7e469
4
+ data.tar.gz: 6429da3201cc915b6488d28e8524fc9e766fcb5e80c12edea525beed9b37b0db
5
5
  SHA512:
6
- metadata.gz: f10805d5c8d3fb8ff640853f268251492740731cf72c9363f8e91c274b341995189d4c9953ae730b82912858e4f2f075bc09d2de2cdc29cdd52c2bc8699b97a5
7
- data.tar.gz: 7e4fffaadfc59f6d3c9ebb2bf446b4ae3e62b7c68af7145b30e6e1dd5cc89e4409de5b7c9a7e143337dbe81a5f9ae205f23cb3a5f9410c51f5a0e086b70d3508
6
+ metadata.gz: 8af5fc2343c7e58fe6c5182e31482fc378e2bd7ead68718f96fe391fa165a607d9897656ad84ef0481b9679f65eef36753d008dc6a6b228c7b09977a0ec63ae8
7
+ data.tar.gz: 9e3a2252957c34b25c7d50c5757804e992ddb2cb3e3d00a615a1c63cd9a77f78443163561378f42d45efe89c444a905b21a3aec0b0d1401d9f622d948792782b
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to fastlane-plugin-appshot are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## [0.1.1] - 2026-10-08
6
+
7
+ ### Fixed
8
+
9
+ - Screenshots of a size deliver can't upload, such as the iPhone Duo's 2853×2007 (App Store Connect takes those only through its new asset library), were copied into deliver's folder, where deliver cancels the whole screenshot upload over them. They now stay in the studio's `output/` folder, and the action says which sizes and where to find them. The check is deliver's own list of supported sizes, so it follows deliver when it learns new devices.
10
+
5
11
  ## [0.1.0] - 2026-10-08
6
12
 
7
13
  ### Added
@@ -11,4 +17,5 @@ All notable changes to fastlane-plugin-appshot are documented here. The format i
11
17
  - Safeguards: the action refuses to read raw captures from the folder deliver uploads, warns about other PNGs deliver would upload alongside the framed ones, asks for `device:` when captures from several simulators match, and explains how to install appshot when it is missing.
12
18
  - Requires Ruby 3.1 or later, like current fastlane.
13
19
 
20
+ [0.1.1]: https://github.com/jems19s/fastlane-plugin-appshot/compare/v0.1.0...v0.1.1
14
21
  [0.1.0]: https://github.com/jems19s/fastlane-plugin-appshot/releases/tag/v0.1.0
data/README.md CHANGED
@@ -50,6 +50,10 @@ If snapshot runs on several simulators, say which one appshot frames with `devic
50
50
 
51
51
  snapshot writes to `fastlane/screenshots` by default — the folder `deliver` uploads. Point it somewhere else (`output_directory("./fastlane/raw_screenshots")` in the Snapfile, or the `capture_screenshots` option above), or `deliver` uploads raw and framed images side by side. The action refuses to read and write the same folder, and warns about any other PNGs it finds where it copies.
52
52
 
53
+ ### iPhone Duo
54
+
55
+ appshot 1.4 renders iPhone Duo screenshots ([how to set up the Duo frame](https://github.com/jems19s/appshot-studio#iphone-duo)), but deliver can't upload them yet: App Store Connect takes Duo screenshots only through its new asset library. The action checks every image against deliver's own list of supported sizes and leaves the ones deliver can't upload in the studio's `output/` folder, saying so, for you to upload in App Store Connect.
56
+
53
57
  ## Options
54
58
 
55
59
  | Key | Default | Description |
@@ -43,7 +43,8 @@ module Fastlane
43
43
  locales: locales,
44
44
  slots: slots
45
45
  )
46
- UI.success("Copied #{copied_paths_by_locale.values.sum(&:count)} screenshots into #{output_directory}")
46
+ copied_count = copied_paths_by_locale.values.sum(&:count)
47
+ UI.success("Copied #{copied_count} screenshots into #{output_directory}") if copied_count.positive?
47
48
  copied_paths_by_locale
48
49
  end
49
50
 
@@ -56,7 +57,8 @@ module Fastlane
56
57
  end
57
58
 
58
59
  def self.return_value
59
- "A hash of locale => paths of the framed screenshots copied into output_directory"
60
+ "A hash of locale => paths of the framed screenshots copied into output_directory " \
61
+ "(screenshots deliver can't upload, such as iPhone Duo ones, stay in the studio and are not listed)"
60
62
  end
61
63
 
62
64
  def self.details
@@ -95,24 +95,44 @@ module Fastlane
95
95
  end
96
96
 
97
97
  def self.copy_renders(rendered_folder:, output_directory:, locales:, slots:)
98
+ require "deliver"
98
99
  rendered_files = slots.map { |slot| "#{slot.fetch('name')}.png" }
99
- locales.to_h do |locale|
100
- destination_folder = File.join(output_directory, locale)
101
- FileUtils.mkdir_p(destination_folder)
102
- other_files = Dir.children(destination_folder).select { |file|
103
- file.downcase.end_with?(".png")
104
- } - rendered_files
105
- unless other_files.empty?
106
- UI.important("deliver uploads every PNG in #{destination_folder}, " \
107
- "so these go up too: #{other_files.sort.join(', ')}")
108
- end
109
- copied_paths = rendered_files.map do |file|
110
- destination = File.join(destination_folder, file)
111
- FileUtils.cp(File.join(rendered_folder, locale, file), destination)
112
- destination
100
+ sizes_deliver_cannot_upload = []
101
+ copied_paths_by_locale = locales.to_h do |locale|
102
+ uploadable_files = rendered_files.select do |file|
103
+ rendered_path = File.join(rendered_folder, locale, file)
104
+ next true if Deliver::AppScreenshot.calculate_display_type(rendered_path)
105
+
106
+ sizes_deliver_cannot_upload << FastImage.size(rendered_path).join("×")
107
+ false
113
108
  end
109
+ copied_paths = copy_into_deliver_folder(uploadable_files,
110
+ rendered_locale_folder: File.join(rendered_folder, locale),
111
+ destination_folder: File.join(output_directory, locale))
114
112
  [locale, copied_paths]
115
113
  end
114
+ unless sizes_deliver_cannot_upload.empty?
115
+ UI.important("deliver can't upload #{sizes_deliver_cannot_upload.uniq.join(', ')} screenshots yet " \
116
+ "(such as the iPhone Duo's), so they stay in #{rendered_folder}: " \
117
+ "upload them in App Store Connect")
118
+ end
119
+ copied_paths_by_locale
120
+ end
121
+
122
+ def self.copy_into_deliver_folder(files, rendered_locale_folder:, destination_folder:)
123
+ return [] if files.empty?
124
+
125
+ FileUtils.mkdir_p(destination_folder)
126
+ other_files = Dir.children(destination_folder).select { |file| file.downcase.end_with?(".png") } - files
127
+ unless other_files.empty?
128
+ UI.important("deliver uploads every PNG in #{destination_folder}, " \
129
+ "so these go up too: #{other_files.sort.join(', ')}")
130
+ end
131
+ files.map do |file|
132
+ destination = File.join(destination_folder, file)
133
+ FileUtils.cp(File.join(rendered_locale_folder, file), destination)
134
+ destination
135
+ end
116
136
  end
117
137
  end
118
138
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Appshot
3
- VERSION = "0.1.0".freeze
3
+ VERSION = "0.1.1".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-appshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maksim Zhelezniakov