使用Fastlane生成watchOS截图时,如何移除「iPhone已断开」图标?
解决Fastlane生成watchOS截图时状态栏「iPhone已断开」标识的问题
方案1:修改Fastlane配置,同时启动配对模拟器仅截watchOS截图
Fastlane默认启动指定模拟器前会关闭其他模拟器,所以要先手动启动配对的iPhone和watchOS模拟器,再指定仅在watchOS上执行截图任务:
- 获取配对设备的UDID:
执行命令xcrun simctl list devices,找到标注有Paired to的iPhone和watchOS设备,记下它们的UDID。 - 在Fastfile里编写对应的lane:
这样Fastlane会保留已启动的配对iPhone模拟器,watchOS状态栏就不会出现断开标识。lane :watch_screenshots do # 先启动配对的iPhone模拟器 boot_simulator(udid: "你的iPhone模拟器UDID") # 再启动目标watchOS模拟器 boot_simulator(udid: "你的watchOS模拟器UDID") # 指定仅在watchOS模拟器上生成截图 screenshots( devices: ["你的watchOS模拟器UDID"], skip_open_simulator: false ) # 可选:截图完成后关闭所有模拟器 sh "xcrun simctl shutdown all" end
方案2:后期处理截图,集成到Fastlane工作流
用ImageMagick对生成的截图进行批量处理,覆盖状态栏的「iPhone已断开」标识:
- 安装ImageMagick:
brew install imagemagick - 在Fastfile的截图lane后添加处理步骤:
你可以用截图工具查看「iPhone已断开」标识的具体坐标,修改lane :watch_screenshots do # 正常生成watchOS截图 screenshots(devices: ["你的watchOS模拟器UDID"]) # 批量处理所有截图,覆盖状态栏的断开标识 Dir.glob("./fastlane/screenshots/*.png").each do |img_path| # 请根据实际截图的坐标调整矩形区域,示例为覆盖右上角区域 sh "convert #{img_path} -fill '#FFFFFF' -draw 'rectangle 250,0 360,20' #{img_path}" end endrectangle的参数(格式为x1,y1 x2,y2,即矩形左上角和右下角坐标),确保完全覆盖标识。
内容的提问来源于stack exchange,提问作者kelin
相关产品推荐
相关产品推荐

