文档章节

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

yoyoso
 yoyoso
发布于 2015/02/16 15:52
字数 656
阅读 2575
收藏 0
点赞 0
评论 2

有几次遇到从网上下载到的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
博文 123
码字总数 43673
作品 0
南京
高级程序员
加载中

评论(2)

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

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

豆花饭烧土豆 ⋅ 2016/03/21 ⋅ 0

Xcode中的 workspace, project, target, scheme

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

JlongTian ⋅ 2016/12/25 ⋅ 0

iOS - Library 库

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

仟0123 ⋅ 2016/09/05 ⋅ 0

把cocos2dx的游戏打包成dylib,实现动态更新

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

robslove ⋅ 2015/09/19 ⋅ 0

iOS 第三方之百度地图环境搭建一

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

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

Xcode中的 编译过程以及编译器

一。 在Xcode里写C语言函数的编译过程 1.编译,连接,运行 编译 1.什么是编译:将C源程序翻译成计算机能识别的0和1 2.使用什么编译器:3之前用GCC,Xcode4之后使用LLVM编译器(前端clang) 在终...

水一样的人儿 ⋅ 2016/11/14 ⋅ 0

NO architectures to compile for (ONLY_ACTIVE_ARCH=YES,active arch=x86_64,

运行程序出错,首先确定是否运行设备出错。 error: missing required architecture x86_64 in file 解决方案如下: targets ->build setting 下的 architectures 设置为 standard architetu...

水一样的人儿 ⋅ 2016/08/16 ⋅ 0

Jenkins持续集成之iOS应用打包

面向读者 Jenkins入门即可,但需要有亲自实践过 会用Mac,了解一些Xcode的基本知识 必要条件 一台Mac电脑 苹果开发者证书 一个可以正常编译的App项目源码 环境配置 iOS的打包主要是分为导入证...

go-skyblue ⋅ 2016/07/03 ⋅ 0

[基础]iOS 单元测试(一)入门与配置

所有文章目录:http://my.oschina.net/ChenTF/blog/677112 本篇文章地址: http://my.oschina.net/ChenTF/blog/677309 会持续的更新所有历史文章, 所以收藏的话请收藏上面的地址。 workspace ...

advancer_chen ⋅ 2016/05/18 ⋅ 1

在同个工程中使用 Swift 和 Objective-C(Swift 2.0更新)

本节包含内容: Mix and Match 概述(Mix and Match Overview) 在同个应用的 target 中导入(Importing Code from Within the Same App Target) 在同个 Framework 的 target 中导入(Impor...

法斗斗 ⋅ 2016/03/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 2分钟前 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 6分钟前 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 19分钟前 ⋅ 0

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 38分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 54分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部