`

【转】借助第三方支持https协议的存储实现自己网站上扫描二维码安装IOS APP

    博客分类:
  • app
阅读更多

 

使用plist安装,一般是企业级开发者账号不需要登录到APP STORE的IOS设备应用发布时所用到的技巧。

准备:
*一台运行着OSX的苹果电脑,最新版的XCODE,用于导出ipa和plist

一个HTML网页文件(告知iphone如何找到itms-services,已附上)

一个HTTP服务器(存放APP的服务器,就是提供ipa流量的服务器)

一款云存储(以七牛云存储为例,用于推送plist),建议升级到标准版用户,操作非常简单

备选:
一张二维码,一份自动分辨IOS设备的JS脚本


PS:

从2014年6月开始,网上的教程都变得不太好用了,原因有两个:

从IOS7.1开始,http推送plist已经不好使,只能使用https推送

Dropbox已死,需要使用其他支持HTTPS外链的云存储来代替,操作难度升级



开始

第一步:

在使用MACBOOK导出ipa的时候,我们得到ipa的同时,还得到一份plist文件

看到我们导出的plist,需要注意的地方有两个已经用中文标注。

一个是URL,一个是bundle-identifier

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>请填上你的ipa下载地址(比如:http://127.0.0.1/app.ipa)</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>请填上你的开发者证书用户名</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>请填上标题</string>
            </dict>
        </dict>
    </array></dict></plist>

1,URL就是我们的ipa存放位置,比如你拥有一台外网服务器,ip地址是12.34.56.78,ipa存放在APP这个文件夹,那么这个地方就填上

http://12.34.56.78/app/应用名字.ipa

2,bundle-identifier就是你申请证书时的名字,格式一般是somebody.app名字

3,这两个point都应该是在你使用XCODE导出ipa的时候要注意填写的

============================

第二步:

使用七牛存储的目的,在于它为我们提供了https连接

具体操作步骤可以参考
http://blog.csdn.net/longxibendi/article/details/37601747  (见下附录)

操作完毕后,只要把生成的超链接复制下来
http://dn-定义的空间名字.qbox.me/应用名字.plist
改成
https://dn-定义的存储空间名字.qbox.me/应用名字.plist

填入到以下的HTML文件,并且添加到网页服务器中发布

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>应用名字</title></head><body><h1 style="font-size:80pt">如果点击无法下载安装,请复制超链接到浏览器中打开<h1/><h1 style="font-size:100pt"><a title="iPhone" href="itms-services://?action=download-manifest&url=https://dn-你的空间名字.qbox.me/你的Plist存放位置/你的plist名字.plist">
Iphone Download</a><h1/></body></html>

第三步:
比如你发布这份HTML网页的地址是

http://12.34.56.78/iphoneAPP.html
 
把这个生成好的超链接,放到http://cli.im/url,生成二维码,再用手机扫一扫。即可完成整个企业级APP使用Plist发布的流程。
 
 
 
 

使用七牛云存储解决ios7.1的app部署问题

使用七牛云存储解决ios7.1的app部署问题

 一.问题描述

         开发完ios版本的app。需要将.ipa文件和.plist文件打包上传,供用户下载,在线安装。用户安装过程简单描述如下:

首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址。然后浏览器会自动跳转到这个地址,下载、读取.plist。(用户跳 转的地址是.plist的下载地址。)这个过程,显然使用http协议来下载.plist文件。最后,iphone通过读取.plist文件中配置 的.ipa下载地址,来安装.ipa文件,来完成ios版本的app。

举例,网站首页中,下载.plist的代码:

<ahref="itms-services://?action=download-manifest&url=http://www.ekwing.com/ekwing.plist"class="mobile-ios"></a>

但是,苹果从ios7.1开始,用户安装app,需要使用https协议,来下载plist文件。也就说,在安装app的第一步,下载.plist文件,需要使用https协议。https协议如下:

这里不详细描述https协议。HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当

1.     用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构;

2.     用户相信证书颁发机构仅信任合法的网站;

3.     被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);

4.     该证书正确地验证了被访问的网站(如,访问https://example时收到了给“Example Inc.”而不是其它组织的证书);

5.     或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被破坏。

简单描述,用户使用https来下载.plist文件。则需要网站支持https协议。支持https协议,除了服务端做一些配置外,还需要申请一 个数据签名证书。这个签名证书是由签发机构签发的。不能自己配置生成。而申请签名证书需要一段时间。而我们的目的只是希望能够让我们的app被用户正常下 载安装即可。

二.问题分析

解决该问题,就2个方法:

1.自己网站服务上配置https服务,并购买数字签名证书以保证每种类型及其不同版本的浏览器能够安装了证书颁发机构颁发的,我们购买的数据签名证书。时间开销7天左右。

2.将app文件托管到支持https协议的第三方服务器上。

三.解决问题

使用七牛云存储,可以快速,免费解决这个问题。只需要到http://www.qiniu.com/注册一个账号。然后,开通https协议的域名即可。最后将.plist和.ipa文件上传到七牛云存储上即可。操作过程,非常简单。只要注意几点:

1.      开通一个http协议的域名,和一个https协议的域名。

如上图。后缀名是.qiniudn.com的是支持http协议的域名。后缀名是.qbox.me的是支持https协议的域名。上传.plist、.ipa到七牛云存储。

 

2.      修改下载.plist文件的地址,修改.plist文件内容。

网站首页,下载.plist地址改成上传到七牛云存储上的支持https协议(域名后缀名是.qbox.me)的下载链接地址。

                           <ahref="itms-services://?action=download-manifest&url=https://dn-ekwing.qbox.me/ekwing.plist"class="mobile-ios"></a>

3.      将.plist文件内容中,.ipa的下载地址,改成七牛云存储上的支持http协议(后缀名是.qiniudn.com)

<string>http://ekwing.qiniudn.com/ekwing.ipa</string>

4.      总结,.plist的下载用https协议,而.ipa的下载用http协议即可。修改完后,就可应用ios6、ios7、ios7.1进行测试了。

 

四.   感谢七牛云存储

         感谢七牛运存储提供免费服务。不过,目前防盗链还不能用。希望能够加上防盗链功能。

 

五.   因ios7.1安装app,需要用https协议而提示的错误

无法安装应用程序因为证书无效

 

<Warning>:[ERROR]: Cannot load non-https manifest URL:http://192.168.1.22/ekwing.plist

 

<Warning>:Could not load download manifest with underlying error: ErrorDomain=SSErrorDomain Code=128 "无法连接" UserInfo=0x1669d990 {NSLocalizedDescription=无法连接}

 

<Warning>: NSURLConnection/CFURLConnection HTTP loadfailed (kCFStreamErrorDomainSSL, -9813)

<Warning>: Could not load download manifest withunderlying error: Error Domain=NSURLErrorDomain Code=-1202 "无法连接到商店" UserInfo=0x166bc640{NSLocalizedDescription=无法连接到商 店,NSLocalizedRecoverySuggestion=您仍要连接此服务器吗?,NSLocalizedFailureReason=无法建 立安全连接。请检查“日期与时间”设置。,NSErrorFailingURLStringKey=https://192.168.1.22 /ekwing.plist,NSUnderlyingError=0x165b37e0 "此服务器的证书无效。您可能正在连接到一个伪装成“192.168.1.22”的服务器,这会威胁到您的机密信息的安 全。",NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef:0x166b83e0>,NSErrorFailingURLKey=https://192.168.1.22/ekwing.plist}

转自: http://segmentfault.com/q/1010000000623121
http://blog.csdn.net/longxibendi/article/details/37601747
 

 

分享到:
评论

相关推荐

    iOS二维码(扫描二维码)

    为了实现更复杂的二维码功能,开发者可能需要利用第三方库,如TowDCode。这个库可能是用于在iOS项目中处理二维码的工具,提供生成、解析二维码的功能,同时也可能支持自定义二维码样式和颜色,以满足特定的设计需求...

    通过扫描二维码打开app的实现代码

    最近有朋友问小编这样一个问题,先给大家说下项目需求:扫描二维码打开app如果用户没有这个app则提示它跳转。 用网页直接来调用app是不打可能的,必须原生那边先做一些配置。 首先,安卓和苹果的调用方法是不同的。 ...

    IOS二维码扫描,包含原生二维码扫描和三方二维码扫描

    在iOS平台上进行二维码扫描,开发者通常有两种选择:原生的二维码扫描和第三方库的使用。本文将详细探讨这两种方法,并提供实现二维码扫描的关键知识点。 **一、原生二维码扫描** 苹果自iOS 7开始,引入了`Core...

    扫描二维码下载 JAVA实现20190403

    在安卓和iOS平台上,都有内置或第三方的二维码识别库可供开发者使用,例如Zxing(ZXing库,全称“Zebra Crossing”)和AVFoundation框架。 在实现扫描二维码下载功能时,我们首先需要集成二维码扫描库。对于JAVA...

    实现iOS二维码扫描带扫面边框动画

    在iOS开发中,实现二维码扫描并添加扫描边框动画是一个常见的需求,这通常涉及到相机访问、扫描检测以及自定义视图动画等多个技术点。本文将详细介绍如何实现这一功能。 首先,我们需要使用AVFoundation框架,它是...

    iOS二维码--第三方库 libqrencode、ZBarSDK

    本主题将详细探讨两个常用的第三方库——libqrencode和ZBarSDK,它们分别用于生成二维码和扫描二维码。 首先,libqrencode是一个开源的二维码编码库,支持多种数据类型,包括ASCII文本、URL、电话号码等。在iOS项目...

    扫描二维码跳转app下载链接

    android或ios通过扫描二维码,自动识别设备跳转对应的app下载页面or链接

    iOS 二维码扫描 - 生成二维码图片-扫描二维码图片

    本教程将详细介绍如何在iOS应用中实现二维码的生成和扫描功能,主要涉及以下几个核心知识点: 1. **Core Image框架**:用于处理图像,包括扫描二维码。`CIDetector`类提供了检测图像中的特征,如二维码的能力。 2....

    基于谷歌ZXing实现的快速扫描二维码条码的app

    **基于谷歌ZXing实现的快速扫描二维码条码的APP** 谷歌ZXing(Zebra Crossing)是一个开源项目,专门用于处理各种一维和二维条码,包括但不限于二维码和条形码。在Android平台上,ZXing库为开发者提供了强大的条码...

    轻松实现微信中扫二维码直接下载APP(整合IOS和安卓).docx

    为了解决这一问题,商家需要采取一种策略,使得用户在微信内扫描二维码或点击链接可以直接跳转到外部浏览器进行APP的下载,无论用户使用的是iOS还是Android设备。这种功能的实现可以通过微信跳转其他浏览器打开下载...

    ios-自定义二维码和二维码扫描.zip

    在iOS开发中,创建自定义二维码和实现二维码扫描是一项常见的任务。这通常涉及到UI设计的个性化和集成数据处理的功能。本教程将详细讲解如何在iOS应用中实现这些功能。 首先,我们来了解一下二维码(QR Code)的...

    iOS第三方框架二维码生成与扫描

    iOS第三方框架二维码生成与扫描是指在iOS平台上使用第三方框架来生成和扫描二维码。下面将详细介绍相关知识点: 一、iOS第三方框架二维码生成 iOS第三方框架二维码生成是指使用第三方框架来生成二维码。常用的第三...

    ios-系统原生二维码扫描.zip

    通过AVFoundation,我们可以轻松地实现二维码的扫描功能,无需依赖第三方库,如ZBar或ZXing。 **一、二维码扫描** 1. **配置扫描会话**: 首先,我们需要创建一个`AVCaptureSession`实例,这是处理视频输入和输出...

    二维码扫描Scanner(ios 7)

    本教程将重点讲解如何在iOS 7项目中实现二维码扫描功能,包括使用苹果自带的SDK以及第三方库ZBarSdk。 首先,让我们了解苹果的SDK是如何处理二维码扫描的。在iOS 7中,苹果引入了CoreImage框架,该框架包含了...

    java实现电脑端扫描二维码

    在Java中实现电脑端扫描二维码的过程涉及到多个步骤,包括前端的图像捕获、后端的图像处理和解码。以下是对这些步骤的详细说明: 1. **前端图像捕获**: - 前端使用JavaScript来调用电脑摄像头进行拍照。这通常...

    iOS和Android用同一个二维码实现跳转下载链接的方法

    最近一个项目需要iOS和安卓使用一个二维码,让扫描的机器自己识别操作系统实现跳转到相应的下载链接。比如iPhone用微信进行扫描就让他跳转appStore的下载页面,安卓机器使用微信扫描就直接跳浏览器下载。但是这...

    扫描二维码 iOS

    在iOS平台上,实现扫描二维码功能是一项常见的需求,无论是用于数据输入、链接跳转还是其他交互。本篇文章将详细讲解如何利用系统自带的AVFoundation框架来实现这一功能。 首先,我们需要了解AVFoundation框架,它...

    Android二维码实现扫描生成

    在Android平台上,二维码的扫描和生成是常见的功能需求,用于数据快速传递、链接跳转等场景。本篇文章将深入探讨如何使用ZXing(Zebra Crossing)框架来实现这些功能。 ZXing,又称“条形码解码库”,是一个开放源...

    iOS 二维码 条形码的生成与扫描

    总结,iOS上实现二维码和条形码的生成与扫描,开发者可以选择第三方库如ZXing,也可以利用苹果原生的AVFoundation框架。生成二维码和条形码涉及到图像处理,而扫描则需要利用摄像头捕获实时视频流并解析其中的元数据...

    H5 调用 扫描二维码,兼容IOS安卓

    在移动设备上,尤其是iOS和Android系统,H5应用常常需要调用设备的一些原生功能,如摄像头,以实现扫描二维码的功能。本文将深入探讨如何使用H5来调用扫描二维码,并确保在iOS和Android上都能正常运行。 首先,我们...

Global site tag (gtag.js) - Google Analytics