我正试图将iOS应用程序提交到AppStore,但我遇到了以下错误:
错误ITMS-9000:"签名丢失或无效。捆绑包"com.google.GPPSignIn3PResources"位于捆绑包路径"Payload/My_app_name.app/GooglePlus.bundle"未使用苹果提交证书。"
我以前提交过这个应用程序,从未遇到过这个问题。有人知道最近有没有变化吗?
更新:我可以在出现此错误前6小时左右提交该应用程序。然后,我的应用程序被拒绝,并显示以下消息:
此捆绑包无效-提交到应用程序的新应用程序和应用程序更新商店必须使用公共(GM)版本的Xcode 5.1.1或更高版本和iOS 7 SDK。不要提交使用测试版软件构建的应用程序。
在此之后,无法再提交。
更新2:
谷歌已经宣布了这一点:
http://googledevelopers.blogspot.com.br/2014/09/an-important-announcement-for-ios.html
发布了一个新版本,解决了这个问题。
只需删除下面的文件并像往常一样构建您的应用程序!
GooglePlus.bundle/GPPSignIn3PResources
GooglePlus.bundle/GPPCommonSharedResources.bundle/GPPCommonSharedResources
GooglePlus.bundle/GPPShareboxSharedResources.bundle/GPPShareboxSharedResources
谷歌发布了谷歌plus sdk的1.7.1版本。
我为1.7.1版本创建了一个新的podspec,因为无法联系到以前的所有者。
只需添加到您的播客文件中:
pod 'googleplus-ios-sdk', '~> 1.7.1'
在项目(非目标)设置中将--deep
标志添加到Other Code Signing Flags
(OTHER_CODE_SIGN_FLAGS)似乎可以解决此问题。
正确的修复程序是升级到Google Plus iOS SDK的1.7.1版本。它似乎是专门为解决这个问题而发布的。
如果您将1.7.0和1.7.1捆绑包进行比较,您会发现没有添加任何文件,但删除了三个文件:GPPSignIn3PResources、GPPShareboxSharedResources和GPPCommonSharedResources,这三个文件是应用商店抱怨的。
添加--deep
标志对我没有帮助,所以我以一种简单而优雅的方式解决了这个问题(检测到讽刺)。我从Podfile中删除了Google+SDK,然后从这里下载了SDK,并以老式的方式安装了它。
我的Google Plus解决方案看起来是这样的
- 从我的项目中删除了框架中的3个捆绑包
- 下载了新版本1.7.0(无论如何都必须升级)
- 我打开了GooglePlus.bundle并删除了3个文件(GPPSignIn3PResources、GPPShareboxSharedResources.bundle、GPPCommonSharedResources.bundle),因为所有3个文件都会在itunes中向您发出警告
- 我将3个捆绑包添加回框架
- 我在应用程序中测试了我的Google+登录。。。作品
- 已提交
并遇到一个与此无关的新问题(arm64要求):)
我认为如果您不需要像登录按钮这样的资源文件,这应该会起作用。
如果--deep不起作用,那么捆绑包很可能只是资源,实际上没有任何可执行文件。删除它的Info.plist,你就好了。如果您确实需要Info.plist,那么至少要删除CFBundleExecutable密钥。
当我试图用xcode 6.1提交应用程序时,也出现了同样的错误。什么都没用,我真的尝试了一切。然后我在苹果开发者论坛上找到了一个解决方案。它对我有效:
- 进入钥匙链访问
- 进入登录钥匙链
- 删除苹果全球开发者关系证书颁发机构
- 进入系统钥匙扣
- 删除苹果全球开发者关系证书颁发机构
- 下载新的WWDR证书
- 将其安装在登录钥匙链中(只需点击即可)
链接:https://devforums.apple.com/message/1072465#1072465
在中断约24小时后,苹果公司今天似乎已经解决了这个问题。
今天提交相同的应用程序,不更改.bundle
,不再引发错误。
不需要捆绑包的--deep
代码签名。
(请注意,我没有用问题引用的特定谷歌捆绑包来测试这一点。不过,我们的应用程序使用的资源捆绑包现在工作正常,不再抛出错误。)
谷歌刚刚发布了更新版本1.7.1,可以从他们的网站下载https://developers.google.com/+/mobile/ios/入门。目前,他们的发行说明中仍然没有提到它。
如果你使用的是cocoapods,你可以复制当前的1.7.0 podspec,创建一个本地podspec,并将其中的所有版本引用更改为1.7.1,直到新的版本引用合并到官方的cocoapodsrepo中。
您还应该删除info.plist文件
GooglePlus.bundle/info.plist
GooglePlus.bundle/GPCommonSharedResources.bundle/info.plist
GooglePlus.bundle/GPShareboxSharedResources.bundle/info.plist
通过删除所有info.plist文件形式的GooglePlus.bundle文件对我有效。