Xcode 自动化构建问题梳理

一、Xcode

  Xcode是mac OS平台上面开发的官方IDE,可以用来开发iOS应用和mac应用。随着iOS系统的升级,Xcode也会更新,而且是强制更新。

  Xcode每次版本更新稳定性很差,经常Crash,最近的Xcode 8.3版本经常连接不上手机,需要重启电脑才能恢复。

  Xcode和Visual Studio相比,功能和稳定性都相差甚远,在日常开发过程当中,可以毫不客气的说,20%的时间都花在其环境上面,证书配置等。

二、Xcode的编译和命令行脚本编译

  发现一个巨坑的问题,一个崭新的工程,打开Xcode编译的时候,Xcode可能同时为所有工程内的代码文件建立索引。

  编译过程当中,引入的头文件可能会依赖这个索引,这样带来一个严重的问题是,用纯命令行编译打包的时候,没有建立索引的

  过程,因此Xcode工具编译没有问题,但是使用命令行会报错,比如:dailybuildipa 是target, gray是编译配置项

  xcodebuild -target dailybuildipa -configuration gray

  经常会报错

三、命令行编译找不到生成库的头文件

  在我们一个项目工程中,引入了一个子工程,子工程编译生成一个Framework,一定要在编译之后将Framework拷贝到主工程根目录下级一个目录中

  并在工程设置中进行引用设置该头文件的位置,这样才能正常引用到

  

四、命令行编译找不到swift生成的头文件

  根据网络上该问题的配置,要配置统一的MODULE NAME, 还有swift 生成的OC .h文件名,  配置完成之后,用Xcode编译没有错误

  但是使用命令行的时候,还是会出现找不到头文件的问题

  终极解决方案:

    手工添加一个头文件,拷贝swift头文件里面所有的内容,放到主工程中,解决编译错误的问题

  这个方案实在太挫,可是不这么做,编译问题解决不了,可以看出来Xcode每次发布,有多少类似的问题,全是坑!!!

  

  

时间: 2024-10-17 20:26:29

Xcode 自动化构建问题梳理的相关文章

【干货】手动搭建一套可自动化构建的微服务框架

如何阅读 本文篇幅较长,我花了两天的时间完成,大约需要半小时阅读. 本文分为理论篇和实践篇,由于代码在手机端展示并不理想,建议大家收藏之后在PC端阅读.实践篇边动手边阅读更有助于理解. 在阅读的同时,也麻烦各位大佬多多分享! 本文你将学到什么? 本文将以原理+实战的方式,首先对"微服务"相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行

浅谈前端自动化构建

前言 现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难,没有一个统一的标准,让前端的项目结构千奇百怪.前端自动化构建在整个项目开发中越来越重要. 我们首先来回想一下之前我们是如何来开始做一个项目的. ① 首先要确定这个项目要使用什么样的技术来实现,然后开始规划我们的项目目录,接着就要往项目增加第三方库依赖,比如: 拷贝 CSS库(Yui Reset |

[Cake] 0.C#Make自动化构建-简介

0. Cake是什么? Cake是C# Make的缩写,是一个基于C# DSL的自动化构建系统.它可以用来编译代码,复制文件以及文件夹,运行单元测试,压缩文件以及构建Nuget包等等. 熟悉大名鼎鼎的Make的小伙伴,应该已经知道Cake大致是个什么样的工具了,Cake具有以下几个特点: 方便编写:使用基于C#的DSL,非常易于编写自动化的脚本. 跨平台: 基于Roslyn和Mono来编译我们写的自动化脚本,使得它可以运行在windows,linux,mac上. 可靠的:可以建立在自己的机器上,

web 环境搭建00前端自动化构建工具(gulp)

web 环境搭建----前端自动化构建工具(gulp): 1----先下载安装node.js 2----然后在node.js命令行安装:npm install gulp -g (全局下载安装gulp插件) 3----然后进入到项目文件夹(命令cd 文件夹名),在项目文件夹中安装依赖文件:npm install gulp --save-dev (根据依赖文件下载gulp插件) 4----在项目文件夹目录下初始化:npm init (初始化文件) {初始化文件后项目中会出现packgae.json文

更简单的自动化构建

gulp:更简单的自动化构建工具 目前最流行的两种使用JavaScript开发的构建工具是Grunt和Gulp.为什么使用gulp?因为Gulp更简单.Grunt任务拥有大量的配置,会引用大量你实际上并不需要的对象属性,但是Gulp里同样的任务也许只有几行.有兴趣的同学在学完本文后对比使用Grunt,你就会发现Gulp的代码量是最少的. 安装 需要先安装node.js.这里安装的v5.11.0.使用node -v查看版本号. gulp的安装不是很顺利.按照官方给的安装方法: npm instal

Android自动化构建之Ant多渠道打包实践(上)

前言 Ant是历史比较悠久的一个自动化构建工具,Android开发者可以通过它来实现自动化构建,也可以实现多渠道打包,关于apk打包的方式一般有Ant.Python.Gradle三种,这三种打包方式都各自有优点和缺点,本篇博文先给大家介绍如何使用Ant来实现自动构建和多渠道发布. 开发环境 Window7 Ant jdk android sdk mac系统下所需要的运行环境也是类似的,我们都需要配置Ant.jdk.sdk的环境变量,我们可以看一下window下是环境变量配了些什么: ANT_HO

自动化构建1——一致性关键之道

android studio 采用gradle 进行android应用程序的构建,而在eclipse时代,默认是ant,其实java程序也是ant.我不是科班出身,即使是在培训班中,也没有涉及到ant(也许是我那时什么都不懂,没注意?什么时候回顾视频的时候注意下,万一真用上了,这里补上),更不用说是gradle. 什么意思都不知道,以上就提gradle,ant,甚至是maven?多可笑.外国人也是真有意思,喜欢拿个字典里都查不到的单词来作为某一种工具的名字.我们也是,例如城会玩.其实gradle

前端自动化构建——需求和工具选择

今天突然心血来潮,想把前端的一些人工工作流程自动化,其实之前已经在用grunt进行自动化构建,但总是觉得还是有些事情未做好.首先说说,前端平时需要做那些自动化吧: 1. 先讲HTML,每个项目每个页面都需要统一的头部,其他标题,关键字,作者等meta自行修改,body部分每个页面各自填充,但使用的框架统一. 2. CSS,我使用的是less来编写,所以需要编译成css,另外,编译过程,一些css属性需要自动添加浏览器前缀,例如border-radius,属性最好自动按照类型排序,一些css的编写

前端自动化构建工具——gulp

gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到某一工程目录下 跟grunt一般,也是需要package.json包依赖文件和一个入口文件 gulpfile.js(其他名字识别不了) 然后就类似的先装上gulp npm install gulp --save-dev 最基本的使用方式是这样:(使用jshint插件校验js代码) var jshin