上传app到app store是出现错误:Application failed codesign verification

上传时出现错误:Application failed codesign verification.Applicationfailed codesign verification. The signature was invalid, contains disallowedentitlements, or it was not signed with an iPhone Distribution Certificate.

解决办法:

         可以先看看iTunesConnect_DeveloperGuide_CN.pdf,iTunes_Store_Transporter_Quick_Start_Guide_v1.pdf,都可以在iTunes Connect上下载到。

         前提是,你已经有了APP ID,并且也已经交了$99美元给苹果,成了苹果的开发者一员,下载了苹果给的相应的证书,并导入到了Keychain Access了(我不太清楚如何做,别人弄好了,我接手继续搞的)。我看了我的Keychain Access中有三个证书:Apple Development IOS Push Services: com.域名.pushappid; iPhone Developer:英文姓名 (唯一编号);iPhone Distribution:公司英文名。

1.在iTunes Connect上登陆,并进入 Manage Your Application页面,创建你的app的以及其他的信息,这些都比较简单,也很容易就填好了,唯一注意的是Bundle ID 这个要注意一般为:com.company domain name.xxx,其实只要你的每个app的Bundle ID不重复就行了,注意记住这个ID,后面要用到。信息都填好了,然后你的程序的状态变为Waiting For Upload了,才说明你的程序信息都填对了,可以上传代码文件了。

2.据iTunes Connect上说,要想上传iPhone app到Store中,目前要使用Application Loader(在MAC机器的Developer/Applications/Utilities/Application Loader.app,你可以在iTunes Connect中下载Loader软件,不过只有最新版(2.8)的哦,只能运行在MAC的10.7.*版本之后,如果是10.6.8或更早的版本,就必须下载Application Loader的早一些的版本,我找到的是2.5.1,否则安装不上);我发现其实也可以用 XCode集成的Organizer(在XCode软件的Window菜单下能看到)。

3.在Xcode中开发程序,设置.plist(即程序工程名-Info.plist)文件的一些键值,值得治愈的键值对有:Bundle display name, Bundle name这两个必须不能是中文名字,Bundle identifier的值必须是与上面说的Bundle ID是一样的。

4.在Xcode中鼠标双击你的程序的工程文件,在弹出窗口中设置一些内容,主要是Code Signing-〉Code Signing Identify的值,设成iPhone Distribution:xxxxxx。如果此时无法build通过先不着急,继续看。

5.然后在Xco在Xcode中de中Build菜单下点Build (release出来), 到硬盘上找到release出来的响应app文件,将该app文件拖到iTunes窗口的Apps中,等上一会你可以在Apps列表中看到你的程序了,然后选中你的程序拖到硬盘中,就生成了相应的.ipa文件了,该文件可以通过iTunes以及其他软件导到iPhone手机了进行安装运行了。

6.此时在Xcode中的Build菜单,点Build and Achive(或者直接在Window菜单点Organize),打开Organizer,点击Validate,通过弹出的窗口一路选择,如果最后给出的是错误提示(很奇怪我用的是XCode3.2.8就爆出错误,如果我用XCode4.2,竟然不报错,说上传成功,真奇怪),当然你用Application Loader一样会报错的,报的错大概是Application failed codesign verification.Applicationfailed codesign verification. The signature was invalid, contains disallowedentitlements, or it was not signed with an iPhone Distribution Certificate.这是什么意思,搞了半天也没搞懂。在网上搜了几天也没结果,是了不少办法依然如此,但估计应该是跟证书有关。在iTunes Connect上已经创建了要上传程序的基本信息以及Bundle ID了,那么上传时就是靠的这个Bundle ID将程序信息以上传的程序对应起来了,当然这其中用到了itunes(必须把程序先脱放到Apps中)以及Keychain Access(上传时XCode要验证Distribution证书),你会说证书已经有了啊。

7.打开网站:https://developer.apple.com/。点击“IOS Dev Center”,进入IOS开发中心,点击“Log in”,输入Apple ID和密码,登陆到IOS开发中心,在“iOS Developer Progtam”下点击链接“iOS Provisioning Portal”,进入iOS Provisioning Portal页面,点击链接“Provisioning”,然后点击“Distribution”面板,点击“New Profile”,添加新的Profile,这个Profile(格式为 App ID. BundleID)就是包含上面我们说的Bundle ID。这样就为你的新的程序加到了已有的Distribution 证书中了。

