网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容、傻瓜式的表达来告诉你想要的答案。
原创作品,请尊重作者劳动成果,转载请注明出处!!!
1.关于在XE6中使用苹果证书。
注意,以下讨论都是以"合法注册开发者账号并支付年费"为前提,利用无证书生成iPA的请无视本文:
---------------------------------------------------------------
1.首先,我们打开XE6,打开官方的Setting Demo这个工程。
打开后,平台选择为'iOS Device'。这里可以看到,IOS工程可以构造3种类型:
1.Debug(主要用于调试,如果选择该类型编译App,则该App安装后授权有效期为3个月)
2.Application Store(上架到AppStore时需要此类型)
3.Ad hoc(这个叫做无线发布,即开发人员可以用此类型而不需经过AppStore就能发布测试版、发布版)
2.要使编译出来的App能对这3种类型生效,我们必须针对每个App工程都去配置一下。点击XE6菜单栏'project',点击'Options'。
3.在弹出的窗体中,点击左侧的'Provisioning'。
4.Target中选择'iOS Device platform',表示我们配置此工程的iOS平台。
5.Buind Type中选择:iOS Device-Application Store。
可以看到,若要编译为此类型,则需要配置3项:发布证书、Profile、AppID。
6.Buind Type中选择:iOS Device-Debug。
可以看到,若要编译为此类型,则仅需要配置1项:开发证书,目的只是为了给程序签名。
这里不需要发布证书,是因为此种类型的App不能上架到AppStore。
7.Buind Type中选择:iOS Device-Ad hoc。
可以看到,若要编译为此类型,则需要配置2项:发布证书、Profile。
以上设定我们以假设你是一个合法的开发者(已向苹果上交'保护费'),并已经生成了自己的证书等文件为前提,
至于如何用开发者账号来生成自己的证书等文件,请自行百度资料,或参考上篇文章,在这里这个不是我们的讨论目标。
值得注意的是,'iOS Device-Ad hoc'这种类型很有意思,由于它可以不经AppStore就能够发布成为正式版本,
所以对于这类App,安装方式则变为3种:(被安装设备无需越狱!)
1.取得iPA文件后,用iTools等手机管理工具安装。
2.上传到XX助手并请求发布,则所有装有XX助手的用户都可以刷新看到该App并下载安装。(这里只是举例为XX助手)
3.发布为网页链接,则所有浏览到该链接的用户都可以直接点击网页链接来下载安装App。
(例如,在设备的safari上直接打开http://cloud.189.cn/wap/index.jsp,如下图:)
在'点击免费安装',设备会自动下载并安装App,而不需要进入AppStore去下载安装。
原因在于,编译为'iOS Device-Ad hoc'时,同时会产生一个plist文件,该文件中指示了iPA的真正地址。
这种安装方式其实就是使用企业证书签名App的方式来安装程序。
同样,我们也可以使用个人证书,结合Profile给设备授权后,用此方式进行发布和安装,从而绕过了 "上架AppStore并须经iTunes安装" 这种约定。
PS:
---------------------------------------------------------------
FireMonkey移动开发可加QQ群:165232328 (本人非管理员,仅仅其中一成员,此群高手林立,期待各位Delphi爱好者共同交流)。
XE6 & IOS开发之开发者账号、苹果证书(3):关于在XE6中使用苹果证书的简单介绍的更多相关文章
-
XE6 &; IOS开发之开发者账号、苹果证书(2):关于苹果证书
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 1.关于苹果证书. 注意 ...
-
XE6 &; IOS开发之开发者账号、苹果证书(1):关于开发者账号
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 关于苹果开发者账号, 注 ...
-
iOS 开发 公司开发者账号,在多台Mac上合作开发,共用一个账号和证书--图文详解
参考 导出证书申请的MAC里的Xcode的开发者账号 .developerprofile 导出的开发者账号文件.developerprofile 导出PKCS12既是.p12文件 所拷贝的资料, .d ...
-
iOS开发——关于开发者账号引发的血案
这里不介绍怎么申请开发者账号,那个网上的教程太多了.这里讲点有意思的. 如果你们公司比较,怎么说呢,呵呵?管理层不懂开发,不管事,申请开发者账号的人员又比较小白,或者别有用心,用私人邮箱来申请,申请的 ...
-
IOS开发之开发者账号遇到的bug
今天使用开发者账号过期的问题,文件显示 其实今天的问题和这个没有关系,即使上面显示此证书的签发者无效,有时候也是可以用的. 我这里情况比较奇葩,刚刚生成的开发者账号,显示还是"......无 ...
-
XE6 &; IOS开发之免证书真机调试(1):颁发属于自己的App签名证书(有图有真相)
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 1.自己给自己颁发证书, ...
-
XE6 &; IOS开发之免证书真机调试(2):连接真机并运行App(有图有真相)
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 连接真机前,请先确保真机 ...
-
iOS开发从申请账号到上线APP Store步骤
1.developer.apple.com 申请开发者账号 2.根据API Cloud创建证书: http://docs.apicloud.com/Dev-Guide/iOS-License-Appl ...
-
iOS AppStore个人开发者账号申请
一.申请Apple Developer账号 1.注册App ID 1.打开苹果开发者网页,选择Account,注册Apple ID. 2.填写注册信息 3.地区选择China,填写好验证码,点击C ...
随机推荐
-
CSS3属性 box-shadow 向框添加一个或多个阴影
CSS3属性 利用box-shadow制作网页页眉背景 box-shadow 浏览器支持 IE9+.Firefox 4.Chrome.Opera 以及 Safari 5.1.1 支持 box-shad ...
-
RubyOnRails local_assigns
http://api.rubyonrails.org/classes/ActionView/Template.html#method-i-local_assigns Returns a hash wi ...
-
深入分析 ThreadLocal 内存泄漏问题
前言 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度.但是如果滥用ThreadLocal,就可能 ...
-
如何抓取Thread Dump小结(转)
当系统性能出现问题时,需要从各个方面来查看网络环境.主机资源.查看最经变更的代码等.如果是想从代码层面解决问题,那么最有效的方法就是查看相关dump文件.如果是使用IBM JDK(我默认你是在aix环 ...
-
匿名属性 anonymous property
利用匿名属性可以用很简洁的语法来自动声明不可变(immutable)的元组(tuple)类型. 属性:在字段用来表示类型和对象的状态的前提下,希望状态不被随意的更改,字段一般应该设置为private, ...
-
Python_字符串查找与分隔
#字符串常用方法 s='apple,peach,banana,peach,pear' #返回第一次出现的位置 print(s.find('peach')) #指定位置开始查找 print(s.find ...
-
zabbix3.4 监控mysql 数据库连接数
zabbix3.4 监控mysql 数据库连接数具体监控配置待定,近期即将发布!
-
MySQL Execution Plan--IN子查询包含超多值引发的查询异常1
======================================================================= SQL语句: SELECT wave_no, SUM(I ...
-
thinkphp简洁、美观、靠谱的分页类
我们要实现如下图分页效果 这个分页类是在thinkphp框架内置的分页类的基础上修改而来:原分页类的一些设计,在实际运用中感觉不是很方便: 1.只有一页内容时不显示分页: 2.原分页类在当前页是第一页 ...
-
MySql Host is blocked because of many connection errors; unblock with 'mysqladmi
原因: 同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞: 解决方法: 1.提高允许的max_connection_e ...