简体   繁体   English

iPhone临时分发的测试困难

[英]Difficulties with iPhone ad-hoc distribution for testing

I'm attempting to do an ad-hoc distribution of my (first) iPhone App to a small group of volunteer testers. 我正在尝试将我的(第一个)iPhone App临时分发给一小批志愿测试人员。 I've looked through Apple's documentation, as well as a number of blog posts, but am still having trouble. 我浏览了Apple的文档以及许多博客文章,但是仍然遇到麻烦。 I have a couple questions about things that aren't clear (to me, at least): 对于尚不清楚的事情,我有几个问题(至少对我来说):

When creating Development and/or Distribution certificate requests, for Common Name, should I use my name or my company's name? 在创建开发和/或发行证书申请时,对于通用名称,我应该使用我的名字还是公司的名字? I registered for the iPhone Developer program as a company, and the portal shows this company name, but also my own name as "Agent". 我以公司的身份注册了iPhone Developer程序,并且门户网站显示了该公司名称,但也显示了我自己的名称“ Agent”。

Also, Apple's documentation (the "Publishing Applications for Testing" chapter of the Developer's Guide) contains a diagram showing the Tester Provisioning Profile as containing info about the Tester Device, the Test App ID, and the Development Certificate. 另外,Apple的文档(《开发人员指南》的“发布测试的应用程序”一章)包含一个图表,该图表显示了Tester Provisioning Profile,其中包含有关Tester设备,Test App ID和开发证书的信息。 When I try to create the Tester (Ad-hoc) Provisioning Profile on the portal, it selects the Distribution Certificate, not the Development Certificate. 当我尝试在门户上创建测试器(临时)供应配置文件时,它将选择分发证书,而不是开发证书。 Is this right? 这是正确的吗? It seems to make sense, but doesn't match the diagram. 这似乎是有道理的,但与该图不匹配。

Any other advice on ad-hoc provisioning would also be appreciated, particularly how to gather information for troubleshooting. 任何关于临时配置的建议也将不胜感激,尤其是如何收集信息以进行故障排除。 My testers have reported getting an "application was not installed because an unknown error occurred (0xE8008016)" message, which doesn't tell me anything about what I may have done wrong. 我的测试人员报告说收到“由于发生未知错误(0xE8008016)而未安装应用程序”消息,该消息没有告诉我任何我做错了什么。

Thanks, Andrew 谢谢,安德鲁

Well, I seem to have it working -- sorry for the long delay in following up. 好吧,我似乎已经奏效了-很抱歉,后续行动时间过长。 Here's the best resource on this that I've found: http://www.bigspaceship.com/blog/labs/iphone-101-understanding-distribution-pt-i-of-ii/ although even it doesn't get quite all the details right, and it seem that Apple changes the iPhone Program portal often, so maybe no resource will ever be fully up-to-date. 这是我找到的关于此的最佳资源: http : //www.bigspaceship.com/blog/labs/iphone-101-understanding-distribution-pt-i-of-ii//即使它并不能完全所有的细节都对,而且苹果似乎经常更换iPhone程序门户,所以也许没有任何资源可以完全更新。 Your mileage may vary. 你的旅费可能会改变。

To answer the questions I posed (and reply to some of the questions raised in other answers): For the Developer Certificate, I used my own name. 要回答我提出的问题(并回答其他答案中提出的一些问题):对于开发人员证书,我使用了自己的名字。 For the distribution certificate, I used the name of the Company. 对于发行证书,我使用公司的名称。 Yes, the dist.plist bust exist and the get-task-allow property is false. 是的,存在dist.plist崩溃,并且get-task-allow属性为false。

Finally, one more gotcha: the AppID/Bundle identifier should be all-lowercase. 最后,还有一个陷阱:AppID / Bundle标识符应全部为小写。

I posted a sample packaging script that i use for automating ad hoc distribution builds, maybe this is useful? 我发布了一个示例打包脚本,该脚本用于自动执行临时分发版本,这可能有用吗?

http://iphonedev.makerlab.org/2009/12/packaging-script-for-iphone-ad-hoc-distribution-builds/ http://iphonedev.makerlab.org/2009/12/packaging-script-for-iphone-ad-hoc-distribution-builds/

I used my own name for Common Name, however, I'm not sure this really matters. 我使用自己的名字作为“通用名”,但是,我不确定这真的很重要。 I did name my dist. 我确实给我的dist命名。 provisioning profile with my company name, though. 配备我公司名称的配置文件。

Ad-Hoc is considered distribution, so the distribution certificate is the correct one. Ad-Hoc被视为分发,因此分发证书是正确的。

Did you create an Entitlements.plist file for your ad-hoc? 您是否为临时创建了Entitlements.plist文件?

Are you getting any signing errors when you build your ad-hoc? 临时创建时是否遇到任何签名错误?

Does the ad-hoc build you created install properly for you? 您创建的临时构建是否为您正确安装? That's the easiest way to gather information-try it yourself, following the directions you're giving your users. 这是收集信息的最简单方法,请按照您提供给用户的说明自行尝试。

I had problems with Windows users not being able to install my app because Windows couldn't properly decode the compressed folder I created on my Mac. 我遇到Windows用户无法安装我的应用程序的问题,因为Windows无法正确解码我在Mac上创建的压缩文件夹。 I eventually resorted to a Run Script build phase in XCode that created a .ipa file which worked properly for drag-and-drop for Windows and Mac iTunes. 最终,我求助于XCode中的“运行脚本”构建阶段,该阶段创建了一个.ipa文件,该文件对于Windows和Mac iTunes的拖放操作均正常工作。

In your entitlements.plist file you have to uncheck the get-task-allow bool to give it a false value. 在entitlements.plist文件中,您必须取消选中get-task-allow bool才能为它提供一个假值。 This is only for AdHoc distribution. 这仅用于AdHoc分发。

I learned this the hard way when I went through a build cycle thinking I had saved and checked in the right entitlements.plist with get-task-allow unchecked. 当我经历了一个构建周期,以为我已经保存并检入了正确的entitlements.plist且未选中get-task-allow时,我以艰难的方式学会了这一方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM