iOS程序编译打包的两种方式

这个选项其实是用来设置我们要如何打包我们的代码.

Architectures: 项目要编译的目标设备列表, 设置以哪种方式打包我们的代码

第一种方式: 包含两种架构的代码包(32bit, 64bit), 但是这种打包方式只能运行在iOS6以上的系统, 也就是说这种打包方式, 对手机没有要求, 只是对系统有要求.

第二种方式: 只包含一种架构的代码(32bit), 这种打包方式, 对于手机和系统都没什么要求, 但是这样会降低64位系统的手机性能

如果要兼容iOS5以及更低的系统, 只能打32位的包, 如果是包含两种架构的包, 则系统会根据系统位数来运行对应位数的代码包.

问题:

1. 为什么能运行两种架构的代码?

因为64位的系统有两套FrameWork, 一套是32位的, 一套是64位的, 系统根据是哪种架构的代码, 来调用对应位数的FrameWork作为底层支撑

2. 为什么说64位的系统运行32位的代码会降低手机的性能?

因为在64位系统同时运行两种架构的代码时, 系统会将两套FrameWork载入内存中, 所以消耗的内存比较多, 从而降低手机的性能.

Valid Architectures: 项目可能支持的设备列表, 该列表和Architectures列表的交集, 将是Xcode要最终生成的二进制代码所支持的设备列表

Build Active Architectures Only: 设置是否只编译当前使用的设备对应的代码包.

程序的两种运行模式:

Debug模式: 面向自己的

Release模式: 面向客户的

我们可以通过这两种模式来实现对代码的精简, 我们可以在Debug模式下, 输出一些我们开发当中要用到的日志信息, 然后在Release模式下, 发布程序就可以了, 这样在发布的程序当中就不会再有大量的输出的日志信息了.

时间: 2024-12-26 17:24:34

iOS程序编译打包的两种方式的相关文章

大钟的ios开发之旅(4)————简单谈谈ios程序界面实现的三种方式(代码创建,xib和storyboard)

/******************************************************************************************** * author:[email protected]大钟 * E-mail:[email protected] *site:http://www.idealpwr.com/ *深圳市动力思维科技发展有限公司 * http://blog.csdn.net/conowen * 注:本文为原创,仅作为学习交流使用,转

Maven项目依赖外部jar进行打包的两种方式

https://blog.csdn.net/abcwanglinyong/artic 项目中除了pom.xml依赖之外,有时还依赖了其他jar包,如图: 依赖的方式如下: 点击Project Structure进行项目设置,在Modules中Dependencies标签中点击+号 添加lib下的所有jar,如图: 然后在Artifacts的Output Layout标签中将依赖放到/WEB-INF/lib目录下,如图: 这样的话项目中就可以使用lib中依赖的jar了,但是如果要打包则会报错,须进

IOS之解析Html的两种方式

1.最近没什么做的就解析了html的文本来了,在解析的时候会遇到一些问题,但是现在也解决了, 我使用了两种方式去解析Html 页面,现在就来说一下是什么方式去解析的 第一种的方法:使用正则表达式(http://rss.sina.com.cn/sports/basketball/nba.xml 需要解析的数据) 使用多线程的方式去解析html数据: -(void)getNews{ //使用多线程开发 dispatch_async(dispatch_get_global_queue(DISPATCH

iOS 加载Image的两种方式

Apple官方文档对于加载image提供了两个方法 + (nullable UIImage *)imageNamed:(NSString *)name; + (nullable UIImage *)imageWithContentsOfFile:(NSString *)path; 那么这两个方法对于加载图片有什么区别呢,下面我们用序列帧动画来演示这两个方法的区别: 这个程序一共加载了三组序列帧动画: 首先我们使用+ (nullable UIImage *)imageNamed:(NSString

Android: Android Studio签名打包的两种方式(zz)

注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如果不知道签名是啥意思,请自行百度哦.在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application", 1.方式1:通过Android Studio进行签名: 选中app这个module,选择菜单栏"Build-Generate

android studio学习---签名打包的两种方式

注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如果不知道签名是啥意思,请自行百度哦.在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application", 1.方式1:通过Android Studio进行签名: 选中app这个module,选择菜单栏"Build-Generate

iOS拼接json字符串的两种方式

两种json字符串拼接的方法如下: + (NSString *)UIUtilsFomateJsonWithDictionary:(NSDictionary *)dic { NSArray *keys = [dic allKeys]; NSString *string = [NSString string]; for (NSString *key in keys) { NSString *value = [dic objectForKey:key]; value = [NSString strin

py2exe 打包的两种方式

cmd模式 #!/usr/bin/python #-*- coding: UTF-8 -*- from distutils.core import setup import py2exe setup(console = ['hello.py']) 窗口模式 #!/usr/bin/python #-*- coding: UTF-8 -*- from distutils.core import setup import py2exe setup(windows= ['hello.py'])

微信小程序取消分享的两种方式

1. 注释onShareAppMessage函数 Page({ /** * 用户点击右上角分享 */ onShareAppMessage: function () { } }) 2. onload函数中加入wx.hideShareMenu({})函数 Page({ /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { wx.hideShareMenu({ }) }, }) 原文地址:https://www.cnblogs.com/daviddd