转自:http://www.jianshu.com/p/c12fae498975

Ionic 项目开发完成之后呢,自然就是打包发布了,今天说说 iOS 的打包和发布。
iOS 的发布方式分为三种:iOS App Store、In-House、Ad-Hoc。下面我列举了一些主要的区别:

发布类型 开发者计划 是否需要苹果审核 发布方式 支持安装设备数量
iOS App Store 个人、公司、教育 需要 发布到 iOS 应用商店 无限制
In-House 企业开发者计划 不需要 发布到网站上给用户下载 无限制
Ad-Hoc 所有 不需要 拷贝给用户安装 100

由于我现在只有企业开发者计划帐号,所以就说说 In-House 的发布吧
本文仅适用于企业开发者帐号,个人开发者帐号请略过,本文不适用

为项目添加 Provisioning Profile

1、登录苹果开发者网站,找到 Certificates, Identifiers & Profiles 这个页面

2、在页面左侧列表的上边有一个下拉框,选择 “iOS,tvOS,watchOS” 选项

3、点击左侧列表中的 “App IDs” 项打开 iOS App IDs 页面,点击右边的 “+” 按钮添加一个 App ID

App ID Description 的 Name 字段填写 App 的名字,我一般都填的英文名

 

App ID Suffix 选择 “Explicit App ID” 单选按钮,Bundle ID 字段填写一个全球唯一的标识,公司项目就填 “com.公司英文缩写.项目英文缩写”

 

App Services 那里选择要启用的服务,然后点击下方的 Continue 按钮来到 Confirm your App ID 页面,确认下无误后直接点击下方 Register 按钮完成添加操作

4、点击左侧列表中 Provisioning Profiles 节点下的 Distribution 项打开 iOS Provisioning Profiles(Distribution) 页面,点击右边的 “+” 按钮添加一个 Provisioning Profile

在 Select Type 页面选择 Distribution 节点下的 “In House” 单选框,点击下方 Continute

 

在 Select App ID 页面选择之前添加的 App ID,点击下方 Continute

 

在 Select Certificates 页面选择企业开发者证书,点击下方 Continute

 

在 Generate 页面填写 Profile Name,可以跟 App ID 的 Name 一致,点击下方 Continute

 

Provisioning Profile 生成成功后点击 Download 按钮下载下来然后双击安装即可

打包 Ionic 应用

iOS 应用的打包很简单:

1、使用 XCode 打开 Ionic 项目目录下的 “./platforms/ios/ProjectName.xcodeproj” 文件

2、打开 XCode 菜单中的 Preferences 项,在 Accounts 选项卡中添加企业开发者帐号的 Apple ID

3、点击 Project Navigator 中的项目文件,在中间 General 选项卡中 Identity 节点下选择 Team 下拉框中选择你的企业帐号

4、在 XCode 左上角运行配置那里选中 “Generic iOS Device”

5、在 XCode 菜单中选择 Product -> Archive 即可

导出 Ionic 应用

1、在 XCode 菜单中选择 Window -> Organizer,在上方选项卡中选择 Archives

2、在 iOS Apps 列表中选中要发布的应用,在窗口中间选中打好的包,点击窗口右边的 Export 按钮

 

3、在 Select a method for export 窗口中选择 Save for Enterprise Deployment,点击 Next

 

4、在 Select a Deployment Team 窗口中选择你的开发团队,点击 Choose

 

5、在 Deveice Support 窗口选择 Export one app for all compatible devices,如果你发布的应用只针对某个设备,请选择 Export for specific device,并在下拉框中选择设备名称,然后点击 Next

6、在 Summary 窗口中直接点击 Next

7、在 Distrbution manifest infomation 窗口中随便填,能通过验证就行,后面再改

8、选择要导出的位置,点击 Export 导出

发布 Ionic 应用

1、将导出的 ipa 文件上传到支持 SSL 的站点并记录下 URL

2、修改导出的 plist 文件,找到 software-package 节点,把 ipa 文件的 URL 替换上去,URL 必须是以 https 开头。后面两个图片节点可以注释掉或者删掉

  <array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://test.duapp.com/files/app.ipa</string>
</dict>
<!-- <dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://localhost/app.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://localhost/app.jpg</string>
</dict> -->
</array>

3、把 plist 文件也上传到支持 SSL 的站点并记录下 URL

4、制作 app 下载页面,将下载链接指向 plist 文件的 URL 即可。下载链接的示例如下:

  <a href="itms-services://?action=download-manifest&url=https://test.duapp.com/files/manifest.plist">下载App</a>

5、将 app 下载页面发布到公司网站,在手机中打开站点测试能否成功下载

由于苹果要求 iOS 企业应用发布的站点必须要有 SSL 证书,由于公司的网站不具备条件,所已我将 ipa 文件和 plist 文件上传到了百度云的 BOS 上面

文/云鹏1943(简书作者)
原文链接:http://www.jianshu.com/p/c12fae498975
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

发布 Ionic iOS 企业级应用的更多相关文章

  1. IBM发布AppScan Source 8.7:减少iOS企业级应用安全风险

    IBM发布AppScan Source 8.7:减少iOS企业级应用安全风险http://automationqa.com/forum.php?mod=viewthread&tid=2570& ...

  2. iOS企业级开发初级课程-表视图(13集)

    首先了解了表视图的组成.表视图类的构成.表视图的分类以及表视图的两个重要协议(委托协议和数据源协议),对表视图有了一个整体上的认识.接下来我们掌握了如何实现简单表视图和分节表视图,以及表视图中索引.搜 ...

  3. 转《发布ionic应用到App Store的完整步骤 》

    当我们开发完一个应用,就到了发布到市场的时候,Android的打包比较简单,签名之后可以放在我们自己的服务器上,让用户扫描二维码来下载,而苹果的就比较麻烦了,如果内测可以通过蒲公英等内测分发平台,但是 ...

  4. Unity 发布到IOS,Android的各种坑

    Unity 发布到IOS的注意事项1.开发环境MAC环境:Xcode环境 7.2.1Unity环境:Unity5.32.基本说明首先,我说一下,这是我在对Unity发布到IOS的实际使用中,总结出来的 ...

  5. ionic ios项目真机运行-不用开发者账号

    ionic ios项目真机运行-不用开发者账号 1. 添加ios平台 ionic platform add ios 2.使用XCODE打开项目 3.使用APPID登录XCODE 打开XCODE账号登录 ...

  6. Unity发布至IOS的流程(踩坑记录)

    这篇文章主要用于记录本人亲身经历过的Unity发布到IOS平台所遇到的所有坑(其实也就是一些自己并不明白的强制设定),以便于后续再有类似需求时少走些弯路. 我的环境: Unity 5.2.2 个人版( ...

  7. Windows Unity ARKit发布到IOS相关设置及错误解决

    Windows 版Unity安装: 考虑到在虚拟机中运行Unity比较卡,所以采用在Windows Unity上将项目发布好然后再复制到Mac虚拟机中通过XCode进行编译的方式. Unity版本为 ...

  8. 包建强的培训课程(7):iOS企业级开发实战

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  9. ionic ios 发布设置 header-bar高度无效

    在公司app发布过程中发现一旦改过header-bar的高度之后在ios内部或者通过ionic build browser生成的网页打开都不是正常的 通过chrome的查看工具发现自己写的样式被直接覆 ...

随机推荐

  1. 路线更改事件 $routeChangeStart 与 $locationChangeStart

    $routeChangeStart属于$route模块,使用将要改变的路由和当前路由对比,在没有跳转之前 参数包括 function(event, next, current)  next $loca ...

  2. Linux的任务计划--cron入门

    Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...

  3. C++深拷贝与浅拷贝

    当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用.也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用.以下情况都会调用拷贝构造函数: (1)一个对 ...

  4. Memcache所有方法及参数详解

    memcache函数所有的方法列表如下: 参考http://www.php.net/manual/zh/function.Memcache-add.php Memcache::add - 添加一个值, ...

  5. C++利用IO流对浮点数进行格式化控制输出

    浮点数输出 (100/100 分数) 题目描述 编写一个程序,输入一个浮点数和输出格式要求,按照格式要求将该浮点数输出.给定非负整数m和n,表示输出的浮点数小数点前的宽度为m,若宽度不够则在前面补0, ...

  6. Android之自定义控件-下拉刷新

    实现效果: 图片素材:         --> 首先, 写先下拉刷新时的刷新布局 pull_to_refresh.xml: <resources> <string name=& ...

  7. java的覆盖重写隐藏和C#中的不同

    先看下C#中的: C#中覆盖 隐藏 重写这三种有不同的意义,而Java中不同. 1. java中没有new ,使用new会报错,编译不通过. 2. java中重写和覆盖应该是一个意思 static c ...

  8. xmind的第十一天笔记

  9. 【转】CSS设置DIV背景色渐变显示

     [原链接]http://www.2cto.com/kf/201310/248187.html <style type="text/css">     .linear{ ...

  10. POJ 3414 解题报告!

    原题: Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13227 Accepted: 5550 Special Jud ...