我的开发环境为:Mac OS X EI Capitan(10.11.6),Xcode 7.3.1

首先说明一下这个项目的初衷,我并非要创建一个完整的上架应用,旨在创建一个可运行的,通用配置、架构,提供通用组件和辅助工具的基础项目。以达到,克隆或者下载就可以快速装配新项目,聚焦于实际的应用逻辑开发。所以,我命名这个项目为“base”,而且项目会在github上同步,可以配合博客和git提交日志查看。

我以Single View Application为例,创建项目。我习惯于纯代码编程,该模板初始结构适当,后续忽略的文件较少。

上述选项界面,提示几点:
1.设备选择通用类型,我希望可以适配全设备
2.如果数据储存有FMDB或者LevelDB之类的方案,可以不用Core Data
3.不需要添加单元测试和UI测试,何必保留多余的内容

上述选择项目存放路径界面,重要的是代码版本管理选项,默认勾选了Xcode的git方式管理,如果想采用sourcetree之类软件来管理代码版本,不建议勾选。因为在项目根目录下生成的.git隐藏文件会导致sourcetree管理失效,解决办法是后续删除.git文件。

工程General配置

上述为创建成功的界面,不过对general配置稍作改动:
1.version,建议采用1.0.0格式;build号在每次提交到iTunes connect前才必须修改
2.team,可以忽略,或者添加开发者账号
3.deployment target按需选择,建议将PROJECT下的base的发布版本保持一致
4.main interface不打算采用main.storyboard,清空
5.这个base项目只想采用竖屏
6.如果未支持设备全方向,就必须勾选requires full screen,否则会编译错误
7.启动时候不采用LaunchScreen.storyboard,清空

如果启动时候采用各设备单张启动图,清空Launch Screen File栏,然后点击Use Asset Catalog,直接确定,没有必要在左侧文件列表中增加新的xcassets文件。

生成新的Brand Assets暂时不是需要的。
1.在上述截图的空白位置右键,选择AppIcons & LaunchImages -> New iOS Launch Images,生成新的LaunchImage文件如上图
2.右键Brand Assets,remove selected items
3.回到general配置界面,Launch Images Source选择LaunchImages
4.点击AppIcons或者LaunchImages右边箭头,或者选中左侧列表的Assets.xcassets文件,进入详细配置界面

上图右侧选中箭头图标,则是配置具体在不同版本上的icon或者启动图,image栏则显示了相关需求信息。直接将其他地方的png图片拖放到对应网格中即可,拖放后,可右键网格中图片在Finder中查看具体存放位置。只需注意一点,icon和启动图必须为png格式的图片。

Build Settings配置

基础配置已经完成,只需要注意以下配置:

1.Bitcode默认为YES,提交到iTunes connect后,苹果会拆分包资源,为不同设备生成较小体积的ipa文件;如果项目中有不支持bitcode的代码,编译会报错,需要手动设置为NO

2.Code Signing配置真机调试和发布用的证书,如果已经添加了相关证书和配置概要文件,按如下配置Xcode可自动识别

3.Other Linker Flags一般不需要设置,在添加某些第三方库以后,需要设置

4.Info.plist File该文件记录了应用的重要配置,默认配置了路径;可以修路径,指向自定义plist文件的位置

5.Search Paths需要特别注意Framework、Header、Library三项的Search Paths,添加第三方库以后会自动加入,也可手动管理。注意两点:一是删除第三方库后,如果提示找不到该库,需要手动来此删除路径;二是,编辑路径,建议使用项目相对位置“$(PROJECT_DIR)”

6.Prefix Header如果添加了预编译头文件,此处管理预编译头文件的路径,建议用相对位置“$(SRCROOT)”

以上,对创建项目和工程基本配置进行了记录,下一篇记录plist和prefix header文件。

