CFBundleIdentifier碰撞

时间:2015-06-24 01:10:07

标签: ios objective-c cfbundleidentifier ensembles

我正在对我的应用进行更新。我添加了一个Watch Extension,在尝试提交二进制文件时,我有很多关于配置文件的错误等等。但是,我设法让它工作并提交了我的更新。今天我因为一些小问题而遭到拒绝。我很快改变了它,现在我正在尝试重新提交,但现在我收到了这个错误:

CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value 
'com.mentalfaculty.Ensembles' of 'MyAppName.app/Ensembles.bundle'
is already in use by another application.

我真的不明白什么是错的。问题是,我刚刚确定了一个非常小的东西,除此之外我没有改变任何东西,我使用相同的配置文件,因为几天前我能够提交,所以我真的不知道从我的改变了什么最后提交。我也不明白这个错误信息:还有什么其他应用程序?

“Ensembles”是一个执行Core Data iCloud Sync的框架。我之前使用过两个App版本并且从未改变过某些东西。我只是按照安装说明操作,我必须在我自己的项目中集成该Ensembles项目。所以这个框架在我的项目中是一个项目。它拥有自己的info.plist。显然这个错误与它有关,但由于我不是这些事情的专家,我害怕改变一些事情。

那么为什么我能够提交两个工作和批准的更新,能够提交一个更新二进制文件(被拒绝)并且现在一直得到这个错误,虽然我真的没有改变任何东西并且当我做了相同的步骤几天前能够提交?

非常感谢这里的任何帮助!

谢谢!

2 个答案:

答案 0 :(得分:3)

我是Ensembles的开发者,几天前就开始听到这个错误了。似乎Apple的服务器上发生了一些变化,甚至像Ensembles.bundle这样仅仅是资源的捆绑包也必须具有唯一的标识符。目前尚不清楚这是一项新政策,还是其服务器上过于热心的脚本。

在任何情况下,解决方案都相当简单:您可以进入Ensembles.bundle并将包标识符更改为您自己的唯一标识符。例如。 com.mycompany.ensembles.bundle

<强>更新 Apple似乎已经解决了这个问题的服务器端。

答案 1 :(得分:2)

再次感谢Drew的帮助,已经在另一个帖子中帮助我解决了另一个与Ensembles相关的问题!您的框架非常棒,易于实现,它可以立即消除所有iCloud集成的痛苦。如果您想查看自己的工作,请查看我的个人资料,其中包含指向我的应用的链接。当然在其设置包中提到了你的工作。

昨晚我最终做到了这一点,改变了Ensembles框架中的Bundle Identifier。之后,iTunes Connect接受了我的内置版。我只是害怕在那里改变一些东西而且搞砸了所有东西,但至少从我在我的设备上的测试来看,它似乎仍然像以前那样工作...奇怪,因为我上传了一个内置的10天前而无需更改Bundle标识符,所以Apple最近必须改变一些东西。

对于其他有这个问题的人,我做了什么:

Ensembles iOS.xcodeproj - Ensembles Ressources iOS - Ensembles Ressources iOS-ibfo.plist 

我从

更改了Bundle标识符
com.mentalfaculty.${PRODUCT_NAME:rfc1034identifier}

com.mentalfaculty.MyCompanyName.${PRODUCT_NAME:rfc1034identifier}

谢谢!