【发布时间】:2020-01-03 12:14:57
【问题描述】:
应用上传后,我收到以下电子邮件
我们发现您的应用最近交付的一个或多个问题, XXX。请更正以下问题,然后重新上传。
ITMS-90806:CFBundleIdentifier 冲突 - 每个捆绑包必须有一个 唯一的捆绑标识符。捆绑标识符 'org.cocoapods.CocoaLumberjack' 用于捆绑 '[CocoaLumberjack.framework, CocoaLumberjack.framework]'
CocoaLumberjack 是一个第三方库,我过去已经用过很多次了,没有任何问题,我很困惑。
与框架的 .plist 关键字 CFBundlePackageType 无关 正如在这个问题/答案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 是两者中唯一存在的一个。
过去我已经多次发布了我的应用程序,使用相同的库配置没有任何问题。我猜苹果最近几天改变了一些关于捆绑标识符的限制。
使用 Carthage 也会出现同样的问题。
【问题讨论】:
标签: ios xcode cocoapods watchos carthage