SlideShare a Scribd company logo
1 of 53
Download to read offline
iOS DevCamp
Produced by CSDN
Website: http://devcamp.csdn.net
Weibo: http://weibo.com/cmdnclub
PassBook实战
     廉洁
  爱图腾科技 技术总监
什么是PassBook & Pass

Pass的生命周期

如何制作⼀一个Pass 数据包

pass.json结构详解

相关应用的开发

Pass的更新
什么是PassBook
什么是PassBook




       DEMO
什么是Pass

u  类似于bundle的⼀一个数据包

  u  pass.json

  u  icons

  u  images

  u  resources


u  签名并打包
Pass的生命周期




                     生产环节
                     服务器




    流通环节
系统默认支持:safari,mail
    伴生应用
                           展示使用环节
                            PassBook应用
如何制作⼀一个Pass 数据包




基础环境   Pass.json
         准备        打包   发布
 准备
如何制作⼀一个Pass 数据包
基础环境准备
创建Pass Type ID
如何制作⼀一个Pass 数据包
基础环境准备
配置并导出Pass Certificate
如何制作⼀一个Pass 数据包
基础环境准备
成果⼀一:Pass Type ID和team ID




passTypeIdentifier:pass.itotem.com.cn.testpass

teamIdentifier:K279JK6VK9

成果二:用于服务器端签名运算的证书
如何制作⼀一个Pass 数据包
Pass.json准备

⼀一、选择⼀一个Pass类型

 u  Coupons

 u  Store cards

 u  Boarding passes

 u  Event tickets

 u  Generic
如何制作⼀一个Pass 数据包
Pass.json准备

  二、根据选择的类型从苹果提供的例子进行修改
如何制作⼀一个Pass 数据包


            创建manifest.json文件



                使用Certificate
            创建signature签名文件


               将所有文件zip打包
               添加.pkpass扩展名
如何制作⼀一个Pass 数据包
发布
如何制作⼀一个Pass 数据包




      DEMO
Pass.json结构详解


                   Top Level Keys
Pass

                   Lower Level Keys




         Field Dictionary Keys
pass.json结构详解

Top Level Keys

u  Standard Keys

u  Relevance Keys

u  Visual Appearance Keys

u  Style-Specific Information Keys

u  Web Service Keys
pass.json结构详解
u  Standard Keys
pass.json结构详解
u  Relevance Keys
pass.json结构详解
u  Visual Appearance Keys
pass.json结构详解
u  Style-Specific Information Keys
pass.json结构详解
u  Web Service Keys
pass.json结构详解

Lower Level Keys

u  Style-Specific Dictionary Keys

u  Location Dictionary Keys

u  Barcode Dictionary Keys
pass.json结构详解
u  Style-Specific Dictionary Keys
pass.json结构详解
u  Style-Specific Dictionary Keys

                                     Header Fields


                                     Primary Fields

                                     Auxiliary Fields
                                     Secondary Fields
pass.json结构详解
u  Location Dictionary Keys
pass.json结构详解
u  Barcode Dictionary Keys
pass.json结构详解
u  Barcode Dictionary Keys

  四种不同的Barcode示例
pass.json结构详解

  Field Dictionary Keys


u  Standard Field Dictionary Keys


u  Date Style Keys


u  Number Style Keys


u  Store Card Dictionary Keys
pass.json结构详解
u  Standard Field Dictionary Keys
pass.json结构详解
u  Standard Field Dictionary Keys
pass.json结构详解
u  Date Style Keys
pass.json结构详解
u  Date Style Keys
pass.json结构详解
u  Number Style Keys
pass.json结构详解
u  Store Card Dictionary Keys
pass.json结构详解
u  Store Card Dictionary Keys
PassBook相关应用的开发

基本原则

PassKit介绍

如何显示已有Pass

如何获取新的Pass

如何修改Pass

兼容性检查
PassBook相关应用的开发
基本原则
            不要开发
       只能在某应用上才能使用的pass


   不要开发
                     不要开发
  非必要的应用
                  替代PassBook的应用
PassBook相关应用的开发
PassKit介绍

u  PKPassLibrary

u  PKPass

u  PKAddPassesViewController

u  PKAddPassesViewControllerDelegate
PassBook相关应用的开发
如何显示已有Pass
只能显示已知类型的pass,需要在Entitlements中声明
PassBook相关应用的开发
如何显示已有Pass
获取Pass列表




获取Pass.pkpass中的数据
PassBook相关应用的开发
如何显示已有Pass
在PassBook中显示
PassBook相关应用的开发
如何获取新的Pass
u  Pass数据包需要从服务器端获得
u  相关代码
PassBook相关应用的开发
如何修改Pass

