使用 mPaaS 快速集成iOS扫码功能

1、mPaaS 简介

金融级移动开发平台(Mobile PaaS,简称 mPaaS)是源于支付宝 App 的移动开发平台,为移动开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动 App。

2、开发者工具简介

mPaaS提供了以下开发者工具以帮助开发者能够快速接入 mPaaS 并辅助进行开发工作。

  • mPaaS 插件:是一个具有图形化界面的插件工具。功能包括新建 mPaaS 工程、增删 mPaaS 组件依赖、工程打包等。因为 mPaaS 插件需要和命令行协同工作,因此在安装 mPaaS 插件时,会同时安装命令行工具。
  • 命令行工具:是一套 mPaaS 相关的终端命令集,在安装 mPaaS 插件时一起安装。通过命令行工具,您可以通过在终端执行命令查看 SDK 版本、增删 mPaaS 组件依赖、去除和恢复 Xcode 签名等。
  • mPaaS Xcode Extension:是基于 XcodeKit 构建的官方插件,它可以在 Xcode 的 Editor 菜单中增加额外的命令。安装简单,不需要去除 Xcode 签名。通过全新的图形化界面,帮助您更快速地接入 mPaaS。mPaaS Xcode Extension支持:新建 mPaaS 工程、编辑工程(导入云端配置文件,添加删除 mPaaS 组件,升级 mPaaS 基线,生成无线保镖图片)、基础工具(工程打包工具等)。

注意: mPaaS Xcode Extension 和 mPaaS 插件两者因为功能冲突,不能同时安装。

2.1、 mPaaS Xcode Extension 使用

2.1.1 为什么选择 mPaaS Xcode Extension

1、稳定优异的性能
mPaaS Xcode Extension 独立于 Xcode 进程单独运行,不再影响 Xcode 的原生功能。从此告别 Xcode 启动卡死、操作无响应、系统内存飙高等困扰。

2、贴近 macOS 原生的UI设计
对 mPaaS Xcode Extension 的 UI 进行了全局考量和整体设计,视觉和交互更加友好,更贴近 macOS 生态。对深色模式的适配更加出色,实现对系统主题实时切换的适配。

3、不需要去除 Xcode 的签名

4、我们的项目都是开发很久的,直接集成使用方便

5、支持两种启动方式
mPaaS Xcode Extension有两种启动方式:从 Xcode Editor 菜单启动 和 直接启动 macOS 应用。

2.1.2 安装 mPaaS Xcode Extension 注意事项

  1. 如果您已经安装了旧版本 mPaaS 插件(去签名版本),需要先将 Xcode 签名恢复,或者直接卸载旧版插件(方法如下)。

卸载插件 版本≥ 5.0.0

如果您之前安装了5.0 及以上版本的mPaaS 插件,可以使用如下的方法进行卸载。

1.  退出 Xcode。

2.  恢复 Xcode 签名,在终端中执行如下命令。
mpaas xcode restore

3.  卸载 Xcode 插件,在终端中执行如下命令。
mpaas xcode plugins uninstall

4.  卸载 mPaaSKit,在终端中执行如下命令。
rm -rf /Users/Shared/.mpaaskit

5.  卸载 mpaas ,在终端中执行如下命令。
sudo rm /usr/local/bin/mpaas

卸载插件 版本 < 5.0.0

如果您之前安装了 mPaaS 插件 5.0 以下的版本,可以使用如下的方法进行卸载。

1.  退出 Xcode。

2.  恢复 Xcode 签名,在终端中执行如下命令。
mpaas restore

3.  卸载 Xcode 插件,在终端中执行如下命令。
rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/mPaaSPlugin.xcplugin

4.  卸载 mPaaSKit,在终端中执行如下命令。
rm -rf /Users/Shared/.mpaaskit

5.  卸载 mpaas 命令,在终端中执行如下命令。
sudo rm /usr/local/bin/mpaas
  1. mPaaS Xcode Extension 在 Xcode 升级之后依然生效,您无需因升 Xcode 重新安装 mPaaS Xcode Extension。
  2. 安装了 Xcode 并且版本在 Xcode 9 及以上。
  3. macOS 版本 ≥ 10.13。
  4. 未安装过 mPaaS Xcode Extension(如果想升级安装,建议直接使用插件内的升级功能)。

2.1.3 安装步骤

步骤一
终端下执行下面代码

curl -sSL https://mpaas-ios.oss-cn-hangzhou.aliyuncs.com/mpaaskit/Xcode-extension/install.sh | sh

步骤二
安装完成后,会打开引导页面,点击 开始使用 (或者关闭页面,手动重启 Xcode)即可使用。

Snip20191012_23.png

步骤三
打开任意 Xcode 工程,在 Xcode 左侧工程结构面板中选择任意可编辑文件(如:main.m),若能看到菜单 Editor > mPaaS,则说明 mPaaS 插件加载成功。

图片.png

系统授权
由于 mPaaS Xcode Extension 需要对 Xcode 工程进行操作,因此在第一次使用“编辑工程”功能的时候,系统需要用户进行授权,弹框如下图所示。请务必允许,否则插件无法按预期工作。

Snip20191012_24.png

2.1.4 卸载 mPaaS Xcode Extension

