iOS app 程序启动原理】的更多相关文章

iOS app 程序启动原理 Info.plist: 常见设置     建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件,该文件对工程做一些运行期的配置,非常重要,不能删除.     在旧版Xcode创建的工程中,这个配置文件的名字叫做"Info.plist".     项目中的其他plist文件不能带有"Info"这个字眼,不然会被错认为是传说中非常重要的"Info.plist…
UIApplication 程序启动原理 一个应用程序运行就必须要有一个进程,一个进程至少要有一个线程,我们把这个线程叫做主线程,主线程开启之后会开启一个主运行循环,如果不开启一个运行循环,程序开启了就马上结束了,不会一直运行.换句话来说一个APP开启就关闭了,所以必须开启一个死循环,不断的在监听事件,用户操作....等等一些事件,说完那就来看看程序怎么启动的. 一个app用程序启动就必须要有且仅有一个UIApplication(或则其子类)应用管理类,UIApplication 这个类的对象是…
Info.plist和pch文件的作用 建立一个project后,会在Supporting files目录下看到一个"project名-Info.plist"的文件,该文件对project做一些执行期的配置.很重要,不能删除 在旧版本号Xcode创建的project中.这个配置文件的名字就叫"Info.plist" 项目中其它Plist文件不能带有"Info"这个字眼,不然会被错觉得是传说中很重要的"Info.plist" 项…
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3496033.html    本文对应pdf文档下载链接,猛戳- :https://www.evernote.com/shard/s227/sh/ca0d8662-92fc-4e7e-bf87-e66c7abb5d47/1efbf2274b60a4b25aff8422d05e…
一.UIApplication 简介       (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个Application都有自己的UIApplication对象,而且是单例的,如果用试图再去实例化一个UIApplication则会报错:[ [ UIApplication alloc ]  init ]:. (3)通过[UIApplication sharedApplication]可以获得这个单例对象. (4) 一个iOS…
前言 相信很多同学对于iOS的真机调试,App的打包发布等过程中的各种证书.Provisioning Profile. CertificateSigningRequest.p12的概念是模糊的,导致在实际操作过程中也很容易出错.好在Xcode8.0出现了Automatically manage signing,让我们在这步操作中减少了难度.虽然说我们在Xcode8.0之后可以选择让Xcode自动管理了,但是我们还是应该知道App签名的原理.本文尝试从原理出发,一步步推出为什么会有这么多概念,希望…
本文来自 WeRead 团队博客: http://wereadteam.github.io/ iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原理和流程. 目的 先来看看苹果的签名机制是为了做什么.在 iOS 出来之前,在主流操作系统(Mac/Windows…
一.mach-O Executable 可执行文件 Dylib 动态库 Bundle 无法被连接的动态库,只能通过 dlopen() 加载 Image 指的是 Executable,Dylib 或者 Bundle 的一种. Framework 动态库和对应的头文件和资源文件的集合 Apple 出品的操作系统的可执行文件格式几乎都是 mach-O. mach-O 可以大致分为三部分: Header 头部,包含可以执行的 CPU 架构,比如 x86,arm64 Load commands 加载命令,…
一. 为什么要写这篇文章? 这是一个很古老的话题,从两年前新浪微博开始使用多层动画制作iOS App的启动引导页让人眼前一亮(当然,微博是不是历史第一个这个问题值得商榷)之后,各种类型的引导页层出不穷,到如今,github上也有了各种的成型的library存在供选择,同时不少app也已经慢慢的开始返璞归真回归单一静态引导页.虽然时尚的潮流不停的在变化,但是我一直在思索,这种多图层的启动引导动画到底是什么个结构?实现起来究竟有多难?本文,将试图探寻这个话题. 二. 我们要做成什么样子的? 首先定下…
一.Info.plist常见的设置 1.建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist” 项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist” 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关 2.常见属性…
1.Info.plist 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 常见属性(红色部分是用文本编辑器打开时看到的key)   •在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist” •项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist” •项目中还有一个InfoPlist.strings的文件,跟…
很多工作一段时间的iOS程序员,总是每天沉浸在代码里,大家总是按照xcode的规定生成项目,然后就开始码代码了,但是大家知道app背后的启动过程吗?当点击程序图标启动程序开始到退出,程序在运行过程中到底执行了哪些代码?只有理解了这个才能游刃有余的掌握iPhone程序的开发.  程序启动的完整过程 1.main函数 2.UIApplicationMain.创建UIApplication对象 3.创建UIApplication的delegate对象  (没有storyboard) 4.delegat…
一.UIApplicationMain 在main.m的main函数中执行了UIApplicationMain这个方法,这是ios程序的入口点 int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName) argc.argv:ISO C标准main函数的参数,直接传递给UIApplicationMain进行相关处理即可 principalClassN…
程序都是从Main方法入口的 IOS 也不例外 int main(int argc,char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 在IOS 里main 方法里有个UIApplicationMain里面带有4个参数 param 1: argc : 对应argv的参数数量 param 2: argv: …
1.执行main -> 执行UIApplicationMain UIApplicationMain底层实现 1.创建UIApplication对象 2.创建UIApplication代理对象 3.开启主要事件循环,保证程序一直运行,开始处理事件 4.解析info.plist,判断下有没有指定main.storyboard 3.指定main.storyboard就会加载 1.创建窗口(一个程序要想显示内容,必须有窗口) 2.加载main.storyboard(UIStoryboard),创建sto…
windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程序定义指定起始Page(它是启动 WindowsPhone7程序时自动加载的Page). 指定方法是将 StartupUri 属性设置为所需的 Page 的 统一资源标识符 (URI). 可以在标记中以声明方式设置 StartupUri,如下面的示例所示.<Application    xmlns=…
当您的应用程序启动(无论是在前台或后台),使用您的应用程序委托application:willFinishLaunchingWithOptions:和application:didFinishLaunchingWithOptions:方法来执行以下操作: 检查启动选项字典的内容,了解有关启动应用程序的原因,并做出相应的响应. 初始化您的应用程序的关键数据结构. 准备您的应用程序的窗口和视图以供显示: 在启动时,系统会自动加载您的应用程序的main Storyboard加载初始视图控制器. app…
正规的应用程序(IPA 格式,官方软件店发布)在被 iTunes 同步到 iPhone 的时候会调用系统进程 INSTALLD 对应用程序进行证书校验(GPLv3 授权)而这个证书本身是由官方捆绑在应用程序内部.如果发现没有购买,或者证书失效,iPhone 就会拒绝安装.iTunes 就自动同步失败.所以,一般要安装 IPA 格式的破解软件,需要替换系统内部的 INSTALLD 文件为已经破解了的版本,替换之后,iPhone 在安装时候,就不会对程序证书进行校验,所以破解软件可以完美安装. 原文…
iOS 多语言设置有很多方式可以实现,之前在做手机思埠1.0时,就对app进行了多语言设置,当时看到很多方法,比如用plist等方式保存键值对的,不过还是用Localisator来国际化最方便 1.添加本地化语言包  …
今天帮同事解决问题的时候发现,程序BUG是由加载过程引起的.所以当局部代码没有问题,但是程序一运行却总不是我们想要结果的时候,我们应该想想是不是因为我们忽略了试图加载过程的原因.下面我们用一个例子来简单介绍一下启动过程中常见的几个方法.首先我们通过XIB 创建了一个试图控制器(名字叫Empty ,不要问我为为啥它叫这个名字,因为我太懒了,鼠标点快了就没去改),又创建了一个UIView的子类(MyView),并且将Empty的对象 设置为窗口的根控制器,MyView 的一个对象设置为Empty的主…
如果您安装了最新版的XCode开发环境.对于在4.2及以上版本,Developer/Applications/Utilities目录中已经有ApplicationLoader程序,无需执行以下单独安装.对于XCode4.3及以后版本,在/Applications/XCode.app/Contents/Applications目录中可以找到(右键XCode选择Show Package Contents可以进入目录结构).如果没有安装XCode,则路径在Developer/Applications/…
一. iOS中常见文件 (一). Xcode6之前 创建项目,默认可以看见一个存放框架的文件夹 info文件以工程文件名开头,如:第一个项目-Info.plist 项目中默认有一个PCH文件 (二). Xcode6之后(包括Xcode6) 创建项目,没有框架文件夹,使用时系统才去加载 info文件不以工程文件名开头,如:Info.plist 项目中没有PCH文件 (三). Info.plist文件(项目配置文件) 作用:保存应用的信息,软件名称.版本号等等,相当于身份证 Bundle name:…
一. iOS中常见文件 (一). Xcode6之前 创建项目,默认可以看见一个存放框架的文件夹 info文件以工程文件名开头,如:第一个项目-Info.plist 项目中默认有一个PCH文件 (二). Xcode6之后(包括Xcode6) 创建项目,没有框架文件夹,使用时系统才去加载 info文件不以工程文件名开头,如:Info.plist 项目中没有PCH文件 (三). Info.plist文件(项目配置文件) 作用:保存应用的信息,软件名称.版本号等等,相当于身份证 Bundle name:…
iOS开发UI篇—程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一…
iOS开发UI篇—程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一…
学习iOS开发一般都是从UI开始的,从只知道从IB拖控件,到知道怎么在方法里写代码,然后会显示什么样的视图,产生什么样的事件,等等.其实程序从启动开始,一直都是按照苹果封装好的代码运行着,暴露的一些属性和方法作为接口,是让我们在给定的方法里写代码实现自定义功能,做出各种各样的应用.这些方法的调用顺序最为关键,熟悉了程序运转和方法调用的顺序,才可以更好地操控程序和代码,尽量避免Xcode不报错又实现不了功能的BUG.从Xcode的线程函数调用栈可以看到一些方法调用顺序. --零--从程序启动开始到…
原文 http://www.cnblogs.com/wendingding/p/3766347.html   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单…
一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获…
iOS中的应用启动原理 来源: http://m.blog.csdn.net/article/details?id=50530090 http://m.warting.com/program/201601/127355.html  http://www.cnblogs.com/zhcios/p/3551034.html 一.UIApplication  1. 简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都…
iOS程序启动原理   技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong   iOS应用程序运行流程 UIApplicationMain ★ 在main.m的main函数中执行了UIApplicationMain这个方法,这 是ios程序的入口点  ★intUIApplicationMain(intargc,char*argv[], NSString *principalClassName,…