iOS开发——为iOS工程创建模拟器包,用于其它电脑上iOS模拟器的运行测试(Creating an iOS Simulator Build)

iOS程序开发后期,要将程序打包并分发给众人进行测试。一般而言,这类测试都是真机测试,这是正确且必要的。只是有一个问题,生成真机测试的ipa包需要相关的证书。

当然,绝大多数iOS开发人员甚至是一些独立开发者,都能轻而易举(无所不用其极)地弄到这些证书。因此,这里需要声明一下本文的适用人群和情况:

1. 生成的应用程序包只能用于模拟器测试,无法用于真机;

2. 不需要特别的证书;

3. 某人没有被包含在证书里面的设备,但是却需要看到程序,验证相关功能等(或者开发者本身没有任何证书,却需要别人观摩或者测试他的程序)。

正文开始,生成一个iOS模拟器包,你需要做下列操作:

· 找到包含需要打包的Xcode项目的文件夹.

· 打开终端并运行几行命令生成build.

· 其它电脑上使用命令行启动iOS模拟器并安装运行所打包的模拟器包.

找到你的Xcode工程目录:

在一切开始之前,我们先配置Build Configuration(打包Debug版本还是Release版本),如下图所示:

然后我们要找到Xcode工程所在的目录,最容易的办法还是用Xcode本身。点击你的项目并选择Show in Finder:

打开终端,并查找你的iOS Simulator SDK 版本:

找到文件夹下的.xcodeproj文件,并用终端打开:

通过这种方式打开终端,将直接导航至你项目所在的目录:

现在运行cd
..回到上一级目录:

在终端上运行下面的命令来查找你的机器上可用的SDK的版本:

xcodebuild -showsdks

本文中,我们只需要用到iOS Simulator SDK,如果你的电脑上安装了多个iOS模拟器SDK,那么选择最新的一个版本:

创建模拟器包:

继续在终端运行如下命令,用你的模拟器SDK替换“-sdk”后面的字段

xcodebuild -arch i386 -sdk [iphonesimulator]

注意:如果你的项目是多“Target”的项目,那么你还需要指定一个Target,从而生成那个Target的模拟器包,命令如下:

xcodebuild -arch i386 -sdk [iphonesimulator] -scheme [NameOfScheme]

运行成功后,在终端将输出一系列信息,并以** BUILD SUCCEEDED **结尾。

生成的模拟器包存储在这个路径:

{Derive data directory}/build/Release-iphonesimulator/{projectname}.app

这一路径的具体信息在最后终端的输出信息中也可以找到。

通过命令行启动iOS模拟器并安装运行上面生成的模拟器包:

重新打开一个终端窗口,运行如下命令:

ios-sim launch <path to .app>

这样便会启动iOS模拟器并在模拟器中运行app.

糟糕,有的同学电脑上可能会报:"-bash: ios-sim: command not found"的错误。莫慌,这是电脑上还未安装ios-sim这一工具所致。要安装这一工具,有个非常简单的办法:通过brew安装ios-sim,一行命令即可搞定。在终端输入下面命令并运行:

brew install ios-sim

当然了,我预感到,可能你电脑上brew也没装,猛戳我的另一篇教程Mac上使用命令行安装brew,并通过brew安装Ant等工具,安装brew.

这一切都搞定了再重新运行之前的ios-sim launch <path to .app>命令即可。

参考资料:

Creating an iOS Simulator Build for Facebook Review

时间: 2025-01-05 14:58:22

iOS开发——为iOS工程创建模拟器包,用于其它电脑上iOS模拟器的运行测试(Creating an iOS Simulator Build)的相关文章

iOS开发UI篇—CAlayer(创建图层)

iOS开发UI篇—CAlayer(创建图层) 一.添加一个图层 添加图层的步骤: 1.创建layer 2.设置layer的属性(设置了颜色,bounds才能显示出来) 3.将layer添加到界面上(控制器view的layer上) 1 // 2 // YYViewController.m 3 // 01-创建一个简单的图层 4 // 5 // Created by apple on 14-6-21. 6 // Copyright (c) 2014年 itcase. All rights reser