由于 mPaaS Xcode Extension 在 macOS 中的存在形式为独立的应用,因此可以采用在 macOS 中常规的卸载应用方式进行卸载。
注意: 在卸载mPaaS Xcode Extension前一定要先退出 Xcode 和 mPaaS Xcode Extension 的所有进程。

3、控制台创建应用

3.1 控制台创建应用

注意

  1. 您需要确保拥有阿里云开发者账号。账号注册的更多信息,请参见 账号注册
  2. 登录 mPaaS 控制台。(有可能会让公测申请)
  3. 公测申请通过会收到邮件,再次进入 mPaaS 控制台可以看到如下图 (我当时就是随便填写的,不影响后续开发)
图片.png
  1. 进入后,会有一个 mPaaS 体验应用,然后点击下方 创建应用 按钮,输入应用名称,确定后,控制台上便会增加一个应用。
图片.png
  1. 点击我们刚刚创建的应用名称,点击 代码管理 >> 代码配置 >> 选择iOS >> 填写Bundle ID
图片.png
  1. 点击下载配置 等下接入项目会用到,如下是我刚生成的配置文件
{
    "appId":"ONEX450ED02121714",
    "appKey":"ONEX450ED02121714_IOS",
    "base64Code":"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAADAAMDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxFobXF3W6hxiboRDqFOuMY3WvmIHmkFAgABAQAAAAQAAB4AAADAAAAAEQAAAIcAAAABAAAAAAAAAAAAAAAAAAAAAAAAABUAAAABAAAAAAAAAAAAAAAyMDE5LTEwLTEyIDE3OjE0OjU1dwAAAABuXrapeYAalbJEm/5GzZuzbDngtnu7TSERZO9Z78nXXSeNBqAOITXAZdC+q51ZXgqTPsAO+Q0wCnIfY2F1cmdjbngBAwF4dWZ3AwECBgEAEQEBCAFxdHNqb3b+iDS8mPyAR9NmuzdW94S76PnJmefIexqabj6e0HKf/8p3DYrX39TZ1eNQy6p105id6boD6AE+oB8etNR/44zevSMW1E+iz/hAVyC6sgY6lse79yySpgwmj0i7u4WPJLLHcpSsUv9CHh4Az0Jno2WQauO17Y1f3F0reX5FkCmRYN6eMoG0aMHWP8YheDG3Yn8JVrnoEI7GxZj2nRYqpGzWjXsejmCGP3NTv1TpG27FqeFRn3xD82zNsJIpa5QP/RKkfMRToplrZYXU1P8AAA==",
    "bundleId":"TonyYang.TestDemo",
    "rootPath":"mpaas/ios/ONEX450ED02121714-m1",
    "workspaceId":"m1",
    "syncport":"443",
    "syncserver":"mpaas-mss.aliyuncs.com",
    "logGW":"https://cn-hangzhou-mas-log.cloud.alipay.com",
    "pushPort":"443",
    "pushGW":"mpaas-mps.aliyuncs.com",
    "mpaasapi":"https://cn-hangzhou-component-gw.cloud.alipay.com/mgw.htm",
    "rpcGW":"https://mpaas-mgs.aliyuncs.com/mgw.htm"
}

4、接入 iOS 项目

  1. 上面已经介绍过,打开 mPaaS 的两种方法,我们直接在 Xcode 中选择 Editor >> mPaaS >> 编辑工程 如下图所示
图片.png
  1. 选择我们想要导入的模块,点击开始编辑即可
    COPY: 选中该项,依赖的 SDK 文件会自动拷贝到工程目录下。建议启用该项。

    图片.png

  2. 编辑完成后,回到我们的项目 Xcode 项目中看到左侧的文件夹中多了一个 mPaaS 文件夹

图片.png
  1. 在 Xcode 项目 Info.plist 中添加 运行访问 相机 ,查看当前工程的 Build Phases >> Link Binary With Libraries 中是否添加了系统库ImageIO.frameworkAssetsLibrary.frameworkAVFoundation.frameworklibz.tbd,如果没有请添加
图片.png
  1. 真机上运行,可能会出现下图这个错误
图片.png
  1. 解决方案,Xcode 中 Build Settings >> 输入bit 修改 Enable Bitcode 为NO,再次运行代码即可。
图片.png

5、Demo使用

扫码功能主要是 TBScanViewController 这个类。我们继承该类,实现该类的代理 ,然后具体参数自己设置就行了。

demo下载地址

参考 阿里云

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • 1 路径和目录 1.1 目录 ● 目录是一组相关文件的集合。 ● 一个目录下,除了可以放文件之外...
    柳子陌阅读 190评论 0 1
  • 文/肖丽苹 从来不想 你一直都在 一条看不见的距离 横着 不远不近 聚少离多 去探班 静静的你笑嘻嘻 彼此忙着各自...
    肖丽苹阅读 219评论 1 1
  • 早晨,微信群现两个小视频。 01:交通事故,有人员受伤。发布者录像疾呼:“这里出事故了!快转发啊,通知一下家属!”...
    翰墨莱馨阅读 595评论 10 22
  • 直到跟一群做采购的朋友聊天,才发现采购都是勇士,时髦的词,real fighter.跟大家聊天也给自己的职场人生照...
    平静de小女巫阅读 553评论 0 0