[转] ios打包IPA的各种问题和解决方法
最近做了一个东西,在打包ipa文件时遇到了各种问题,纠结了我好几天。
由于我一直是做android的,在打包时以为ios打包也和android一样:用IDE(eclipse)生成一个签名证书,然后打包。事实证明ios的打包比这复杂多了。下面介绍一下我遇到的各种问题。
1.证书问题
要打包ipa首先需要设置code sign identity,一个应用需要打包至少需要三个要素:证书,APP ID,还有一个容易被忽略的provisioning profile。
证书的申请流程到处都可以找到,这里只简单介绍一下,首先使用钥匙串创建一个certSigningRequest文件,然后登录apple
developer的ios developer申请证书,将certSigningRequest文件上传,生成一个证书,将它下载下来即可。
接着是APP ID,仍然是到apple developer创建,一般是公司域名的倒写加应用名。
我之前一直以为到这里就结束了,就archive,结果每次都悲剧。问题出在provisioning
profile上,之前一直不理解为什么要这个东西,当我创建之后就知道它存在的理由了。大家知道应用在发布之前,要在没有越狱的真机上测试的话,就要将
机器UDID添加到你的开发者帐号中去,而一个应用如何知道你的开发者帐号里面添加了哪些UDID呢?就是通过provisioning
profile,它也是通过apple developer官网创建,在创建时会让你选择类型,打包ipa测试的话就选择AD
HOC,记得添加UDID,创建后下载下来生成mobileprovision文件,双击运行即添加到资源库中去,而xcode在读取你的系统里的证书时
实际上是在查找资源库里面的provisioning
profile。provisioning profile包含了证书,APP ID和UDID列表,archive后这些信息会被加入ipa中。
2."file not found"
在archive时会碰到一个蛋疼的问题,就是明明在模拟器编译运行都正常,但是打包ipa时却报一个找不到头文件的错,这是由于直接编译时使用的是你的
系统的头文件目录,而archive时使用的时SDK下的头文件目录,一般情况下这两者时一致的,但是有些特殊库的头文件,如libxml,在系统下
/usr/include/libxml2是包含在头文件自动搜索范围内的,而SDK中这个目录不在自动搜索范围内,所以就会报一个"file not
found"。
解决方式就是在编译参数里面添加一个头文件搜索目录,工程->build setting,搜索header search paths,添加你需要手动添加的头文件目录,如/usr/include/libxml2。
3.显示archive success,但是organizer不能自动弹出,手动打开也看不到刚刚打的包,或者没有share按钮可点
在介绍这个问题之前,我首先要吐糟一下某水果公司,这个问题足足浪费了我一个下午的时间,本来我可以不用加班的,当解决之后我恨不得跑到米国把某水果公司给炸了。
遇到这种问题可能有各种不同的原因,但是我敢说90%以上都是因为同一个原因,而这个问题的解决方法也超简单,工程->build
setting,搜索deployment,找到skip install项,将其改成NO,target->build
setting,搜索deployment,找到skip
install项,将其改成NO,网上找到一些资料说target下要改成YES,但是我真实操作下却是改成NO才生成ipa的,说实话,我并不理解它的
原理,各位看官可以YES和NO都试一下。
目前遇到的比较头疼的问题就这三个,以后遇到新的再更新。
[转] ios打包IPA的各种问题和解决方法的更多相关文章
- ipa包如何打包?ios打包ipa的四种方法分享
今天带来的内容是ios打包ipa的四种方法.总结一下,目前.app包转为.ipa包的方法有以下几种,下面一起来看看吧! 1.Apple推荐的方式,即实用xcode的archive功能 Xco ...
- iOS出现<object returned empty description>的解决方法
iOS出现<object returned empty description>的解决方法: 使用 [str length] <= 0 判断处理
- iOS打包ipa安装包的流程
应用的发布也分两种 一种是.打包成ipa上传到国内第3方软件市场,当用户的手机已经JailBreak时,双击下载的ipa文件就可以安装软件 (ipa同android的apk包一样,实质是一个压缩包) ...
- Xcode7.3打包ipa文件 报错和解决
An error occurred during export. The file “xxx.ipa” couldn’t be opened because there is no such file ...
- 【笔记】vue-cli 打包后路径问题出错的解决方法
几天之前打包自己的vue 项目上传到远程服务器上面 但是遇到了如下几个问题: 1. 线上浏览页面时是空白页面 2. 打包后资源文件(js, css 文件)引用的路径不正确 3. 开发环境中使用到的如: ...
- spring boot 1.x完整学习指南(含各种常见问题servlet、web.xml、maven打包,spring mvc差别及解决方法)
spring boot 入门 关于版本的选择,spring boot 2.0开始依赖于 Spring Framework 5.1.0,而spring 5.x和之前的版本差距比较大,而且应该来说还没有广 ...
- hybird app 用 xcode ios打包 ipa 测试包并且安装真机测试
1.创建 ios 项目 1.用 cordova 创建一个 ios 项目 npm install -g cordova cordova create hello com.mydomain.hello H ...
- ios打包ipa的四种实用方法(.app转.ipa)
总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选 ...
- iOS打包ipa给客户测试流程
IOS项目开发的过程中经常会用到一个测试的问题,特别是外包的项目,客户拿了那么多钱,看不到产品时时的进度说不过去,而且UI和功能是否和符合用户需求这个很重要,需要客户的认同. 所以就需要时时给开发中的 ...
随机推荐
- Java企业微信开发_Exception_01_"errcode":60011,"errmsg":"no privilege to access/modify contact/party/agent "
微信企业号增加成员时,返回错误信息: jsonObject:{"errcode":60011,"errmsg":"no privilege to ac ...
- Struts2 - action通配符映射
一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 通配符映射规则 – 若找到多个匹配, 没有通 ...
- freeMarker(二)——模板开发指南之入门
学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 模板开发指南-入门 1.模板+数据模型=输出 假设在一个在线商店的应 ...
- 打包AAC码流到FLV文件
AAC编码后数据打包到FLV很简单. 1. FLV音频Tag格式 字节位置 意义0x08, ...
- 使用WindowsAPI实现播放PCM音频的方法
这篇文章主要介绍了使用WindowsAPI实现播放PCM音频的方法,很实用的一个功能,需要的朋友可以参考下 本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAP ...
- Oracle 12c 多租户 手工创建 pdb 与 手工删除 pdb
实验环境: SQL> select * from v$version;BANNER ...
- 虚拟机centos系统,停机装第二块网卡,需要更改的配置
虚拟机centos系统,停机装第二块网卡,需要更改的配置. 问题描述: 虚拟机centos系统,停机装第二块网卡,发现 /etc/sysconfig/network-scripts/ifcfg-et ...
- asp.net定时任务
我们这边使用的定时任务框架是Quartz.Net,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔一小时执行”.每天22点执行,每月18日下午执行等等各种定时任务. Quartz ...
- Mac 远程连接Linux服务器及上传、下载命令
1.使用ssh命令连接远程服务器主机 1.不设置端口,默认就是22 ssh root@192.168.18.129 1.1.设置端口例: ssh -p 22 root@192.168.18.1292. ...
- 通信端口Com口被占用的原因分析
目前在调试地磅读取程序,近一段时间无法读取,排查原因发现是com1端口被占用. 从网上找了无数个文章,最终得到一条有价值的消息, 原因如下: com1端口不能读取电子地磅的数据了,重启之后发现 有一个 ...