IN-HOUSE应用程序分发

下面介绍下使用网络方式进行部署的方式,用户直接在iPhone/iPad的Safari浏览器里面输入URL地址即可安装,

注意:目前对于这种企业级开发的应用程序最好的分发方式是部署到内网服务器上通过网络进行下载。

前提条件
  • 已鉴定的用户可以访问的安全Web服务器,对于iOS7.1以上的设备必须有HTTPS的服务器
  • .ipa格式的iOS应用程序,经构建用于发布/生产(使用了企业级预制描述文件)
  • 关于应用程序描述的清单文件(.plist)
  • 使用了itms-services://?action=download-manifest&url=形式的HTML超链接
部署步骤
  1. 打包ipa文件
    使用Xcode的Product->Archive来进行打包,在选择发布的方式上选择Save for Enterprise or Ad- Hoc Deployment,生成IPA文件即可。
  2. 配置plist文件
    在plist文件中必须配置IPA文件的下载路径、应用的名称和应用的bundle-identifier(需要和Xcode中的配置一致)
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
   <dict>
       <key>assets</key>
       <array>
           <!— 必填项,ipa文件 —>
           <dict>
               <key>kind</key>
               <string>software-package</string>
               <key>url</key>
               <string>http://www.example.com/apps/foo.ipa</string>
           </dict>
           <!-- 可选项display-image: 在下载过程中显示的图标.—>
           <dict>
               <key>kind</key>
               <string>display-image</string>
               <!-- optional.indicates if icon needs shine effect applied.-->
               <key>needs-shine</key>
               <true/>
               <key>url</key>
               <string>http://www.example.com/image.57x57.png</string>
           </dict>
           <!-- 可选项,full-size-image:(512x512)在iTunes使用的图标.-->
           <dict>
               <key>kind</key>
               <string>full-size-image</string>
               <key>needs-shine</key>
               <true/>
               <key>url</key>
                <string>http://www.example.com/image.512x512.jpg</string>
           </dict>
       </array><key>metadata</key>
       <dict>
           <!-- 必填项,应用程序的indentifier>
           <key>bundle-identifier</key>
           <string>com.example.fooapp</string>
           <!-- 可选项,应用程序的版本号 -->
           <key>bundle-version</key>
           <string>1.0</string>
           <!-- —必填项 下载类型默认为software -—>
           <key>kind</key>
           <string>software</string>
           <!-- 可选项 在提示下载时显示,一般为公司的名称 -->
           <key>subtitle</key>
           <string>Apple</string>
           <!-- 必填项,在下载的过程中显示.—>
           <key>title</key>
           <string>Example Corporate App</string>
       </dict>
   </dict>
</array>
</dict>
</plist>
  1. 编写下载页面,其中URL指向的是plist文件的路径,对于iOS7.1以上的系统这里的plist的路径必须是HTTPS的,iOS7.1以前的则不需强制使用HTTPS
<a href="itms-services://?action=download-manifest&url=http://www.example.com/test.plist">下载应用</a>
  1. 设定服务器MIME类型
    对于OS X Server,将以下MIME类型添加到WEB服务的“MIME TYPES”设置中:
    application/octet-stream ipatext/xml plist对于IIS,使用IIS Manager在服务器的“属性”页面中添加MIME类型
    .ipa application/octet-stream.plist text/xml
企业证书使用的注意事项:
  1. 不要将企业签名后的应用发布到第三方市场进行公开下载。
  2. 不要将应用的安装链接公开,做到只在企业内部安装使用
  3. 自己的开发账号千万不能外借
  4. 不要将p12证书文件和Provisioning Profiles 文件上传到第三方打包平台,如云编译,云打包之类的
  5. 测试的时候最好在企业内部网络进行,如果需要连接Internet的话,请注意网络环境不要发生太大的变化
对于企业账号来说,苹果的管控是非常严格的,任何违背苹果 ADP 和 ADEP 条款使用企业账号,都会有企业账号被封的风险。根据经验,我们总结了上述一些规则提供给所有开发者,只要根据严格遵守,即可极大程度的避免企业账号被封。

但是,苹果的企业账号监管很大程度上是取决于苹果人工审核,所以并没有100%安全的事情,有的时候,也需要一点运气。苹果企业开发者账号一旦被封,基本上也就没有办法找回来了,钱也不会退的,随后苹果会给你发一封邮件通知,并且一年内不得再次注册。