xcode 升级的应用程序标识符权利字符串与已安装的应用程序不匹配 -> 拒绝升级
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/31678568/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Upgrade's application-identifier entitlement string does not match installed application -> rejecting upgrade
提问by drew2dev
I have an iOS app that is now around 3 years old. It is signed with an enterprise profile. We have released seven versions of the software, the last time being almost a year ago. Currently we are trying to do a new release but have found that due to the new security rules in iOS8 that iOS 8.1.3 devices and greater cannot upgrade and must delete and reinstall.
我有一个现在大约 3 岁的 iOS 应用程序。它使用企业配置文件进行签名。我们已经发布了该软件的七个版本,最近一次是在将近一年前。目前我们正在尝试做一个新的发布,但发现由于iOS8中的新安全规则,iOS 8.1.3及更高版本的设备无法升级,必须删除并重新安装。
In researching I found similar issues for people who are signing the app with a different profile, but our app is being signed with the same profile. The error claims that our old application-identifier contained a wildcard, which I cannot figure out since we have never changed the bundle id(but, in the developer portal our general appId for all our apps is com.company.*).
在研究中,我发现使用不同配置文件签署应用程序的人存在类似问题,但我们的应用程序使用相同配置文件签名。该错误声称我们的旧应用程序标识符包含一个通配符,我无法弄清楚,因为我们从未更改过捆绑包 ID(但是,在开发人员门户中,我们所有应用程序的通用 appId 是 com.company.*)。
I have found that if I build both version 1 and version 2 of the app with Xcode 6.4 I can upgrade successfully and if I build both versions of the app with Xcode 5.1 I can upgrade successfully, the problem is when trying to install a version of the app built with Xcode 6.4 over a version built with Xcode 5.1
我发现如果我使用 Xcode 6.4 构建应用程序的版本 1 和版本 2,我可以成功升级,如果我使用 Xcode 5.1 构建应用程序的两个版本,我可以成功升级,问题是在尝试安装一个版本时使用 Xcode 6.4 构建的应用程序优于使用 Xcode 5.1 构建的版本
The error we get when we attempt the upgrade is:
我们尝试升级时得到的错误是:
"Upgrade's application-identifier entitlement string (6Q39SSX4QT.com.company.appName) does not match installed application's application-identifier string (6Q39SSX4QT.com.company.*)"
“升级的应用程序标识符权利字符串 (6Q39SSX4QT.com.company.appName) 与已安装应用程序的应用程序标识符字符串 (6Q39SSX4QT.com.company.*) 不匹配”
I have seen some references to needing to include an entitlements.plist file in our app, we have a AppName.entitlements plist file, but none of our apps have a entitlements.plist file(and our other apps do not exhibit this problem though they have been upgraded multiple times since Xcode 5.1 released).
我已经看到一些需要在我们的应用程序中包含 entitlements.plist 文件的参考资料,我们有一个 AppName.entitlements plist 文件,但我们的应用程序都没有 entitlements.plist 文件(我们的其他应用程序虽然没有出现这个问题,但它们自 Xcode 5.1 发布以来已多次升级)。
Anyone have any ideas?
谁有想法?
Thanks!
谢谢!
回答by UIResponder
- Open Xcode - > Window -> Devices
- Click on your device and remove the app you are trying to install from the installed apps list.
- Try running now.
- 打开 Xcode -> 窗口 -> 设备
- 单击您的设备并从已安装的应用程序列表中删除您尝试安装的应用程序。
- 现在尝试跑步。
回答by zcMACK
After doing some further reading, I found this answerto be helpful. In my case, I am building via a grunt script so I can modify my archive/sign/package step to insert the entitlements during the codesign step.
在做了一些进一步的阅读之后,我发现这个答案很有帮助。就我而言,我是通过 grunt 脚本构建的,因此我可以修改我的存档/签名/打包步骤以在协同设计步骤中插入权利。
If you follow the steps I linked, you will want to make sure your entitlements.plist file contains the wildcard as shown below:
如果您按照我链接的步骤操作,您将需要确保您的 entitlements.plist 文件包含如下所示的通配符:
<key>application-identifier</key>
<string>com.company.*</string>
If you are doing the app packaging manually, you may want to look at iResign. This will create the entitlements.plist file for you and inject it while signing your app.
如果您正在手动进行应用程序打包,您可能需要查看iResign。这将为您创建 entitlements.plist 文件并在签署您的应用程序时注入它。
I wish there was better documentation available from Apple on this. I cannot get the same effect in XCode no matter what I specify in my target's Code Entitlements settings.
我希望 Apple 能提供更好的文档。无论我在目标的代码权利设置中指定什么,我都无法在 XCode 中获得相同的效果。
回答by chrisoneiota
I have just had this error - it was because I had changed the development team used to sign the app. Ie I used our company's distribution profile to sign the development version and the client's distribution profile to sign a release version.
我刚刚遇到此错误 - 这是因为我更改了用于签署应用程序的开发团队。即我使用我们公司的分发配置文件来签署开发版本和客户端的分发配置文件来签署发布版本。
Check that the team id in the entitlements is the correct team id (printed in the error message) -> then its the installed app that is wrong. Also check that you haven't specified an application-identifier in an entitlements file. I didn't have an entitlements file at all.
检查权利中的团队 ID 是否是正确的团队 ID(打印在错误消息中)-> 那么它安装的应用程序是错误的。还要检查您是否没有在权利文件中指定应用程序标识符。我根本没有权利文件。
In this case simply delete the app on the device and reinstall it fresh.
在这种情况下,只需删除设备上的应用程序并重新安装即可。
Chris
克里斯