今天使用 hbuilder 运行到 ios 真机的时候,突然发现还需要 ipa 签名,这是什么东东呢?

1、IPA 签名是什么?

因苹果公司禁止企业证书用于非企业内部开发者。所以开发者无法再使用DCloud的企业证书签名的标准运行基座。

运行标准基座到iOS真机设备前,需要使用开发者的证书对基座签名后才能运行。

生成 ipa 签名有两种方式:

(1) 官网申请证书

在 apple 官网注册 appleID ,申请开发者证书,然后在iOS标准基座签名窗口,输入Bundle ID、证书私钥密码、证书profile文件、私钥证书P12文件,即可完成签名。

(2) 使用爱思助手生成

在爱思助手内,导入 ipa 文件 + appleID 生成签名文件,导入 hbuilder 安装目录下就ok了。

2、如何生成 IPA ?

apple 官网申请证书有些麻烦,appleID 账号登录成功之后,还需要填写注册时设置的安全校验问题,注册这么久早都忘喽,重新注册个邮箱注册 appleID 发现还不支持,头大的不行了,干脆使用爱思助手算了。

帮大家整理一个快捷生成 ipa 的详细步骤:

(1) 下载一个爱思助手,并且将手机与电脑连接成功。打开爱思助手,选择工具箱,找到 IPA 签名工具。

(2) 添加 ipa 文件,找到 XHbuilder 的安装目录,选择 plugins 文件夹,再找 launcher 文件夹,选择 base 文件夹,选择 iPhone_base.ipa 文件。

具体目录:HBuilderX\plugins\launcher\base\iPhone_base.ipa

(3) 使用 Apple ID 签名,通过账号密码登录,手机连接电脑自动识别设备Id。

(4) 选中 ipa 文件和 appleID 生成签名文件

(5) 签名成功后,找到签名后的ipa文件,并命名为iPhone_base_signed.ipa,然后将其拷贝到HBuilderX安装目录\plugins\launcher\base

(6) 完成上述操作之后,签名就生成完成,可以在 XHbuilder 运行项目到 ios 手机了。

3、运行到真机,好了吗 ?

此时点击运行-》运行到手机或者模拟器-》运行到 IOS app基座:

此时链接手机就可以正常开始编译,运行到手机上,运行半天之后提示安装调试基座失败

错误信息提示:

打开文件服务失败,请尝试拔掉数据线后重新连接手机,或重启手机再试(如果是IOS15.1以上的设备,请确认基座版本号为3.3.2及以上)

07:30:33.442 标准基座真机运行不支持iPhone 5S/iPad mini2以下设备,请使用自定义基座进行真机运行。

此时我们需要在手机端安装 Hbuilder 调试基座,

点击打开已签名的 ipa 位置,选中生成的 iPhone_base.ipa 文件双机,就会出现 Hbuilder 安装确认提示:

点击立即安装,就会进入手机安装Hbuilder 进度提示,如下图:

安装完成之后我们需要最后一步就可以正常运行到手机了。打开手机设置-》通用-》设备管理-》选择开发者APP->信任Hbuilder。

至此,就可以正常运行到手机上了。小编第一次看见这些的时候看着官方文档实操了一上午,最后以失败而告终,所以帮大家整理了一下,希望不要像我一样从入门到放弃。

4、生成 IPA 常见问题 ?

小编写的好简单啊,看着教程都是这么简单,但是实操的时候,发现会经常报各种错误,让人好心累,所以为大家整理下常见的问题。

(1) 提示,证书申请失败!

(将鼠标移动至红色字体的位置。后面会出现一串这样的英文提示。)

get +XcodeToken+err+SRP_Setp1+err:hsc=200+ec=-20101+au=+em=Your+account+information+was+entered+incorrectly。

这种情况说明 appleID 账户有问题,我们先重新登录以下 appleID 确认好密码之后重新添加 appleID 账户再生成。

(2)账户密码错误提示

get +XcodeToken+err+GetGsldmsToken+err:hsc=401+ec=-22406+au=+em=Your+Apple+ID+or+password+is+incorrect.

