1、安装证书

develop:调试证书,包含调试信息 安装时需要证书已加入设备UDID或是越狱设备才能安装。

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

ad-hoc:测试证书,非越狱机且没有添加入测试设备中,又想测试app,就要通过artive->adhoc,编译打包app,将app.ipa拖入itunes,安装,就可以测试了,任何机器都可以。

二、命令行编译打包

1、clean清理工程,如果清理成功证明xcode安装基本正常,如果有错误可能是未安装xcode,安装xcode也很简单在appstore中所有xcode选一个版本安装即可。

cd /Users/rongshenglai/GoTianAnMen_iOS/GoTheTianAnMenSquare_2.0 # 进入目录(有.xcodeproj的这个目录)
xcodebuild clean # 清理工程

2、查看所有目标(target)

xcodebuild -list

  

  显示target、scheme、和configuration,记下来之后使用。

3、构建

xcodebuild -archivePath "./buildserver/BuildDemo.xcarchive" -sdk iphoneos -target GO天安门 -scheme GO天安门 -configuration "Debug" archive

  显示构建成功,就会在你的当前路径多出一个 buildserver的目录,构建的文件就放在里边。

  其中的 target、scheme、configuration就是上边查到的内容。

  构建的时候需要输入两次用户名,输入即可。

4、打包和导出

xcodebuild -exportArchive -archivePath ./buildserver/BuildDemo.xcarchive -exportPath ./buildserver/BuildDemo.ipa -exportOptionsPlist "./GoTheTianAnMenSquare copy-Info.plist"

  其中:plist文件根据你的配置需要修改,archive路径也是根据你之前构建目录修改,ipa目录随你指定。

  看到如下图打包成功。

三、安装

1、利用“爱思苹果助手”iFunBox 安装

  导出 ipa 包后不能直接安装,可以利用 iFunBox 之类的软件直接安装到对应的 iPhone

  ifunbox_爱思苹果助手,网址 https://www.i4.cn/pro_ios.html

  安装完成爱思苹果助手后,在ipa文件上单击右键选择“使用爱思苹果助手安装”,选择一个iphone设备后即可安装。

  注意:如果提示安装包校验失败或手机未越狱,有可能是你的iphon的UUID没有添加到开发者账号上。将你的设备增加到开发者账号中然后重新打包导出ad-hoc后使用爱思苹果助手再次安装即可

  UUID有没有添加可以参考下图查找。

2、利用 items-service 协议安装

  itms-service是apple为iOS企业用户提供的无线分发安装方案,使用这种方式发布应用不需要通过App Store,任何iOS设备都可以安装。企业用户通过这种方式发布的应用而没有设备数目的限制。(个人用户和公司用户也可以使用这种方式通过网页发布应用,但只有设备的UDID被包含在对应帐户的Device ID中的设备才可以安装,而Device ID对数目是有限制的)。

  可以从safari浏览器直接打开如下所示的itms-services协议的链接,可以在iOS设备上直接安装链接所指向的应用,itms-services://?action=download-manifest&url=http://192.168.1.27:8082/un/yi.plist。

四、问题

直接在mac电脑上使用命令打包导出ipa包一切正常,当使用ssh命令远程连接到mac电脑上打包就报如下错误。

原因是钥匙串被锁定,在打包前先执行如下命令解锁keychain。其中-p是当前用户的密码。

security unlock-keychain -p 123

如果设置后还是如上错误也有可能是没有允许xcode访问钥匙串。解决方法是在mac电脑上打包看到如下提示后,输入用户密码后点击“始终允许”后再次打包即可。

  

https://blog.csdn.net/qq981378640/article/details/53923973

https://blog.csdn.net/qq_34047841/article/details/54144149

https://blog.csdn.net/xbdf1234/article/details/60956832

https://help.apple.com/xcode/mac/current/#/dev7ccaf4d3c

https://blog.csdn.net/songrotek/article/details/8477318

