gpt4 book ai didi

ios - Xcode 10.1 : Pods not compiling when running UITest

转载 作者:行者123 更新时间:2023-11-29 05:57:46 24 4
gpt4 key购买 nike

我正在尝试在我正在开发的应用程序中实现 UITests。

当我在 UITests.swift 文件中并尝试通过测试运行应用程序时,Xcode 对我正在使用的某些 pod 给出以下错误:

Command CompileSwift failed with a nonzero exit code

对于运行常规项目时编译正常的一堆 Pod 会出现此错误:

enter image description here

我的 PodFile 如下所示:

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

source 'https://github.com/cocoapods/specs.git'

project 'Project.xcodeproj'

use_frameworks!

# Define all thirdparty pods we need
def thirdparty
pod 'Moya', '~> 11.0'
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'Differ'
.. a bunch of other pods
end

# Pods for Project project
target 'Project' do
thirdparty
end

# Pods for ProjectTests
target 'ProjectUITests' do
thirdparty

pod 'Nimble'
end

我很难推理为什么会发生这种情况,因为我的项目通常编译得很好。关于 S.O. 的其他帖子关于此问题报告,构建项目时也会出现该问题,而不仅仅是运行测试

问题如何确保我在项目中使用的所有 pod 在从 UITest 构建时也能正确编译?

最佳答案

How can I make sure that all pods I use in my project, also compile correctly when building from a UITest?

知道某个东西是否会构建的唯一方法就是尝试构建它。因此,当您更改 CocoaPods 配置时,即使只是更新到一个或多个 pod 的较新版本,您也需要尝试构建每个目标。

target 'ProjectUITests' do
thirdparty
pod 'Nimble'
end`

根据您的 Podfile,您的 pod Nimble 仅在 ProjectUITests 目标中使用。如果这是唯一需要构建的目标,那么该 pod 很可能就是罪魁祸首。

除了一种情况(至少就您所显示的而言),您的 Podfile 不会为其指定的各种 pod 指定版本。如果您省略给定 Pod 的版本,您的项目将使用最新的可用版本。这意味着每当您更新 pod 时,您都会下载最新版本,即使该新版本包含重大更改。指定您知道有效的版本会更安全,或者至少将版本限制为次要版本和补丁更新,例如:

pod 'Nimble', '~>7.0'

这将使 CocoaPods 自动使用最新版本,最高版本为 8.0(但不包括 8.0)。如果 Pod 开发人员正确遵循 semantic versioning方案,这应该确保您不会无意中引入任何重大更改。

关于ios - Xcode 10.1 : Pods not compiling when running UITest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54983228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com