【iOS开发-50】利用创建新的类实现代码封装,从而不知不觉实践一个简单的MVC实验

接上次案例谈代码封装.上次案例见:[iOS开发-48]九宫格布局案例:自动布局.字典转模型运用.id和instancetype区别.xib重复视图运用及与nib关系 代码封装的原则是:要保证视图控制器尽量少的接触到其他对象的属性,也就是说,尽量把数据或者属性封装到一个类里面,然后利用类或者对象的方法来调用或者设置数据.而是赤裸裸地把属性都写在视图控制器中.核心作用在于:减少视图控制器的代码量,把数据和属性的处理封装起来,这样也便于其他视图控制器的使用. 要做到的结果就是如下(我们要根据数组里面的

iOS开发UI篇—CAlayer(创建图层)(转摘)

iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的DrawRect:方法,然后在该方法中画图. 绘制图形的步骤: (1)获取上下文 (2)绘制图形 (3)渲染图形 如果在layer上画东西,与上面的过程类似. 代码示例: 新建一个类,让该类继承自CALayer YYMylayer.m文件 1 // 2 // YYMylayer.m 3 // 05-自定义l

小喵iOS开发成长记:数据抓包

(萌神 哈比 镇楼) 上午和小组成员讨论后,决定选择做一款FM项目. 稍微分析后就开始着手抓包啦. 小喵使用的是Paros进行抓包的.需要工具:Paros软件,Java环境,手机(iPhone/Android),mac. Paros工具下载:Paros DownLoad 博文内容速览: 一. Java环境配置 二.打开Paros 三.设置parso的proxy 四.设置手机的proxy 五.抓取接口 一.Java环境配置 1.下载文件后,解压.打开 “JavaForOSX2014-001.dmg

iOS开发:Framework的创建

转载自:http://blog.csdn.net/nine_yao/article/details/72845087 环境:Xcode 8 1.创建framework 2.修改相关配置 1)设定SDK适配的iOS系统版本号 2)选择性添加: armv7s 原因: armv6, armv7, armv7s是ARM CPU的不同指令集, armv6设备:iPhone, iPhone2, iPhone 3G,第一代.第二代iPod Touch: armv7设备:iPhone 3GS,iPhone 4,

IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序

前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现. iOS的API用于记录和播放视频的对刚入门IOS的新人有点混乱,因为有几个可用的选项.如果你只是想打一个视频,你可以用MediaPlayer的框架,它可以让我们发挥我们的设备本地存储的视频,或从远程位置.但是,如果你需要高级功能,如媒体资产管理,媒体编辑,跟踪管理,和其他人,你必须使用AVFoundati

iOS开发——OC和swift创建系统自带的刷新界面

使用OC和swift创建系统自带的刷新界面 一:swift刷新界面代码: import UIKit class ViewController: UITableViewController { // 用于显示的数据源    var _dataSource:[String] = []        // 加载更多 状态 风火轮    var _aiv:UIActivityIndicatorView!        override func viewDidLoad() {        super.

IOS开发之获取Storyboard创建的ViewController

前面的两篇博客都是学习有关屏幕适配也就是相对布局的东西,这篇博客中将会学习视图间的切换.视图间的切换我们可以用代码完成或者用storyboard来建立各个视图控制器间的关系.在需要用到代码进行切换时会用代码进行视图间的跳转.下面的东西我们会主要介绍到NavigationController来进行视图间的切换.下面也是和之前一样把代码和storyboard结合起来学习. 下面介绍一下我们要实现的功能和效果: App打开的第一个界面是登陆页面,登陆页面由用户名和密码以及一个登陆按钮构成.当登陆成功时

iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果

在公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的.在之前的博客中也提到过,团队合作使用Storyboard时,避免冲突有效的解决方法是负责UI开发的同事最好每人维护一个Storyboard, 公用的组件使用轻量级的xib或者纯代码来实现.这样不但提高了开发效率,而且可以有效的避免Storyboard的冲突.如果每个人维护一个Storyboard, 遇到冲突了就以你自己的为准就OK了. 言归正传,