内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

使用过期iOS开发者账号打包

2018-11-07 18:24 出处:清屏网 人气: 评论(0

这篇文章不是讲开发者账号过期,怎样进行续费的。而是讲开发者账号过期后,怎样继续进行打包测试,以及其中的原理的。

当然,在开发者账号过期之前,就及时续费这是最明智的选择,如果开发者账号没有续费,可以看看下面的文章应急。

苹果企业级账号、公司账号、个人账号等账号,因为没有续费过期了,公司着急打测试包怎么办?

占位图

账号过期

如果证书过期,在打包时还和之前的一样,只要配置文件、打包证书、 Bundle Identifier 没有错误,就可以正常 Archive

但是你对 Archive 之后的 .xcarchive 文件,使用打包证书进行打包签名的时候,按照之前的打包流程进行打包,你会发现苹果需要你添加一个 Apple ID

添加Apple ID

然后你到 Accounts 中发现,我已经添加了一个 Apple ID 了,并且是对应当前证书的 Apple ID 。(如果没有添加,则添加即可)

添加Apple ID

你发现添加 Apple ID 之后,打包界面并没有发生变化,还是之前的样子,就算刷新之后也没有什么用。如果是这样,那么遗憾的告诉你, 请去开发者账号看看是否过期了

然而进去之后,你会发现苹果已经提醒你账号过期了,这样就不能正常打包了。

过期

根据苹果的 官方描述 ,如果账号过期后 App 将不能下载,也无法更新和提交 App ,以及失去修改配置证书、描述文件、以及开发者的身份。但是已经安装 App 的用户依然可以使用,我们也可以继续访问 iTunes Connect 和使用免费开发资源。

如果是 299$ 的企业账号过期,已经下载的 App 将不能使用,打开后会直接崩溃。还有一种教育账号,这种账号不会过期。

苹果为了防止账号过期的问题,在账号过期前会给账号的 Agent 用户发送一封邮件,告知账号快过期了,需要续费。而且提供了自动续费的功能,在账号过期前 30 天自动从银行卡扣费,但是这个功能只在部分地区可用(然而并不包含中国大陆:flushed:)。

账号过期,怎么解决?

账号过期后,你可以点击上图中的 renew your membership ,然后进行续费。

续费页面

然而续费之后并不一定能立即使用,而且现在着急打测试包。也或者公司是企业级(299美元)账号,不着急续费,只是想进行发布测试。可以通过以下方式解决这个问题。

  1. 直接在 Xcode 中选择 Window -> Orgenizer ,找到我们 Archives 之后的包,操作如下:

    Archives -> Show in Finder -> 显示包内容 -> Products -> Applications 然后直接将这个包拖到iTunes中,就可以生成一个 ipa 包,这个 ipa 包就是可以安装的包。

    直接拖到应用程序中

  2. 可以在Xcode中重新编译当前程序,编译完成后,在文件目录中 Show in Finder 出这个包。

    我们可以直接将这个包压缩,然后将压缩包改 zip 后缀为 ipa 后缀即可。

    打包

  3. 在Xcode中添加打包脚本为我们自动打包,在 Build Phases 中添加 Run Script ,直接将脚本代码添加进去即可。

添加打包脚本

下面是本文中使用的脚本代码,打包的脚本代码网上一搜一大把,可以根据需求查找打包脚本。

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${RELEASE_BUILDDIR}/${APPLICATION_NAME}.app" -o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" --sign "${DEVELOPER_NAME}" --embed "${PROVISONING_PROFILE}”

通过以上方式打的测试包,在开发者账号过期的情况下,都可以正常安装测试,可以对外发布测试。

防患于未然

开发者账号过期之前,及时续费是必要的,这可以从根本上解决问题,千万别因为这点钱坏了大事。

可以在账号没过期之前,在Xcode中登陆过开发者账号后,先将 Provisioning Profiles 文件导出到本地一份。

Exporting

在账号过期之后,我们将 Accounts 中之前到账号 Apple IDs 删除。然后将 Mac 断网,断网之后将系统时间修改为过期之前的时间(尽量靠前一些),然后双击 Provisioning Profiles 文件安装即可,使用这种方式还能应付一段时间。

账号过期,为什么还能打包?

首先我们要明确的就是什么是开发者证书?

先来说一些理论性的知识点,开发者证书是苹果颁发给开发者,用来验证开发者身份的一个文件。这个文件类似于我们做加密时,常用的数字证书一样。使用模拟器运行时不需要证书,在真机测试或打包时,需要使用证书进行签名。

证书中最重要的是其中包含的一个私钥,证书的校验使用的是RSA非对称加密算法,这个私钥就是和苹果服务器进行校验的“一把钥匙”。如果证书中的私钥不正确,则校验失败,不能进行相关的操作。

证书和私钥

iOS 中的私钥一般都是 2048 位的,这个级别的私钥长度是非常安全的,目前为止破解最长的私钥只有 RSA-768 的长度。

私钥

导出私钥

我们所说的导出私钥也就是导出 .p12 文件,导出证书后团队中其他人就可以使用这个证书,否则这个证书必须在生成证书助理文件的电脑上使用。

导出私钥

现在我们该说说为什么可以使用已过期账号的证书了

开发者账号过期后,如果证书的有效期没有过期,苹果并不会删除证书的公私钥,还会继续提供校验服务。

在证书生成后会有一个证书有效期,只要这个有效期内使用证书就是有效的。如果证书过期后,我们只需要将过期的证书 revoke 之后生成新证书,之后都是用新证书即可。

证书有效期


分享给小伙伴们:
本文标签: iOS开发

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号