应用程序上传后,我收到以下电子邮件
我们发现您的应用程序最近交付存在一个或多个问题,
XXX。请更正以下问题,然后重新上传。
ITMS-90806:CFBundleIdentifier 冲突 - 每个捆绑包必须有一个
唯一的包标识符。包标识符
捆绑包中使用了“org.cocoapods.CocoaLumberjack”
'[CocoaLumberjack.framework,CocoaLumberjack.framework]'
CocoaLumberjack 是一个第三方库,我过去已经使用过很多次,没有任何问题,我很困惑。
它与框架的.plist关键字CFBundlePackageType无关
正如这个问题/答案中所指定的框架 CFBundleIdentifier 碰撞 https://stackoverflow.com/questions/31990871/framework-cfbundleidentifier-collision。 CocoaLumberjack 捆绑包类型为“Framework”(CFBundlePackageType = FMWK)。 CocoaLumberjack 是一个广泛使用的第三方库,使用 cocoapods 添加到我的项目中。
该问题可能与我的应用程序包中的 watchOS 目标有关。
CocoaLumberjack 库在 iOS 应用程序和 watchOS 应用程序中都使用,它导致了有关包标识符重复的问题。
如果 iOS 目标和 Watch Extension 之间共享框架,则 Apple Connect 服务器会检测到 CFBundleIdentifier 冲突。
target 'App' do
platform :ios, '9.0'
# Pods for App
...
pod 'CocoaLumberjack/Swift', '~> 3.5.3'
...
end
target 'AppWatch Extension' do
platform :watchos, '5.0'
# Pods for Watch Extension
...
pod 'CocoaLumberjack/Swift', '~> 3.5.3'
...
end
iOS 应用程序正在使用该库,而 watchOS 扩展也正在使用相同的库。他们使用不同的库,但 CocoaLumberjack 是两者中唯一存在的库。
我过去已经多次发布了我的应用程序,但相同的库配置没有任何问题。我猜想苹果在过去几天里改变了一些关于捆绑包标识符的限制。
使用迦太基也存在同样的问题。