You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:12:50