文档章节

Xcode编译出现Test Target源文件报错

yoyoso
 yoyoso
发布于 2015/02/16 15:52
字数 656
阅读 2598
收藏 0

有几次遇到从网上下载到的iOS开源代码编译报错,报错位置为Test Target的源文件,我就挺奇怪我又没做测试为啥会编译Test Target的源文件,之前的暴力解决方法是把Test Target直接删掉。

未免太暴力了点,删除了还不好恢复,我想换一个方法来解决。首先就是要弄明白为啥会编译Test Target源文件。摸索了一下,找到了原因:选择Xcode左上角Simulator/Device左侧的Scheme名,在下拉列表里选择Edit Scheme,随后选择Build选项,可以看到里面有Test Target,并且勾选了对应的Run选项。取消勾选Test Target的Run选项,再重新Build,就不会报错了。

至于Test Target源文件中的代码问题,以后再解决了。

关于Scheme、Target、Workspace的一些信息如下:

------------------Scheme------------------

An Xcode scheme defines a collection of targets to build, a configuration to use when building, and a collection of tests to execute.
You can have as many schemes as you want, but only one can be active at a time. You can specify whether a scheme should be stored in a project—in which case it’s available in every workspace that includes that project, or in the workspace—in which case it’s available only in that workspace. When you select an active scheme, you also select a run destination (that is, the architecture of the hardware for which the products are built)

可以看出Scheme和Targets可以是一对一,也可以是一对多的关系。同一时间只能有一个scheme是激活的。

------------------Target------------------

A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. A target defines a single product; it organizes the inputs into the build system—the source files and instructions for processing those source files—required to build that product. Projects can contain one or more targets, each of which produces one product.

------------------Workspace------------------

A workspace is an Xcode document that groups projects and other documents so you can work on them together. A workspace can contain any number of Xcode projects, plus any other files you want to include. In addition to organizing all the files in each Xcode project, a workspace provides implicit and explicit relationships among the included projects and their targets.

可以看出一个workspace里可以包含多个Xcode project。

使用Workspace的好处有:
1),扩展项目的可视域,即可以在多个项目之间跳转,重构,一个项目可以使用另一个项目的输 出。Workspace会负责各个Project之间提供各种相互依赖的关系;
2),多个项目之间共享Build目录。

参考:

Xcode Concepts

iOS:Xcode一些概念Target|Project|Build Setting|Workspace|Scheme[译]Xcode Concepts
猿题库iOS客户端的技术细节(一):使用多target来构建大量相似App

workspace & subProject & target

Xcode Multi-Target 管理多版本开发

© 著作权归作者所有

共有 人打赏支持
yoyoso
粉丝 48
博文 127
码字总数 44692
作品 0
南京
高级程序员
加载中

评论(2)

芜阳湖
芜阳湖
楼上正解
m
mr_shawn
不错,解决了我的问题
iOS 在 Xcode 中重命名项目名称

文/liuwin7(简书作者) 原文链接:http://www.jianshu.com/p/5f088acecf64 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 本教程使用的 Xcode 版本是Xcode 6.3.1,网上...

豆花饭烧土豆
2016/03/21
34
0
Xcode中的 workspace, project, target, scheme

Xcode Project Xcode中的 project里面包含了所有的源文件,资源文件和构建一个或者多个product的信息。project利用他们去编译我们所需的product,也帮我们组织它们之间的关系。一个project可...

JlongTian
2016/12/25
3
0
iOS - Library 库

1、动态库 & 静态库 什么是库: 库是程序代码的集合,是共享程序代码的一种方式。根据源代码的公开情况,库可以分为 2 种类型: 开源库: 闭源库: 静态库和动态库: iOS 中静态库和动态库的...

仟0123
2016/09/05
0
0
把cocos2dx的游戏打包成dylib,实现动态更新

基于运营的需要,我们的游戏需要动态更新,但是已经用cocos2dx做得差不多了,再改成lua时间不允许,所以实现另一种更新方式,就是使用动态库。 这种方法的核心思路就是把整个游戏代码抽成一个...

robslove
2015/09/19
285
0
iOS 第三方之百度地图环境搭建一

一、先按照官方注意事项修改Xcode环境 静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方...

萨斯辈的呼唤
2014/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部