关于Fastlane deliver区分iPad Pro型号及frameit使用的技术咨询
关于fastlane中frameit、deliver的两个问题:iPad Pro区分与非带框图片处理
1. deliver能否区分同尺寸不同代的iPad Pro?
可以,但前提是你的截图文件名包含精确的设备标识符(比如iPadPro12.9-inch_3rdGen、iPadPro12.9-inch_4thGen),deliver会根据这些标识符匹配App Store对应的设备截图位置。
frameit默认可能只按屏幕尺寸匹配框架,导致无法区分同尺寸不同代机型。解决办法是自定义Framefile.json,为每一代iPad Pro指定专属框架文件,同时确保截图命名带有精确设备名,让frameit能正确匹配对应的框架。
2. Fastfile中使用frameit和deliver时,如何忽略/删除非带框图片?
针对frameit:
frameit默认会在原截图目录生成带框的新截图(后缀为_framed),如果要直接删除原图、保留带框图,可以在调用frameit时添加delete_original: true参数。
针对deliver:
deliver默认会上传目录下所有符合命名规范的截图,如果你只想上传带框版本,可以通过screenshot_paths参数指定只包含带框截图的路径,或者先通过frameit删除原图再上传。
Fastfile示例代码
platform :ios do desc "Generate new localized screenshots with frames and upload to App Store" lane :screenshots do capture_screenshots(scheme: "AppUITests") # 生成带框截图并删除原图 frameit(delete_original: true) # 若需区分同尺寸不同代iPad Pro,可指定自定义Framefile # frameit(framefile: "./Framefile.json", delete_original: true) # 仅上传带框截图到App Store upload_to_app_store( skip_binary_upload: true, skip_metadata: true, overwrite_screenshots: true, screenshot_paths: Dir.glob("./fastlane/screenshots/**/*_framed.png") ) end end
自定义Framefile.json示例(区分同尺寸iPad Pro)
如果需要让frameit识别不同代iPad Pro,创建Framefile.json放在项目根目录,指定各机型对应的框架文件:
{ "devices": { "iPadPro12.9-inch_3rdGen": { "frame": "./frames/ipad_pro_12.9_3rd_gen.png" }, "iPadPro12.9-inch_4thGen": { "frame": "./frames/ipad_pro_12.9_4th_gen.png" } } }
内容的提问来源于stack exchange,提问作者BPDev
相关产品推荐
相关产品推荐

