把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

AppHub:绕过苹果审核机制更新 iOS App

  • 2015-08-18
  • 本文字数:1045 字

    阅读完需:约 3 分钟

为了保证应用程序的合法性和安全性,苹果公司对每一款应用程序设定了严格的审查制度。每一个软件在发布之前都会经历一段时间的机器或人工审核阶段。这个时间短则几天,多达数周。对于敏捷软件开发团队而言,他们经常面临上一个版本还在审查中,一个新的版本已经完成修改的情况。为了解决如此尴尬的局面,毕业于 MIT 的 Matt Arbesfeld 联合其好友设计了 AppHub ,使得面向 iOS 系统的 React Native 应用能够快速更新。接下来,本文就对 AppHub 进行简要介绍。

首先,作为 Facebook React.js Conf 2015 会议上推出的项目,React Native 利用开源 JavaScript 库和 React.js 进行 iOS 和 Android 原生应用的开发。其优势在于提高了代码和模块的可重用性,并使得代码从服务器端动态更新成为可能。目前,Facebook 已经将 React Native 用于生产环境,并将其进行开源,代码依托在 GitHub 中。

正是基于 React Native 的诸多特性,AppHub 实现了快速更新 React Native 应用的功能。那么,究竟如何利用 AppHub 服务实现应用的快速更新呢?首先,应用开发人员需要下载并解压用于 iOS 的 AppHub SDK,并将其添加到应用程序中。具体做法为:把下载的 AppHub.framework 放入到 Xcode 项目;选择“Copy items to destination’s group folder”复选框;在 Link Binary With Library 的编译阶段添加 libz.dylib;把应用连接到 AppHub。接下来,开发人员就可以不断的使用 dashboard 或者 REST API 把更新发送到 AppHub 服务器中。

在 AppHub 中,开发人员为每一个移动应用程序都创建了一个 App。这个 App 拥有唯一的应用 ID,用来配置 SDK。此外,该 App 会保留移动应用的多个版本。开发人员利用 AppHub 的 dashboard 可以对这些版本进行配置和部署。服务器自动探测 App 的配置,把新的代码替换到到应用中,从而实现客户端应用的自动更新。目前,AppHub 所支持客户端操作系统为 iOS 8.0+,所支持 React Native 库的版本为 v0.7.0+。另外,就开发者所关心的 AppHub 是否是否被苹果公司所允许这一问题,AppHub 官网表示,苹果公司在开发者协议里特别允许了这种做法。本质上,AppHub 应用和 React Native 应用基本相同。而 React Native 应用已被证明是可以被苹果所接受的。因此,AppHub 这种做法肯定也会被苹果公司所接受。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-18 08:225139
用户头像

发布了 268 篇内容, 共 137.6 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

分布式计算DAG1-画猫

Hervor。

前端存储除了 localStorage 还有啥

阿宝哥

Java 大前端 存储

一张PDF了解JDK9 GC调优秘籍-附PDF下载

程序那些事

性能调优 GC JDK9 cheatsheet 秘籍

架构师训练营第四周作业

Melo

戴尔Latitude 9510 雅典娜计划标准的英特尔移动超能版笔记本

最新动态

架构设计之常识篇

魔曦

架构师 极客大学架构师训练营

Python多重继承问题之MRO和C3算法

wangkx

Python MRO C3算法 多继承

架构师训练营:第四周作业

zcj

极客大学架构师训练营

架构师训练营作业-20200627

caibird1984

极客大学架构师训练营

漫画:15张图,帮你看懂布隆算法

Java小咖秀

面试 算法 布隆过滤器

极客大学算法训练营第一课

落曦

第四周作业

芒夏

极客大学架构师训练营

消息队列(四)如何处理消息丢失的问题?

奈何花开

Java MQ 消息队列

使用 Python 制作酷炫多彩的 Jenkins 插件词云图

donghui

jenkins wordcloud

消息队列(五)如何保证消息的顺序性?

奈何花开

Java MQ 消息队列

程序员面试与 HR 谈薪资技巧

张小方

程序员 面试 offer 年终奖 月薪

时间管理的本质到底是什么?

非著名程序员

程序员 提升认知 时间管理

架构师训练营 第4周作业

Glowry

极客大学架构师训练营

架构师训练营总结-20200627

caibird1984

极客大学架构师训练营

架构师是怎样炼成的 04-1互联网分布式系统架构演化

闷骚程序员

极客大学架构师训练营

计算机操作系统基础(七)---作业管理之死锁

书旅

php laravel 线程 操作系统 进程

【6月】本月读书学到了什么

Neco.W

读书感悟 阅读量

理解了 1+2 的过程,你就理解了Java虚拟机

侯树成

JVM JVM原理

架构师训练营第四周作业

W_T

极客时间架构师训练营 - week4 - 作业 1

jjn0703

极客大学架构师训练营

漫画:对象是如何被找到的?句柄 OR 直接指针?

王磊

Java 面试

聊聊Hystrix中的命令模式

老胡爱分享

Java 面试 设计模式 命令模式

第四周总结

芒夏

极客大学架构师训练营

架构师训练营 第4周学习总结

Glowry

极客大学架构师训练营

Golang中的Interface(接口),全面解析

Eriol

接口 interface Go 语言

架构师训练营第三周作业

陈靓-哲露

AppHub:绕过苹果审核机制更新iOS App_移动_张天雷_InfoQ精选文章