ios模拟器装ipa包_给iOS 模拟器“安装”app文件

本文介绍了如何使用ditto和ios-sim命令行工具将本地的debug IPA包安装到iOS模拟器,以及尝试将App Store上的release IPA包安装到模拟器的过程。虽然release包无法成功运行,但文中详细记录了尝试过程和错误分析。
摘要由CSDN通过智能技术生成

前言

刚刚接触iOS的时候,我就一直很好奇,模拟器上面能不能直接安装app呢?如果可以,我们就直接在模拟器上面聊QQ和微信了。直到昨天和朋友们聊到了这个话题,没有想到还真的可以给模拟器“安装”app!

一.应用场景

先来谈谈是什么情况下,会有在模拟器上安装app的需求。

在一个大公司里,对源码的管理有严格的制度,非开发人员是没有权限接触到源码的。对苹果的开发证书管理也非常严格,甚至连开发人员也没有发布证书,证书只在持续集成环境或者Appstore产线里面,或者只在最后打包上架的人手上。

那么现在就有这样的需求,开发人员搭建好UI以后,要把开发完成的Alapha版给到UI设计师那边去评审,看看是否完全达到要求,达不到要求就需要打回来重做。

一般做法就是直接拿手机去安装一遍了。直接真机看效果。不过要是设计师和开发不在同一个地方的公司,一个在北京一个在上海,这种就没法安装了。源码又无法导出给设计师,让他运行一下Xcode跑一下模拟器。打release的ipa通过扫码安装,如果公司大了,UDID全部都用完了,也没法安装。这个时候就比较麻烦了。(一般也没人遇到这么蛋疼的事情吧)

那么现在就有给模拟器安装app的需求了,那开发人员如何能把开发版的app给打包出来给其他模拟器安装呢?

二.解决办法

解决思路,想要别人的模拟器运行起我们开发的app,最简单的办法就是把我们DerivedData的数据直接拷贝到别人模拟器上面,就可以了。当然还要考虑到设计师也许并不会一些命令行命令,我们的操作越傻瓜越好。

1.拷贝本地的DerivedData里面的debug包

Mac的拷贝命令有cp和ditto,建议用ditto进行拷贝工作。Usage: ditto [  ] src [ ... src ] dst

 are any of:

-h                         print full usage

-v                         print a line of status for each source copied

-V                         print a line of status for every file copied

-X                         do not descend into directories with a different device ID

-c                         create an archive at dst (by default CPIO format)

-x                         src(s) are archives

-z                         gzip compress CPIO archive

-j                         bzip2 compress CPIO archive

-k                         archives are PKZip

--keepParent               parent directory name src is embedded in dst_archive

--arch archVal             fat files will be thinned to archVal

multiple -arch options can be specified

archVal should be one of "ppc", "i386", etc

--bom bomFile              only objects present in bomFile are copied

--norsrc                   don't preserve resource data

--noextattr                don't preserve extended attributes

--noqtn                    don't preserve quarantine information

--noacl                    don't preserve ACLs

--sequesterRsrc            copy resources via polite directory (PKZip only)

--nocache                  don't use filesystem cache for reads/writes

--hfsCompression           compress files at destination if appropriate

--nopreserveHFSCompression don't preserve HFS+ compression when copying files

--zlibCompressionLevel num use compression level 'num' when creating a PKZip archive

--password                 request password for reading from encrypted PKZip archive

Ditto比cp命令更好的地方在于:它在复制过程中不仅能保留源文件或者文件夹的属性与权限,还能保留源文件的资源分支结构和文件夹的源结构。

此命令能确保文件或者文件夹被如实复制。

如果目标文件或者文件夹不存在,ditto将直接复制过去或创建新的文件和文件夹,相反,对于已经存在的文件,命令将与目标文件(夹)合并。

ditto还能提供完整符号链接。

那么我们就拷贝出本地的debug包ditto -ck --sequesterRsrc --keepParent `ls -1 -d -t ~/Library/Developer/Xcode/DerivedData/*/Build/Products/*-iphonesimulator/*.app | head -n 1` /Users/YDZ/Desktop/app.zip

有几点需要说明的:上面命令最后一个路径(/Users/YDZ/Desktop/app.zip)&#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值