使用 Swift5、iOS-12.2、Xcode-10.2(10E125) 并使用 GitLab CI 运行所有内容,
在应用程序发布步骤中,屏幕截图屏幕尺寸似乎存在问题(使用Fastlane的
deliver
)。屏幕截图制作得很好(使用 Fastlane 的 snapshot
和 frameit
工具)。
但是更新到最新的 iOS、Swift 和 Xcode 版本现在突然破坏了我的 Fastlane 工作示例。我现在收到以下错误:
Unsupported screen size [1446, 2948] for path '/Users/user/Documents/Programieren/iPhone_applications/Learning/Watch/MyApp/builds/aMDc3etB/0/myusername/MyAppName/fastlane/screenshots/de-DE/iPhone 8 Plus-01Screenshot_de_framed.png'
Fastlane 是否有问题:
frameit
步骤(因为框架图像的尺寸比 snapshot
创建的图像更大)我想知道我使用 GitLab CI 运行所有内容是否会产生影响(但应该不会)。
deliver
步骤中屏幕截图的屏幕尺寸导致 Fastlane 失败的原因是什么?
以 iPhone8-Plus 为例 - 我意识到:
--> Fastlane
snapshot
步骤后的屏幕截图大小为 [1242 × 2208] 像素
--> Fastlane
frameit
步骤后的框架屏幕截图大小为 [1446 × 2948] 像素
Apple 应用商店要求 [1242 × 2208] 像素大小的图像 - 因此“带框”的图像永远不会被接受!!
会不会有什么问题
frameit
???
我应该在 Snapfile 中选择不同的 iOS 设备(见下文)吗?如果是的话,是哪些??? (也就是说,过去应用商店需要 iPhone8 Plus 尺寸的屏幕截图 [5.5"]。这可能会改变吗??)
这是我的快速文件:
lane :screenshots do
snapshot
frameit(silver: true, path: './fastlane/screenshots')
end
这是我的快照文件:
workspace "MyApp.xcworkspace"
scheme "MyAppUITests"
devices([
"iPhone 8 Plus",
"iPhone SE"
])
languages([
"en-US",
"de-DE"
])
localize_simulator true
clear_previous_screenshots true
erase_simulator true
reinstall_app true
这是我的 Framefile.json 文件:
{
"device_frame_version": "latest",
"default": {
"keyword": {
"fonts": [
{
"font": "./fonts/SF-UI-Display-Semibold.otf",
"supported": ["de-DE", "en-US"]
},
{
"font": "./fonts/Chinese.ttf",
"supported": ["zcmn-Hans"]
}
]
},
"title": {
"fonts": [
{
"font": "./fonts/SF-UI-Display-Regular.otf",
"supported": ["de-DE", "en-US"]
},
{
"font": "./fonts/Chinese.ttf",
"supported": ["zcmn-Hans"]
}
],
"color": "#203943"
},
"background": "./background.jpg",
"padding": 50,
"stack_title" : false,
"title_below_image": false,
"show_complete_frame": false,
},
"data": [
{
"filter": "01",
"keyword": {
"color": "#4B849B"
}
},
{
"filter": "02",
"keyword": {
"color": "#4B849B"
}
},
{
"filter": "03",
"keyword": {
"color": "#4B849B"
}
},
{
"filter": "04",
"keyword": {
"color": "#4B849B"
}
},
{
"filter": "05",
"keyword": {
"color": "#4B849B"
}
},
{
"filter": "06",
"keyword": {
"color": "#4B849B"
}
}
]
}
检查Frameit的源代码会发现它只在
is_complex_framing_mode
时调整最终图像的大小。
要使
is_complex_framing_mode
成立,需要背景和标题(或关键字)。
此外,
show_complete_frame
的默认值为 false。我也把它设置为true。
我发现这种方式会生成正确尺寸的框架图像以提交到 App Store Connect。
这是Framefile.json
{
"default": {
"title": {
"color": "#0000ff01",
"text": "."
},
"show_complete_frame":true,
"background": "./background.jpg",
"padding": 1
},
"data": []
}