使用Ad Hoc有什么好处呢,你可以:
发布自己的程序给亲朋好友,且不收取费用
程序正式上传之前,得到更多人的review
Apple的设备开发Provisioning Profile有3个月的限制,用其安装的程序,3个月后如果不更换Profile,程序就不能使用了,换成AdHoc的话,可延长期限到你的IDP截至日期
使用各种Private API等Apple禁止的功能,而不担心被Reject
但是使用Ad Hoc发布仍是有限制的,就是发布的设备最多只有100台。下面我们就来看看其发布和发布后安装的流程。
发布
下面列出了用Ad Hoc的发布流程,一些步骤是与iPhone开发入门设备上运行程序和iPhone开发入门在App Store上发布程序重复的。你可以根据实际情况省略。
发布前的准备

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

生成证明书
从应用程序点击「utility」→「Keychainaccess」。

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

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

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

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

过上一会儿,出现结束画面。刚才保存的文件可以用来请求证明书。
注册证明书
如下图,点击左边的「Certificates」可以注册刚才做好的证明书。

点击「RequestCertificate」,在下面的画面中选择请求证明书的文件,***点击「Submit」。

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

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

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

注册设备
接下来注册iPhone或者iPodtouch。选择「Devices」的右上角的「AddDevice」。

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

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

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

创建ProvisioningProfile
***来创建ProvisioningProfile。选择「Privisioning→Distribution→NewProfile」点击右上角的「AddProfile」。
DistributionMethod:AdHoc
ProfileName:任意
DistributionCertificate:刚才设置好的
AppID:刚才设置好的
Devices:选择你要发布的设备ID(可多选,***100个)
随后点击Submit创建ProvisioningProfile。

等待一会儿,表格中「Download」显示出来。点击它下载ProvisioningProfile文件。
安装Provisioning
打开应用程序程序的Xcode项目。由菜单打开「窗口」→「organizer」,拖动刚才创建的Provisioning文件到Provisioning项目中。

Entitlements.plist
Resources中创建新文件→CodeSigning→Entitlements→AddHockEntitlements.plist
项目设定
为了创建distributionbuild,需要向工程中添加新的编译目标。由Xcode的菜单点击「项目」→「项目设定」中的「构成」标签。

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

***,需要在「AnyiPhoneOSDevice」项目上选择刚才安装的ProvisioningProfile。CodeSigningEntitlements中设置刚才创建的"AddHockEntitlements.plist"。
编译
选择ActiveSDK为Device、构成为「AdHock」就可以编译了。

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

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