App开发流程之创建项目和工程基本配置的更多相关文章

  1. 20个可以帮你简化iOS app开发流程的工具

    这里推荐20个可以帮你简化iOS app开发流程的工具.很多开发者都使用过这些工具,涉及原型和设计.编程.测试以及最后的营销,基本上涵盖了整个开发过程. 原型和设计 有了一个很好的创意后,你要做的不是 ...

  2. iOS开发之工具篇-20个可以帮你简化移动app开发流程的工具

    如果想进入移动app开发这个领域,你总能从别的开发者或者网上或者书上找到各种各样的方法和工具,对于新手来说,还没有摸清门路就已经陷入迷茫了.这里推荐20个可以帮你简化app开发流程的工具.很多开发者都 ...

  3. app开发流程有哪些

    app开发流程是需求方和供求方相互协调的过程,一般分为需求分析.功能设计.功能实现.项目测试.上线等几个步骤,下面我们就来一起看看ytkah团队进行app开发各个流程主要做哪些事情,让您对app开发设 ...

  4. MVC5 网站开发之二 创建项目

    昨天对项目的思路大致理了一下,今天先把解决方案建立起来.整个解决包含Ninesky.Web.Ninesky.Core,Ninesky.DataLibrary等3个项目.Ninesky.Web是web应 ...

  5. 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板

    标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...

  6. FPGA开发流程(创建工程,选择芯片,变量位置,文件命名,reg和wire数据类型,开发流程)

    开发流程(以二选一选择器为例) 1.设计定义:设计一个可以从两个输入端中选择其中一个并输出的逻辑电路 2.设计输入 2.1.逻辑抽象:三个输入端,一个用来选择,记sel,另两个被选择,记a,b,加上一 ...

  7. day97:MoFang:移动端APP开发准备&移动端项目搭建&APICloud前端框架

    目录 1.移动端开发相关概念 1.APP类型 2.移动端屏幕介绍 3.移动端自适配方案 4.元信息(meta) 2.APP开发准备 1.注册APPCLoud账号 2.下载APP开发编辑器 3.下载AP ...

  8. CI Weekly #2 | 如何优化开发流程,实现项目持续集成?

    原文首发于 flow.ci Blog >> 链接,转载请联系:) CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试 ...

  9. App开发流程之源代码Git管理

    base项目已经可以编译运行了,只不过没有实际功能而已.继续完善base项目前,我们需要考虑一下代码管理的事情了. 不管是一个人开发还是一个团队开发,对源代码进行版本管理是必须的,任何人对代码的的任何 ...

随机推荐

  1. Debian 升级到 PHP 7,并支持并行安装

    Debian 开发者 Ondřej Surý 前几天在一个邮件列表中宣布他们开始迁移到 PHP 7.x 了,并支持多版本并行安装co-installable.而此前几天,Ubuntu 也宣布其下一个版 ...

  2. JavaScript_DOM编程艺术第二版[阅]

    前两年迫于项目的需要,只是拿来JQuery用到项目中,并没有实质上理解javascript(貌似其他人也是这么干的)~ 随着最近几年,得益于Nodejs, React, Vue等,javascript ...

  3. 《TomCat与Java Web开发技术详解》(第二版) 第六章节的学习总结 ---- JSP技术

    第六章主要介绍了JSP的相关知识. 1.JSP:是通过在HTML文件中加入java程序片段(Java Scriptlet)和JSP标记,就构成了JSP文件.JSP实质上是Servlet.JSP的API ...

  4. 【SQLServer2008】之如何导入mdf,ldf文件、导入.mdf文件报错解决问题以及如何获得Authenticated Users 权限

    一.如何导入mdf,ldf文件: 链接:http://jingyan.baidu.com/article/09ea3ede21258cc0afde3943.html 二.导入.mdf文件报错解决问题 ...

  5. COM线程单元

    节选自C#高级编程 不管是单线程单元还是多线程单元,一个线程只能属于一个单元. 1) 单线程单元(apartment, 寓所,套间) 单线程单元与它拥有的线程是一对一的关系.COM对象在编写时不是线程 ...

  6. 再理解 as3.0接口

    As3.0 接口的理解与运用 1.把接口当作"类"来理解.你easy接受她. 我们看她的标准结构: package 包路径{ public interface 接口名称{ func ...

  7. easyui combobox 三级级联 input 两种实现

    /**<img src='${pageContext.request.contextPath}/images/block.png'/> * @param 默认载入 省市 */ $(func ...

  8. 同步与异步区别,Invoke与BeginInoke的区别

    先说同步与异步的区别,总说同步异步的,其实一直不清楚什么是同步异步,今天找了一下: 同步:当一个消息发送后,等对方回应后继续发送下一条指令. 异步:当一个消息发送后,不等对方回应就发送下一条. 同步, ...

  9. history命令使用方法详解

    history是一条非常实用的shell命令,可以显示出之前在shell中运行的命令,配合last显示之前登录的用户,就可以追溯是哪个用户执行了某些命令.以下详细说明history使用中常见的命令或技 ...

  10. maven;cargo;仓库

    [说明]又到晚上九点了,不得不加快进度,首先就是日报.今天上午在服务器搭建maven,下午完成了一个maven web项目,晚上改错找maven配置问题(因为想装jetty和cargo) 一:今日完成 ...