u  PKPass是inmutable,只能替换不能修改
PassBook相关应用的开发
兼容性检查

u  必要系统版本检查

u  目前ipad上不支持PassBook
Pass的更新

 使用场景


 pass.json中配置


 更新的交互过程


 服务器端实现细节及注意事项
Pass的更新
  使用场景

u  机票更改登机口

u  store card中余额改变

u  卡片上的时间改变

u  其他…
Pass的更新
 pass.json中配置
Pass的更新
 更新的交互过程

1.PassBook 通过webServiceURL向服务器注册

2.服务器通过APNS通知PassBook有更新

3.PassBook向服务器询问哪些Pass需要更新

4.PassBook向服务器请求需要更新的Pass数据包
Pass的更新
 服务器端实现细节


 参考官方文档及WWDC session


 注意事项


 不要滥用Push更新功能
谢谢!

    爱图腾科技
Next App Generation

More Related Content

Similar to 《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp

使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统Frank Xu
 
史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node jsFrank Cheung
 
华强北商城自动化发布系统
华强北商城自动化发布系统华强北商城自动化发布系统
华强北商城自动化发布系统Rongxing Liu
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
支付宝CSS构架
支付宝CSS构架支付宝CSS构架
支付宝CSS构架Sofish Lin
 
Css schema by_sofish
Css schema by_sofishCss schema by_sofish
Css schema by_sofishWebrebuild
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3Duran Hsieh
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集zhen chen
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發Fred Chien
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027Wei Sun
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5 Tony Deng
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍areyouok
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍areyouok
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍topgeek
 
旺铺高级模板制作培训
旺铺高级模板制作培训旺铺高级模板制作培训
旺铺高级模板制作培训supershop
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)Wei Sun
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平drewz lin
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析wavefly
 
0502 Windwos Server 2008 Card Space 新一代身份驗證機制
0502 Windwos Server 2008 Card Space 新一代身份驗證機制0502 Windwos Server 2008 Card Space 新一代身份驗證機制
0502 Windwos Server 2008 Card Space 新一代身份驗證機制Timothy Chen
 

Similar to 《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp (20)

使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
 
史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js
 
华强北商城自动化发布系统
华强北商城自动化发布系统华强北商城自动化发布系统
华强北商城自动化发布系统
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
支付宝CSS构架
支付宝CSS构架支付宝CSS构架
支付宝CSS构架
 
Css schema by_sofish
Css schema by_sofishCss schema by_sofish
Css schema by_sofish
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
 
互联网创业服务器运维工具集
互联网创业服务器运维工具集互联网创业服务器运维工具集
互联网创业服务器运维工具集
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
 
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
 
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
旺铺高级模板制作培训
旺铺高级模板制作培训旺铺高级模板制作培训
旺铺高级模板制作培训
 
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析
 
0502 Windwos Server 2008 Card Space 新一代身份驗證機制
0502 Windwos Server 2008 Card Space 新一代身份驗證機制0502 Windwos Server 2008 Card Space 新一代身份驗證機制
0502 Windwos Server 2008 Card Space 新一代身份驗證機制
 

More from imShining @DevCamp

如何创建更加灵活的App | 大众点评 屠毅敏
如何创建更加灵活的App | 大众点评 屠毅敏如何创建更加灵活的App | 大众点评 屠毅敏
如何创建更加灵活的App | 大众点评 屠毅敏imShining @DevCamp
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂imShining @DevCamp
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 imShining @DevCamp
 
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山imShining @DevCamp
 
Android账户同步备份框架 | 盛大乐众ROM 郭振
Android账户同步备份框架 | 盛大乐众ROM 郭振 Android账户同步备份框架 | 盛大乐众ROM 郭振
Android账户同步备份框架 | 盛大乐众ROM 郭振 imShining @DevCamp
 
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞imShining @DevCamp
 
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林imShining @DevCamp
 
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛imShining @DevCamp
 
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林imShining @DevCamp
 
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCampimShining @DevCamp
 
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践imShining @DevCamp
 

More from imShining @DevCamp (11)

如何创建更加灵活的App | 大众点评 屠毅敏
如何创建更加灵活的App | 大众点评 屠毅敏如何创建更加灵活的App | 大众点评 屠毅敏
如何创建更加灵活的App | 大众点评 屠毅敏
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
 
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
 
Android账户同步备份框架 | 盛大乐众ROM 郭振
Android账户同步备份框架 | 盛大乐众ROM 郭振 Android账户同步备份框架 | 盛大乐众ROM 郭振
Android账户同步备份框架 | 盛大乐众ROM 郭振
 
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
 
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
 
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
 
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林
 
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
 
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
 

《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp