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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6de0b6cc78d131ab369ce7c04ee3697533081dd1920dc4438a076b57ccc7e469
|
|
4
|
+
data.tar.gz: 6429da3201cc915b6488d28e8524fc9e766fcb5e80c12edea525beed9b37b0db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|