参考 :

https://www.jianshu.com/p/32af2f71b4e5--老了,里面的一些命令现在都没有了,但可以借鉴思路

https://www.jianshu.com/p/004c9346f9b0

1.切换到工程所在目录

打开终端,输入 cd ,并将工程所在文件夹拖入cd 后面,回车。(即.xcodeproj工程所在的位置)

2.清除

在终端继续输入xcodebuild clean,回车等待,clean成功后截图如下。

xcodebuild clean

3.构建

xcodebuild archive -project /Users/chenpeisong/Desktop/test/HelloWorld/HelloWorld.xcodeproj -scheme HelloWorld -archivePath /Users/chenpeisong/Desktop/HelloWorld.xcarchive

说明:

-archive -project 后面跟工程路径
/Users/chenpeisong/Desktop/test/HelloWorld/HelloWorld.xcodeproj -scheme 需要打包的Sheme,一般与工程名相同
HelloWorld -archivePath 后面跟.xcarchive文件的目标路径可以自己自由设置
/Users/chenpeisong/Desktop/HelloWorld.xcarchive

archive成功后截图

4.打包

xcodebuild -exportArchive -exportOptionsPlist /Users/chenpeisong/Desktop/ExportOptions.plist -archivePath /Users/chenpeisong/Desktop/HelloWorld.xcarchive -exportPath HelloWorld

说明:

-exportArchive
-exportOptionsPlist plist文件路径,包含证书信息
-archivePath .xcarchive文件路径
-exportPath ipa文件目标路径

其中关键就是exportOptionsPlist 文件需要在之前通过xcode打包导出ipa时的文件夹中去copy一个出来放在当前工程目录中,然后将其拖入-exportOptionsPlist 后面即可。

打包成功后截图:

可以看到HelloWorld文件夹中已经生成了helloworld.ipa文件

附:

plist文件是什么?

打开plist文件长这样

plist字段说明:

method:字符串,为打包的类型,分为app-store,ad-hoc,enterprise和development,根据自己实际打包情况填写。

provisioningProfiles:字典,Xcode9需要,键值对为{bundleid:描述文件名},描述文件名最好使用其对应的UUID。

signingCertificate:证书类型,开发环境为iPhone Developer,生产环境为iPhone Distribution。

signingStyle:自动还是手动(manual与automatic),填写manual即可。

stripSwiftSymbols:填写为YES。

teamID:为开团队ID,在钥匙串中点击证书详情可以查看到。

uploadBitcode:为YES即可。

uploadSymbols:为YES即可

现在有一个问题是:生成archive文件 和ipa文件的过程中都需要输入登录密码怎么办?

 解决办法:

(这是临时的解决办法-在自动化打包时肯定不能这样的吧)又走了一遍流程,这次点击了【始终允许】,就不弹出了

或者参考这篇文章

https://blog.csdn.net/xiao_wu_xiao/article/details/50961661

MAC使用命令行打包出ipa包-通过xcodeproj的更多相关文章

  1. mac命令行对复杂ipa包重新签名

    最近在做ios的自动化平台,需要通过命令行安装卸载ipa包 好了问题来,别人上传的ipa包,很可能是开发签名了只能在特定手机上安装的测试ipa包,那我们如何将其安装在我们的自动化的iphone上呢? ...

  2. xcodebuild命令行打包发布ipa

    配置好证书,然后在命令行转到项目目录 1.清除 EthantekiiMac:CTest ethan$ xcodebuild clean 2.编译 EthantekiiMac:CTest ethan$ ...

  3. C语言基于窗体命令行打包,解包和浏览程序

    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#inc ...

  4. mac下使用命令行打包出现bash gradle command not found的解决方案

    命令行打包的时候出现 bash gradle command not found这个问题,主要是因为gradle环境丢失.需要重新配置gradle的环境变量. 1. gradle路径的查找 然后gra ...

  5. IOS使用命令行打包

    1.安装证书 develop:调试证书,包含调试信息 安装时需要证书已加入设备UDID或是越狱设备才能安装. distribution:正式证书,发布到appstore所用,屏蔽了调试信息,要想测试安 ...

  6. android 7.0 多渠道打包 - 美团开源工具Walle 命令行打包

    在Android 7.0(Nougat)推出了新的应用签名方案APK Signature Scheme v2后,之前快速生成渠道包的方式(美团Android自动化之旅-生成渠道包)已经行不通了,对此美 ...

  7. linux/mac下命令行rm回收站--rmtrash

    Linux.mac的命令行下没有回收站功能,很多时候手一抖就把重要文件给 rm -fr * 了,虽然linux下有可能通过lost +found/debugfs找回,但难度也比较大,不能保证一定能够找 ...

  8. Mac 在命令行中获得Root权限

    Mac 在命令行中获得Root权限 作者 firedragonpzy 13 九月, 2012 2条评论 本文为firedragonpzy原创,转载务必在明显处注明:转载自[Softeware MyZo ...

  9. 命令行下打WAR包

    命令行下打WAR包: jar -cvf TestMem.war *

随机推荐

  1. vuejs基础-跑马灯效果

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  2. Netty基础-BIO/NIO/AIO

    同步阻塞IO(BIO): 我们熟知的Socket编程就是BIO,每个请求对应一个线程去处理.一个socket连接一个处理线程(这个线程负责这个Socket连接的一系列数据传输操作).阻塞的原因在于:操 ...

  3. CSS实现背景图片屏幕自适应

    在做登陆页面等的首页的时候,经常会遇到需要放一张背景大图的情况,并且需要图片按比例缩放,来适应不同屏幕的大小. html代码如下: <!DOCTYPE html> <html lan ...

  4. Linux mysql 乱码

    http://www.pc6.com/infoview/Article_63586.html http://itindex.net/detail/41748-linux-mysql-5.5 http: ...

  5. U33405 纽约 (二分)

    [题目描述] 牧民 Azone 需要多次往返于两个草场之间运输家当.为了顺利转场,Azone 决定花费 w元津巴布韦币,购买一辆载重为 w 的汽车.共有 n 件家具需要搬运,每件家具的重量为 wi​  ...

  6. Linux文件目录可视化远程软件winscp的使用

    这个软件不是必须的,一般有命令行就可以操作文件目录,但winscp有图形界面,双击文件就可以编辑和保存,使用方式更接近windows Winscp是开源软件,安装包可以自行下载获取找有关人士获取 要新 ...

  7. Vue PC端图片预览插件

    *手上的项目刚刚搞完了,记录一下项目中遇到的问题,留做笔记: 需求: 在项目中,需要展示用户上传的一些图片,我从后台接口拿到图片url后放在页面上展示,因为被图片我设置了宽度限制(150px),所以图 ...

  8. query_module - 向内核查询和模块有关的各个位

    总览 #include <linux/module.h> int query_module(const char *name, int which,void *buf, size_t bu ...

  9. procixx 时钟的坑

    error 1.procixx设置800M,uboot中是720M 了解到整个过程是,当procixx配置后,通过FSBL中的ps_init.c反应出来 // ARM_PLL_FDIV = 48    ...

  10. https://geewu.gitbooks.io/rabbitmq-quick/content/RabbitMQ%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C.html

    https://geewu.gitbooks.io/rabbitmq-quick/content/RabbitMQ%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C.html