提示你账户或密码不正确,请确认您的 apple Id 账户信息。

(3)提示签名失败,错误码44或 45 。

因 ipa 包构架问题导致无法进行签名,可以尝试下载未被改动过的原始iPA包重新签名。

(4) get anisettedata failed.

这个有可能是电脑网络的原因:公司网络或校园网络。解决方法是:更换个人家庭网络或手机热点。通常会有网络提示帮您自动切换。

(5) 启动证书申请进程失败。

这个是杀毒软件拦截了证书申请的进程,重启电脑退出杀毒软件再重试。

(6) 出现这类证书申请失败的提示:get teams err Teams =0.

原因是当前账号获取teams出错,更换Apple ID账号再去签名即可。

(7) 出现这类证书申请失败的提示:get XcodeToken err GetGsldmsToken err:hsc=434 ec=-22421 au=em=This action could not be completed. Try again.

或者这种提示:get +teams+err+1100+Your+session+has+expired.+Please+log+in.

然后这种提示:get +XcodeToken+err+RequestValidate+err;Http+Get+validate+vd+len;0+err;<nil>.

还有这种提示:

这四种情况的解决办法是一样的,按照这个文件路径 :C:\ProgramData\i4\i4tools\ipasign,删除adi和cnf两个文件夹即可。

(8) 这类证书申请失败的提示:get +XcodeToken+err+MakeCPD+err;anisette+null+err;The+operation+couldn\U2019t+completed.+(AKAnisetteError+error+-8004.) .

这是电脑设置了代理服务器,关闭即可。

(9) 签名数量已达上限。

根据苹果的规定,每个 Apple ID 在 7 天内只能为 10 个安装包进行签名,请更换 Apple ID 或 7 天后再试。

出现以上报错,首先检查 iTunes 是否为最新版本,确保为最新版后如果继续报错,请更换其他能正常登录使用的 Apple ID 来完成签名。

(10) Apple ID 停用了。

证书申请失败提示:

