IOS 内部测试与开发账号

来源:互联网 发布:java message类 编辑:程序博客网 时间:2024/04/28 16:46

      对于一个未上线 App Store 的应用,一般来说,开发者如果需要将应用安装到某些用户的设备上,就需要将应用导出为这些设备可以直接安装的安装包(.ipa文件),安装包能否正确导出,是决定了应用能否被正确安装到设备上的关键因素。其中,最关键的一个因素是,导出安装包时,应用所使用的证书(即:签名方式)。

开发者可以选择如下两种方式的证书签名方式,来导出应用安装包:

  1. Ad-hoc 方式
  2. In-house 方式
     其中,具体使用哪种方式,取决于开发者拥有苹果开发者账号的类型。例如,如果开发者拥有的是苹果个人开发者账号,则可以使用 Ad-hoc 方式;如果拥有的是苹果企业开发者账号,则可以使用 In-house 方式。
          

到目前为止,苹果为 iOS 应用共提供了三种类型的证书签名方式,每一种都有独特的用途。这三种分别是:

  1. Ad-hoc
  2. In-house
  3. App-Store

根据打包证书的不同,分别显示为内测版企业版App-Store版

证书名称显示支持的安装范围支持的苹果开发者类型Ad-hoc内测版需要把设备UDID添加到证书才可安装个人账号、公司账号、教育账号、企业账号In-house企业版任何iOS设备均可安装企业账号App-StoreApp-Store只能通过App Store安装个人账号、公司账号、教育账号

内测时遇到的问题:

为什么iOS的应用安装到一半时提示"无法下载应用程序"?

这个错误,可能是由于以下几种原因造成的:

  • 开发者在生成App安装包时,没有在Xcode中设置正确的Architecture。例如,如果在Xcode中的只添加了arm64这一种Architecture,那么最终打包后的ipa上传后,对于iPad mini、iPhone5等以下设备,都是无法安装的(因为这些设备都不是arm64架构)。换句话说,如果需要在某个设备上可以安装,App就必须支持那个设备的Architecture。所以,正确的解决方法是,在生成App安装包时,尽可能让App支持更多的Architecture。具体操作方法是:在Xcode - Build Settings - Architecture 中,增加armv7、armv7s、arm64,以便所有设备都可以安装。然后,将"Build active architecture only"设置为NO。对于各个iOS设备支持的Architecture类型。
  • App支持的iOS系统版本,和当前设备系统版本不符。 例如,如果App设置了只支持7.0以上的iOS系统时,那么,如果在iOS6.1系统上安装,也是无法安装的。解决的方式是,让App尽可能支持更宽泛的系统版本。具体操作方式是:在Xcode - General - Deployment Info - Deployment Target 中,给App设置一个尽量低的版本,例如5.0。
  • 开发者上传的是一个破解的ipa安装包,或者是一个使用破解Xcode方式打包生成的ipa安装包,或者是通过iTunes生成的ipa安装包。 这样的安装包上传后,都是没有办法正确在'未越狱'的设备上安装的。正确的方法是,使用一个正常的苹果开发者证书(个人证书或企业证书均可),通过未破解的Xcode打包生成ipa安装包。
  • 设备上已经安装了这个App,且已经安装的App和要安装的App是用不同证书打包的。这种情况下,也会造成App安装失败。此时,开发者可以将设备上已经安装的App删除,再重新安装新的App。

关于IPA 安装包文件的打包

IPA 文件,即 iOS 应用的安装包文件,扩展名为 .ipa。能否正确的打包 IPA 文件,是决定了 IPA 文件上传到蒲公英后能否被正确安装的关键。以下说明了如何正确打包 iOS 应用的 IPA 文件。

应用的 IPA 文件可以使用两种方式生成:

  1. 使用命令行 xcodebuild exportArchive -exportFormat ipa来完成
  2. 使用 Xcode 打包

鉴于第 2 种方式简单快速,也是大部分用户都使用的。

Archive 成功之后,就可以在 Xcode 的 Organizer 中看到相应的文件。


在接下来的弹出界面中需要选择证书类型,选择方式如下:

  • 如果您使用的是个人或公司苹果开发者账号($99),请选择 “Save for Ad Hoc Deployment”
  • 如果您使用的是企业苹果开发者账号($299),请选择 “Save for Enterprice Deployment”
如下图所示:


进行内部测试打包的时候也许你点击Next 过后,面板提示:your session has expired please log in,那么你的Xcode中有多个账户,其中有密码过期的账户。重新登录即可。Xcode-->Preferences-->Apple ID。检查哪个账户过期了。可能需要重置密码。我当时遇到的情况是,开发者账号的密码被重置了,我打包就变成这个情况。到Xcode里面输入新的密码登录就可以再用了。

还有个比较重要但是麻烦的证书就是推送证书,要在App ID中加上推送功能,你的签名证书也要新建成推送的证书,给出网址:

http://docs.getui.com/pages/viewpage.action?pageId=1934165

0 0
原创粉丝点击