I have an iOS app on iTunes and I just tried to update it with some new features such as push notifications, location based services and gps. I got the bundle is invalid
error due to the new UIRequiredDeviceCapabilities
being more restrictive than the previous version.
我在iTunes上有一个iOS应用程序,我只是尝试使用推送通知,基于位置的服务和gps等一些新功能来更新它。由于新的UIRequiredDeviceCapabilities比以前的版本更具限制性,我得到了bundle无效错误。
I found this on iTunesConnect website
我在iTunesConnect网站上找到了这个
You are permitted to increase the number of devices your app runs on, but you cannot remove devices you have previously permitted. Removing them will prevent users who have previously downloaded your app from updating it.
您可以增加运行应用的设备数量,但不能删除之前允许的设备。删除它们会阻止之前下载过您应用的用户更新它。
And also this answer here on SO
这个答案在这里也是如此
- Rename your app in iTunes Connect by submitting a new update which changes the App name.
- 通过提交更改应用程序名称的新更新,在iTunes Connect中重命名您的应用程序。
- Create a new App in iTunes Connect and enter the original name of your App. (The original name of the App you renamed in step 1)
- 在iTunes Connect中创建一个新应用程序并输入应用程序的原始名称。 (您在步骤1中重命名的应用程序的原始名称)
- Delete your old app which you have renamed in step 1
- 删除您在步骤1中重命名的旧应用
Is that the only way to overcome this problem? It looks pretty hacky to me, I am sure many developers faced this problem as we usually get new requirements from the customers.
这是解决这个问题的唯一方法吗?它对我来说看起来很不好看,我相信很多开发人员都面临这个问题,因为我们通常会从客户那里获得新的要求。
Also, with the latest iTunes Connect update, allowing to have several versions online and accessing the older versions, this restriction looks very stupid. Actually on the e-mail notifying of those latest changes it reads:
此外,通过最新的iTunes Connect更新,允许在线拥有多个版本并访问旧版本,此限制看起来非常愚蠢。实际上,通过电子邮件通知最新的更改,它写道:
Users who have already purchased your app are now able to download previous versions, allowing them to use your app with older devices that may no longer be supported by the current version.
已购买您应用的用户现在可以下载以前的版本,允许他们将您的应用与当前版本可能不再支持的旧设备一起使用。
So, how do I do to release a new version with new capabilities? It clearly states that new version can drop support for older devices, doesn't it?
那么,我该如何发布具有新功能的新版本呢?它明确指出新版本可以放弃对旧设备的支持,不是吗?
1 个解决方案
#1
1
I found this link talking about the issue. You can not define the capabilities as optional and increasing the minimum iOS supported version will still miss the capabilities (as you could not add them either).
我发现这个链接正在讨论这个问题。您无法将功能定义为可选功能,并且增加最低iOS支持的版本仍将缺少功能(因为您无法添加它们)。
What I am trying to do is do a runtime check for the capabilities I need and then use them, however I wonder if the app will get rejected by not specifying them. I am currently using the dialer to make calls from the app, I am checking for the support before using it and the capability is not on the plist, so maybe it should be fine.
我想要做的是对我需要的功能进行运行时检查,然后使用它们,但是我想知道应用程序是否会因为没有指定它们而被拒绝。我目前正在使用拨号器从应用程序进行调用,我在使用它之前检查支持,并且该功能不在plist上,所以也许它应该没问题。
Anyway this sucks, if I want to drop support for some devices I should be able to do so >:-(
无论如何这很糟糕,如果我想放弃对某些设备的支持我应该能够这样做> :-(
#1
1
I found this link talking about the issue. You can not define the capabilities as optional and increasing the minimum iOS supported version will still miss the capabilities (as you could not add them either).
我发现这个链接正在讨论这个问题。您无法将功能定义为可选功能,并且增加最低iOS支持的版本仍将缺少功能(因为您无法添加它们)。
What I am trying to do is do a runtime check for the capabilities I need and then use them, however I wonder if the app will get rejected by not specifying them. I am currently using the dialer to make calls from the app, I am checking for the support before using it and the capability is not on the plist, so maybe it should be fine.
我想要做的是对我需要的功能进行运行时检查,然后使用它们,但是我想知道应用程序是否会因为没有指定它们而被拒绝。我目前正在使用拨号器从应用程序进行调用,我在使用它之前检查支持,并且该功能不在plist上,所以也许它应该没问题。
Anyway this sucks, if I want to drop support for some devices I should be able to do so >:-(
无论如何这很糟糕,如果我想放弃对某些设备的支持我应该能够这样做> :-(