get XcodeToken err SRP_ Setp1 err:hsc=409 ec= -20209 au=iForgotAppleldLocked em=This Apple ID has been locked for security reasons. Visit iForgot to reset your account (https://iforgot.apple.com).

这个是苹果ID停用了,去苹果官网登录Apple ID,等弹窗提醒再去修改Apple ID 密码即可。(不要去主动修改Apple ID密码,不然无效。)

5、 IPA 使用注意事项有哪些?

(1)ipa 生成签名安装应用的有效期为 7天,安装之后的使用时间取决于证书的有效期,如果在有效期内被吊销或者过了有效期,软件将无法再次打开。

(2)使用 apple id 生成的 ipa 文件不可以直接发给别人使用,因为生成的 ipa 是个 apple id 签名的应用设备标识绑定着,所以别人使用时签名无效。

(3)XHbuilder 升级之后,以前生成的 ipa 还可以使用吗?不可以。

XHbuilder 需要的 ipa 签名,超详细的教程,你不看吃亏的是自己!的更多相关文章

  1. ROS2的安装与使用(超详细图文教程)

    ROS2的安装与使用(超详细图文教程) 如果前面的虚拟机以及Ubuntu22.04镜像都安装好了,根据目录直接跳到ROS2的安装. 资料参考于:古月居 VMware虚拟机的安装 安装地址: 对于不了解 ...

  2. VMware虚拟机下安装CentOS7.0超详细图文教程

    1.本文说明: 官方的第一个文本档案.也就是0_README.txt,大概意思是这样(渣翻译,但是大概意思还是有的). CentOS-7.0-1406-x86_64-DVD.iso:这个镜像(DVD ...

  3. 超详细实战教程丨多场景解析如何迁移Rancher Server

    本文转自Rancher Labs 作者介绍 王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营.拥有6年的云计算领域经验,经历了OpenStack到Kubernetes ...

  4. MySql5.6 Window超详细安装教程

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 目录 一.安装包准备二.开始安装三.验证安装四.客户端工具 一.安装包准备 1.下载MySql ...

  5. MySql5.6Window超详细安装教程(msi 格式的安装)

    转自:红黑联盟  http://www.2cto.com/database/201506/409821.html 一.安装包准备 1.下载MySql5.6 http://www.mysql.com/ ...

  6. 在Ubuntu下进行XMR Monero(门罗币)挖矿的超详细图文教程

    大家都知道,最近挖矿什么的非常流行,于是我也在网上看了一些大神写的教程,以及跟一些大神请教过如何挖矿,但是网上的教程都感觉写得不够详细,于是今天我这里整理一个教程,希望能够帮到想要挖矿的朋友. 首先, ...

  7. 超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务

    来自:JavaGuide Github 地址:https://github.com/Snailclimb/springboot-integration-examples 目录: 使用 SpringBo ...

  8. 【建议收藏】Redis超详细入门教程大杂烩

    写在前边 Redis入门的整合篇.本篇也算是把2021年redis留下来的坑填上去,重新整合了一翻,点击这里,回顾我的2020与2021~一名大二后台练习生 NoSQL NoSQL(NoSQL = N ...

  9. 最新MATLAB R2021b超详细安装教程(附完整安装文件)

    摘要:本文详细介绍Matlab R2021b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...

  10. 最新MATLAB R2020b超详细安装教程(附完整安装文件)

    摘要:本文详细介绍Matlab R2020b的安装步骤,为方便安装这里提供了完整安装文件的百度网盘下载链接供大家使用.从文件下载到证书安装本文都给出了每个步骤的截图,按照图示进行即可轻松完成安装使用. ...

随机推荐

  1. python入门教程之十八正则表达式

    re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. 函数语法: re.match(pattern, string, ...

  2. 【Vue项目】商品汇前台(二)进度条插件+Vuex模块化仓库+函数的防抖与节流+路由传参

    前言 1 nprogress进度条的使用 当请求发出进度条出现并向前走,请求成功后进度条消失.nprogress是一种进度条插件 1.1 nprogress进度条插件安装 npm i --save n ...

  3. 动态规划DP入门问题----最大连续子序列,最长不下降子序列(可以不连续),最长公共子序列

    一.最大连续子序列 1.题目叙述 对于一个数字序列A1A2A3...An,求出连续子序列的最大和,如对于序列-2,11,-4,13,-5,-2,其中的最大序列和是11+(-4)+13=20 2.动态规 ...

  4. 基于Python的爬虫案例

    案例1:使用爬虫爬取京东华为手机用户评论 本案例借鉴哔哩哔哩博客主视频教程,感谢其教程为我开启了爬虫之旅:https://www.bilibili.com/video/BV1Yt4y1Y7nt?t=3 ...

  5. 16-js兼容性处理

    const { resolve } = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); modul ...

  6. 重新实现hashCode()方法

    在Java中,为了让对象在集合中能够更高效地进行查找和比较,我们通常需要重写对象的equals()和hashCode()方法.其中,equals()方法用于比较两个对象是否相等,而hashCode() ...

  7. Python 使用列表一部分(切片)

    使用列表的一部分(切片) 处理列表的部分元素 切片 指定第一个元素的索引和最后一个元素索引加1 列表名[索引:索引+1] 索引加1:列表中第索引个元素 (左包括右不包括) 未指定索引 列表名[:] 提 ...

  8. SDK日志上传性能优化

    问题描述 在SDK初始化时,会在init方法中开启一个倒计时,在5s倒计时结束后使用子线程将本地保存的历史日志信息上传到后台. 因业务需要,在日志在发送上传前,对日志数据上传时需要对日志数据做编码和特 ...

  9. 2022-08-23:以下go语言代码输出什么?A:map[baz:2 foo:0];B:map[bar:1 baz:2];C:map[baz:2];D:不确定。 package main impo

    2022-08-23:以下go语言代码输出什么?A:map[baz:2 foo:0]:B:map[bar:1 baz:2]:C:map[baz:2]:D:不确定. package main impor ...

  10. Prompt Engineering优化原则 - 以Webshell代码解释为例

    一.LLM prompt优化原则 本文围绕"PHP代码解释"这一任务,讨论LLM prompt优化原则. 代码样例如下: <?php echo "a5a5aa555 ...