我已经进行了一些过去一年的UI测试,他们每晚都会运行,我们设置了一台显示器,这样我们就可以看到它们何时出现故障,而且几个月和几个月都没问题.
今天早上我们将机器更新为Xcode 8.3.2,将构建服务器从8.2更新到8.3.2,现在UI测试不再通过.
我有一个包含12个单元格的tableView,前6个是可见的,但我想按最后一个单元格,所以我调用swipeUp()来滚动tableView.通常,tableView将滚动一两秒,我想要的单元格变得可见,我可以断言它存在并在其上调用tap().
然而,现在,当观看UI测试运行时,当调用swipeUp()方法时,它不再滚动很长时间.它似乎只滚动几毫米然后停止,这意味着断言失败,我们无法点击单元格,因此我们所有的UI测试都失败了.
我在网上搜索过这个,除了这个似乎有同样问题的小片段之外,找不到太多信息.
我试图按照建议删除swipeUp()调用,但这似乎没有解决问题,我们已经测试了几个Xcode安装和笔记本电脑以达到同样的效果.
只是寻找一些建议,我想知道是否有其他人看过这个问题?
在工作中,我们一直在转向基于 VIPER 的架构,因此我编写了一个 Xcode 模板,用于创建和实例化所有必需的文件,这些文件非常适合我们的需要。
我已经粘贴了它~/Library/Developer/Xcode/Templates,它工作正常并且显示良好,但是我被要求研究是否可以在整个团队中同步它,而不是每当有更改时都必须通过电子邮件将其发送给每个人,或者重新上传到Confluence 并让每个人重新下载并重新安装它。现在,我在网上查看了,但我看不到任何关于在团队成员之间同步它们的任何帮助,所以我只是想问你们是否知道一种方法?
感谢一百万个家伙
我有一个包含全宽的单元格UIImageView,我正在创建一个AVPlayerLayer来播放内嵌视频。这几乎完美地工作,唯一的问题是当它被添加到previewImage图像视图时,这是一个完美显示的全宽图像视图,它的左侧和右侧有 1 px 的间隙。因此,当视频播放时,您可以真正注意到它并且非常刺耳。
我是这样设置的:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: false)
let cell = tableView.cellForRow(at: indexPath) as! GameMediaCell
if (cell.playerLayer != nil) {
cell.playerLayer?.player?.pause()
cell.playerLayer?.removeFromSuperlayer()
cell.playerLayer = nil
} else {
if let clipURI = viewModel?.mediaURIForIndex(indexPath.row) {
let player = AVPlayer(url: clipURI)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = cell.previewImage.frame
cell.previewImage.layer.addSublayer(playerLayer)
cell.playerLayer = playerLayer
playerLayer.player?.play()
}
}
}
Run Code Online (Sandbox Code Playgroud) 所以我已经下载了Xcode 9测试版,我的任务是将我们的一个内部pod从Swift 3更新到Swift 4.我已经克隆了repo,并打开它,可以查看所有项目文件和其他所有内容,但没有计划,我无法使用,Edit > Convert > Convert to current Swift syntax因为它是灰色的.
在主项目中,我使用了迁移工具,然后手动完成并添加了@objc以暴露Objective-C中引用的内容,但我似乎无法使用pod进行操作.
我只是想知道是否有人有任何更新pod到Swift 4的经验,如果是这样我怎么去做,因为网上的信息很少.
非常感谢,一如既往
尼尔