IOS使用命令行打包的更多相关文章

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

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

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

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

  3. iOS 用命令行进行打包

    通过命令行编译打包 第一步,打开终端,输入: cd 把项目文件拖到这里(注意:cd后面要有空格,然后再把项目文件拖进来) 回车 第二步,clean工程(默认release版本),在终端输入: xcod ...

  4. xcodebuild命令行打包发布ipa

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

  5. 使用命令行打包 nuget 包

    对于那些不打算涉及这么复杂而又想制作自己的 nuget 包的园友们,我是推荐使用 Nuget Package Explorer 来制作的.关于这个图形化的 nuget 包管理软件的使用,博客园内有相关 ...

  6. [原] Android自动打包之命令行打包

    Android自动打包流程详细图: 总结为以下几个步骤: 1. 生成R文件 2. Java代码编译成class文件 3. class文件生成dex文件 4. 打包资源 5. 生成apk 6. 创建密匙 ...

  7. Unity命令行打包

    http://www.66acg.com/?post=137 补充 unity编辑器端获取打包命令行自定义参数,这个可以获取到所有打包时的参数 string[] runArgs = System.En ...

  8. Maven环境配置及命令行打包

    一配置环境变量 下载 apache-maven-3.2.5压缩包解压到本地  F:\apache-maven-3.2.5 配置MAVEN_HOME环境变量F:\apache-maven-3.2.5如图 ...

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

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

随机推荐

  1. Miller-Robin与二次探测

    素数在数论中经常被用到.也是数论的基础之一. 人们一直在讨论的问题是,怎样快速找到素数?或者判断一个数是素数? 1.根号n枚举 原始暴力方法. 2.埃氏筛 每个合数会被筛质因子次数次.复杂度O(Nlo ...

  2. [opencv] 图像几何变换:旋转,缩放,斜切

    几何变换 几何变换可以看成图像中物体(或像素)空间位置改变,或者说是像素的移动. 几何运算需要空间变换和灰度级差值两个步骤的算法,像素通过变换映射到新的坐标位置,新的位置可能是在几个像素之间,即不一定 ...

  3. unity脚本封装成dll

    先申明一下这样做是有需要的.当我们需要把脚本提供给第三方使用,而又不希望对方看到具体的实现过程,这时候就需要将代码封装编译成dll文件,供第三方调用.或是多个项目都要用到同一个模块或同样的功能,则可以 ...

  4. (转) linux下vim和bash配置文件

    1.注释版  ~/.vimrc "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 set nocompatible set autoread " 文件修改之后自动载入 ...

  5. 3 Kafka两个版本在Zookeeper的元数据存储

    0.8 [consumers, admin, config, controller, brokers, controller_epoch] 这些节点都归于谁管理 consumers: 0.8版本的客户 ...

  6. bzoj千题计划164:bzoj5123: 线段树的匹配

    http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf dp[len][0/1] 表示节点表示区间长度为len,节点选/不选的 最大匹配 s ...

  7. Java并发编程原理与实战六:主线程等待子线程解决方案

    本文将研究的是主线程等待所有子线程执行完成之后再继续往下执行的解决方案 public class TestThread extends Thread { public void run() { Sys ...

  8. 为什么JavaScript声明变量的时候鼓励加var关键字

    在JavaScript中,var用来声明变量,但是这个语法并不严格要求,很多时修改,我们可以直接使用一个变量而不用var声明它. var x = "XX"; y ="xx ...

  9. R4—R版本升级及swirl新产品出炉

    干货一: 经常有很多朋友会遇到这样一个问题:安装R版本使用了很久以后,在使用新packages时,提示这些包是基于更高版本的R构建的,因此,无法使用这些packages,一般的童鞋遇到这类问题可能非常 ...

  10. Linux查看日志三种命令

    第一种:查看实时变化的日志(比较吃内存) 最常用的: tail -f filename (默认最后10行,相当于增加参数 -n 10) Ctrl+c 是退出tail命令   其他情况: tail -n ...