将Worklight应用程序上载到iTunes时出现错误。
应用程序验证失败,并出现以下错误:
无效的签名。代码对象根本没有签名。路径[MyApp.app/buildtime.sh]中的二进制文件包含无效的签名。确保您已使用分发证书而不是临时证书或开发证书对应用程序进行了签名。验证Xcode中的代码签名设置在目标级别正确(该设置覆盖项目级别的所有值)。此外,请确保您要上传的捆绑软件是使用Xcode中的Release目标而不是Simulator目标构建的。如果确定代码签名设置正确,请在Xcode中选择“全部清除”,删除Finder中的“ build”目录,然后重新构建发布目标。有关更多信息,请咨询https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
我的问题是2周前我提交了相同的申请,并且工作正常。今天的版本仅更改了www /文件夹的内容,并且由于该错误而失败。
我在问题上进行了搜索,发现Dropbox API的Codesign在Xcode 4.6.3中失败:“代码对象根本没有签名”,但是我尝试添加--deep选项,但这对我没有用。
这可以和buildtime.sh脚本有关吗?当我阅读它时,似乎只是在worklight.plist文件中更新buildtime值:
#!/bin/bash
# Licensed Materials - Property of IBM
# 5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
# Update buildtime in project
echo -n ${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/worklight.plist | xargs -0
/usr/libexec/PlistBuddy -c "Set :buildtime `date +\"%s\"`"
另外,在搜索问题时,我在以下位置发现了类似的问题:https : //github.com/AppGyver/steroids/issues/918,他们似乎将混合应用程序与sh脚本一起使用,这使我相信问题与构建时间有关。 .sh脚本。
我删除了构建时脚本,并删除了Xcode项目上的运行脚本阶段,这一次它没有给出错误。
这样做安全吗?
任何人在Worklight项目中遇到相同的错误?它与buildtime.sh脚本或新的Apple政策有关吗?
MFP开发人员中心中有关此问题的博客文章:https : //developer.ibm.com/mobilefirstplatform/2015/05/01/recent-changes-in-apples-app-submission-process/
问题在于,Apple现在还在检查是否对应用程序捆绑包中的.sh文件(.ipa文件)进行了签名。
在基于Worklight / MobileFirst Platform的应用程序中,恰好有一个这样的.sh文件buildtime.sh
被添加到捆绑软件中。没有理由将此文件包含在结果包中。该文件仅在构建时才需要,而在运行时则不需要。
有一个简单的解决方法:从Xcode中的目标配置中删除(不要删除)buildtime.sh
文件(在“构建阶段”>“复制捆绑包资源”中)。
IBM Fix Central还提供了iFixes(仅IBM APAR PI39826,Worklight / MFP Studio / CLI;无需更改服务器):
此iFix仅用于:
通过使用iFix,这些应用程序将buildtime.sh
在目标配置中没有该文件。
如上所述,现有的应用程序仅需简单地从目标配置中删除.sh文件,然后在Xcode中进行重新构建即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句