8.在XCode中Build你的程序,执行Build and Achive(或者直接在Window菜单点Organize,点Validate),打开Organizer,点击Validate,就不会出现签名验证错误问题了。点击“Submit”,等待一会,可能会出现几条错误信息,其中一个是Unableto authenticate the package: xxxxxxxxx.itmsp. The file name penny xxxxxxxxx.app.ZIPin the package contains invalid characters. The valid characters are: A-Z, a_z,0-9, dash, period.这说明你的在.plist中的Bundle name 设置成中文名称了,改成英文名称再Submit,你会发现,正在提交程序中,恭喜你你的长须终于再说上传了,等待其上传结束,你再等陆iTunes Connect会发现程序的状态变为 Waiting For Review了,审核中,等着吧。

9.刚才把Bundle name改成了英文,我的iPhone客户端想显示中文名字啊,怎么办?在程序的Localizable.strings文件中设置CFBundleDisplayName=”中文名字”,或许可以直接在.plist中设置Bundle  display name为中文名字(我还没来急得试,就sbumit成功了,也改不成了)。

About "ISO as CD-ROM" Tool<br><br>Quick Jump List<br><br>Support<br><br>How It Works<br><br>Use Scenarios<br><br>Feature Requests<br><br> <br><br>Support<br><br>There really is no support for this tool. I wrote it quickly to suit a specific purpose and it just seems to work for me.<br><br>I have tested functionality on Windows Vista RTM x86, and installed it on Windows XP SP2 x86. Both seem to work just fine.<br><br>ISO as CD-ROM only runs on machines joined to any Microsoft domain - it will simply not run on any other machine. This is a security measure, since this tool does not have a EULA, your use is limited to as many Microsoft workstations, laptops, or servers as you wish.<br><br>In addition, you cannot exit the application when you have an ISO mounted as a drive. This will orphan the drive, and "ISO as CD-ROM" will not be able to manage it the next time you launch the application. As soon as the ISO is dismounted, you will be able to exit the application successfully.<br><br>.NET 2.0 is required to install and use this application.<br><br><top><br><br>How It Works<br><br>"ISO as CD-ROM" is only possible because of the "Virtual Storage" tool on //toolbox. The "virtual storage" tool does much more than just creating CD-ROMs. It is a command-line tool that has to have its driver installed before you may use it, and a complex (for some) string of commands in order to creates drives of different types. See the release notes that come with "Virtual Storage" for more details. "ISO as CD-ROM" is basically a graphical front end to "Virtual Storage", and only supports creating CD-ROM/DVD-ROM drives from ISO files. If your needs are more complex than is provided by "ISO as CD-ROM", then I would encourage you to dive in to "Virtual Storage".<br><br>At any rate, the installation package for "ISO as CD-ROM" installs the "Virtual Storage" drivers, so they will be installed and available for your use outside of "ISO as CD-ROM". When you uninstall "ISO as CD-ROM", however, you also remove the "Virtual Storage" drivers from your system. I debated whether this was necessary, and elected to remove the drivers when the application was removed - this may be an area of feature request. If you do not want "ISO as CD-ROM" installed, but DO want "Virtual Storage" installed, you are encouraged to visit the //toolbox link above and install the drivers yourself manually. Further assistance is out of scope for "ISO as CD-ROM".<br><br><top><br><br>Use Scenarios<br><br>For me, there are two main scenarios where this tool is helpful. <br><br>I like to watch movies. Specifically, I like to watch movies on my Zune when traveling or when not watching anything else (imagine being at the gym and watching "Wedding Crashers"). Using certain applications, it is possible to make an ISO image from DVDs or CDs. Using certain other applications (like Spb Mobile DVD), you can convert a DVD movie into a WMV file for direct copying onto your Zune or Pocket PC device. Without this tool, once I had the ISO, I found that I would have to burn the movie back to disc, then use Spb Mobile DVD to convert the movie into WMV format. Kind of a waste, because I already owned the movie, so why did I want another copy burned onto disc? Right. I don't. Enter this tool. It saves me the time spent burning a disc I already own, as well as the cost of the media (which is not terribly cheap right now for dual-layer DVDs). Anyhow, "ISO to CD-ROM" saves me the effort and the cost.<br><br>The next scenario that "ISO to CD-ROM" is helpful has to do with SMS 2003 & SCCM 2007. The Operating System deployment features are able to utilize bootable CD images in order to cover certain aspects of operating system image deployment. In lab environments, I often run Virtual Machines, so it is not possible or often practical to burn an ISO file onto disc before I can use it. With this tool, I can just mount an ISO as a CD-ROM, and go from there, instead of waiting to burn an ISO to disc. Just a little time-saver there.<br><br><top><br><br>Feature Requests<br><br>Please let me know if there is anything that you would like to see this tool that it currently does not do - like mounting the ISO file as a CD-RW. I'm not promising anything, but I will consider any and all suggestions to improve the features and usability.<br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值