关注前沿技术,分享热点话题,QCon全球软件开发大会三站同启,重磅回归!立即查看 了解详情

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

2015 年 8 月 18 日

为了保证应用程序的合法性和安全性,苹果公司对每一款应用程序设定了严格的审查制度。每一个软件在发布之前都会经历一段时间的机器或人工审核阶段。这个时间短则几天,多达数周。对于敏捷软件开发团队而言,他们经常面临上一个版本还在审查中,一个新的版本已经完成修改的情况。为了解决如此尴尬的局面,毕业于 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 年 8 月 18 日 08:22 3690
用户头像

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

关注

评论

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

蚂蚁金服上市了,我不想努力了

YourBatman

IPO 财务自由 蚂蚁金服 财富自由

架构师训练营第7周

大丁💸💵💴💶🚀🐟

第7周总结+作业

林毋梦

写在《SRE生存指南》出版之际

Winfield

DevOps SRE

性能优化-架构师体现技术全面性的时刻

LEAF

GoF设计模式 | 单例模式

Peision

后端 23种设计模式 java\

百万并发「零拷贝」技术系列之初探门径

码农神说

Java 架构 零拷贝

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

fenix

极客大学架构师训练营

MySQL 锁表后快速解决方法 及 锁表原因

wkq2786130

MySQL

neo4j 批量 导入 数据 的 几种方式

wkq2786130

neo4j

elasticsearch 游标 使用

wkq2786130

elasticsearch

JVM性能调优监控工具 jps jstat jinfo jmap jhat jstack

wkq2786130

Java JVM

Neo4j APOC 使用

wkq2786130

neo4j apoc

过早三件套之面窝

zhoo299

美食

随着并发的增加,响应时间和吞吐的变化

朱月俊

neo4j load csv 使用

wkq2786130

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

程序那些事

Java jdk GC 秘籍 JDK11

前后端统一结果集封装

Peision

json 前后端分离 springboot java\

jqGrid表格封装和使用方法

Seven_xw1213

JavaScript 前端 封装 jqgrid

手撕设计模式

Peision

后端 设计模式 23种设计模式 java\

GoF设计模式 | 工厂方法模式

Peision

23种设计模式 java\

Scrapy爬虫入门

烫烫烫个喵啊

python 爬虫

架构师训练营第7周

大丁💸💵💴💶🚀🐟

话说性能那些事

朱月俊

Cmder 使用 笔记

wkq2786130

cmder tools

elasticsearch-restful-api笔记

wkq2786130

elasticsearch

专访英特尔唐炯:对旗下产品性能及未来路线图充满信心

飞天鱼2017

canal 笔记

wkq2786130

MySQL canal

jvm-config

wkq2786130

Java JVM

OrientDB etl 工具 导入 rdbms数据

wkq2786130

问题驱动

林昱榕

问题驱动 学习方式

云原生来袭,企业上云如何平滑迁移增效避险?

云原生来袭,企业上云如何平滑迁移增效避险?

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