【转】iPhone开发技巧之发布篇(4)--- 使用 Ad Hoc 发布自己的应用程序

2023-11-23 04:08

本文主要是介绍【转】iPhone开发技巧之发布篇(4)--- 使用 Ad Hoc 发布自己的应用程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博主: 易飞扬 原文链接 :  http://www.yifeiyang.net/iphone-development-skills-of-published-articles-4-use-the-ad-hoc-release-their-own-applications/

iPhone开发技巧之发布篇(4)--- 使用 Ad Hoc 发布自己的应用程序

iPhone应用程序的发布形式有两种,1种是通过 App Store 正式的贩卖,还有一种是 Ad Hoc,针对特定的用户发布自己的程序,不用经过Apple的审核。

使用 Ad Hoc 有什么好处呢,你可以:

  • 发布自己的程序给亲朋好友,且不收取费用
  • 程序正式上传之前,得到更多人的 review
  • Apple 的设备开发 Provisioning Profile 有3个月的限制,用其安装的程序,3个月后如果不更换 Profile,程序就不能使用了,换成Ad Hoc的话,可延长期限到你的IDP截至日期
  • 使用各种Private API等Apple禁止的功能,而不担心被Reject

但是使用 Ad Hoc 发布仍是有限制的,就是发布的设备最多只有 100 台。下面我们就来看看其发布和发布后安装的流程。

发布

下面列出了用 Ad Hoc 的发布流程,一些步骤是与 iPhone开发入门(10)--- 设备上运行程序 和iPhone开发入门(11)--- 在App Store上发布程序 重复的。你可以根据实际情况省略。

发布前的准备

发布前需要知道对方设备的的ID (iPhone UDID),可以让对方到 App Store 上安装一款叫 「Ad Hoc Helper」 的免费工具,然后用它给自己发一封邮件就好了(其中包含了对方设备的 UDID)。或者使用其他方式得到设备的UDID,比如 iTunes。总之需要得到发布目的的 UDID。

Xcode

 

生成证明书

从应用程序点击「utility」→「Keychain access」。

Xcode

 

然后点击「Keychain access」→「证明助手」→「发行证明书...」。

Xcode

 

其中在「用户的邮箱地址」中填写注册 Apple ID 时的地址,并在 Common Name 中输入英文的名字。最后选择「保存到硬盘」和「指定对称键情报」后点击「下一步」。

Xcode

 

适当选择文件保存的位置。

Xcode

 

对称键情报中,确认键的大小为「2048位」,算法是「RSA」后点击「下一步」。

Xcode

 

过上一会儿,出现结束画面。刚才保存的文件可以用来请求证明书。

注册证明书

如下图,点击左边的「Certificates」 可以注册刚才做好的证明书。

Program Portal

 

点击「Request Certificate」,在下面的画面中选择请求证明书的文件,最后点击「Submit」。

Program Portal

 

提交之后被添加到表格中,之后点击「Approve」等待。

Program Portal

 

之后,表格中显示「Download」按钮,点击它下载证明书。

Program Portal

 

同时不要忘了下载表格下面的「WWDR intermediate certificate」。之后分别双击这两个下载的文件,在「提交证明书」对话框中选择OK。这之后就可以在Keychain的「证明书」一项中确认添加的证明书了。

Program Portal

 

注册设备

接下来注册 iPhone 或者 iPod touch。选择「Devices」的右上角的「Add Device」。

Program Portal

 

在「Device Name」中输入任意的设备名称。在「Device ID」中输入刚才确认的UDID后就OK了。最多可输入100个设备的UDID。

Program Portal

 

生成App ID

接下来点击「App IDs」,来生成AppID。

Program Portal

 

在「App ID Name」中输入任意的名字,在右边的「App ID」中输入“*”。利用 App ID 将应用程序按不同的组管理起来。如果你输入的「Bundle Identifier」与应用程序中包含的「Bundle Identifier」不一致的话,程序是不会启动的。它主要是为了方便多人开发的项目,对于个人而言没有什么必要。所以这里将 App ID 写作「*」就是说含有任何 Bundle Identifier 的程序等可以运行。

最后点击 Submit,就完成了注册。

Program Portal

 

创建Provisioning Profile

最后来创建Provisioning Profile。选择「Privisioning → Distribution → New Profile」点击右上角的「Add Profile」。

  • Distribution Method: Ad Hoc
  • Profile Name: 任意
  • Distribution Certificate: 刚才设置好的
  • App ID: 刚才设置好的
  • Devices: 选择你要发布的设备ID(可多选,最大100个)

随后点击 Submit 创建 Provisioning Profile。

Provisioning Profile

 

等待一会儿,表格中「Download」显示出来。点击它下载 Provisioning Profile 文件。

安装Provisioning

打开应用程序程序的 Xcode 项目。由菜单打开「窗口」→「organizer」,拖动刚才创建的Provisioning文件到Provisioning项目中。

Program Portal

 

Entitlements.plist

Resources 中创建新文件 → Code Signing → Entitlements → AddHockEntitlements.plist

项目设定

为了创建 distribution build,需要向工程中添加新的编译目标。由 Xcode 的菜单点击「项目」→「项目设定」中的「构成」标签。

iPhone Screenshot

 

选择表中的「Release」,并点击在下的「複製」,生成「Release的拷贝」后,将其名称改为「Ad Hock」。结束后点击「编译」标签,选择「Ad Hock」。

Xcode

 

最后,需要在「Any iPhone OS Device」项目上选择刚才安装的Provisioning Profile。Code Signing Entitlements 中设置刚才创建的 "AddHockEntitlements.plist" 。

编译

选择 Active SDK 为 Device、构成为「Ad Hock」就可以编译了。

Xcode

 

安装

方法1:使用iTunes同步

将编译好的 xxxx.app 与 Provisioning Profile 文件一并打包发送给你的用户。用户解压后拖动 xxxx.app 文件夹和 profile 文件到 iTunes 的 资料库 ⇒ 应用程序 下,然后与目标iPhone设备同步即可。

Xcode

 

方法2:使用iPhone 配置实用工具

到 这里 下载 iPhone 配置实用工具,然后同样将解压后的 xxxx.app 文件夹和profile 文件到 拖动到配置工具的 资料库 ⇒ 应用程序 下,点击右边的安装即可。

Xcode

 

 

Xcode

 


 

这篇关于【转】iPhone开发技巧之发布篇(4)--- 使用 Ad Hoc 发布自己的应用程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/415223

相关文章

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语