- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
应用上传后我收到以下邮件
We identified one or more issues with a recent delivery for your app, XXX. Please correct the following issues, then upload again.
ITMS-90806: CFBundleIdentifier collision - Each bundle must have a unique bundle identifier. The bundle identifier 'org.cocoapods.CocoaLumberjack' is used in the bundles '[CocoaLumberjack.framework, CocoaLumberjack.framework]'
CocoaLumberjack 是一个第三方库,我过去已经使用过很多次,没有任何问题,我很困惑。
与框架的.plist关键字CFBundlePackageType无关正如此问题/答案中指定的那样 Framework CFBundleIdentifier Collision . CocoaLumberjack bundle 类型是“框架”(CFBundlePackageType = FMWK)。 CocoaLumberjack 是一个广泛使用的第三方库,已添加到我使用 cocoapods 的项目中。
这个问题可能与我的应用程序包中的 watchOS 目标有关。CocoaLumberjack 库同时用于 iOS 应用程序和 watchOS 应用程序,它导致了 bundle 标识符重复的问题。
如果在 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 也存在同样的问题。
最佳答案
作为临时解决方法,我手动重命名了 watchOS 扩展中的包标识符,然后应用发布工作正常,但它看起来不像是一个好的解决方案,特别是如果您在 CI 系统上运行构建。
更好的选择是在 pod 文件中添加特定的安装后操作:
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'CocoaLumberjack-watchOS'
target.build_configurations.each do |config|
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'org.cocoapods.${PRODUCT_NAME:rfc1034identifier}-$(PLATFORM_NAME)'
end
end
end
end
或者如果您必须处理多个库:
post_install do |installer|
watchosLibs = ['Lib1-watchOS', 'Lib2-watchOS', 'Lib3-watchOS']
installer.pods_project.targets.each do |target|
if watchosLibs.include? target.name
target.build_configurations.each do |config|
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}.${PLATFORM_NAME}"
end
end
end
end
注意重命名 pods 包标识符,否则某些库将无法正常运行。
我建议只重命名被 Apple 拒绝的库,以尽量减少可能出现的问题。
目前有一些关于这个问题的不同开放线程:
使用 Carthage 而不是 Cocoapods 也存在类似的问题
如果 Apple 不更改有关 bundle 标识符的新政策,那么 cocoapods 团队可能会提供更干净的解决方案。
关于iOS - watchOS App 发布问题 CFBundleIdentifier 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723390/
我正在尝试使用此 repo 构建我的第一个 iOS 应用程序: https://github.com/pmusaraj/discourse-mobile-single-site-app 构建时,我收到
我有一个pod文件 target 'MainApp' do # the host app target # Comment this line if you're not using Swift
我们可以本地化 CFBundleIdentifier 吗,我正在使用 CFBundleIdentifier 作为在 Plist 中存储内容的键,如果 CFBundleIdentifier 是可本地化的
将近一周以来,我一直在尝试上传我的构建版本 (Xcode 8.1),但出现了 n 条错误,而我的任何其他应用程序更新都没有出现这些错误。这不是我的第一次上传。我只是想更新应用程序。我收到错误消息,您必
我正在更新我的应用程序。我添加了一个 Watch Extension,但在尝试提交二进制文件时,我遇到了很多有关配置文件等的错误。但是,我以某种方式设法让它工作并提交了我的更新。今天我因为一些小问题被
我在 iOS 的 React native 应用程序中遇到以下错误。 Installing build/Build/Products/Debug-iphonesimulator/Este.app
在这里可以轻松获得赏金。不一定需要任何 react-native 经验。问题似乎出在开源代码中,可以在那里获得: 更新了 xcode,现在当我尝试通过发出以下命令来运行我的 react-native
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我不断收到此错误“:CFBundleIdentifier,不存在”。我使用的版本:react-native-cli: 2.0.1 react-native: 0.40.0 npm 4.0.5 node
我存档了我的应用程序并想上传 ipa 文件。 但是,上传失败并出现这些错误。 App Store Connect Operation Error CFBundleIdentifier Collisio
我正在学习本教程,但是当我使用 react native cli 生成新项目时,它无法启动(使用 react-native run-ios)。我不断收到上述错误,我已经尝试了几个小时的故障排除,我认为
我正在尝试发送我的应用程序(自定义键盘)进行提交并捕获此错误: 我为项目(com.michilly.SakhaKeyboard)和扩展(com.michilly.SakhaKeyboard.Keybo
我正在尝试动态加载一个包,以便在少数情况下代替 mainBundle。我设法用一些资源加载了包,比如 Localizable.strings 等等。当我对该包使用 localizedStringF
如果我希望 iOS App App1 在设备上启动 App2,那么 CFBundleURLName 是否需要与 Info.plist 中的 CFBundleURLTypes 中的 CFBundleId
当我运行 react-native run-ios 时,构建成功,但出现以下错误。我已经检查了所有地方,但似乎没有任何效果。在命令前使用 sudo 也无济于事。我正在使用 Xcode 7.3,reac
当我尝试 react-native run ios ,我遇到了 CFBundleIdentifier 问题。 在提供的路径中找不到应用程序包。 提供所需应用程序包的有效路径。 打印:条目,“:CFBu
我必须修改提交给 3/24 的申请。 由于修改后的应用程序尝试重新提交到 4/12,我的 Application Loader 中出现以下错误。 [2015-04-12 18:41:21 JST] 错
我做了有关解决此问题的研究。每当我尝试运行命令 react-native run-ios 在终端,我得到同样的错误。 Xcode(8.2.1)说 ld: library not found for -
我刚刚注册了这个地方,我已经使应用程序一切正常,所有证书和文件都更新了,但是当我尝试从 xcode 上传到应用程序商店时,我不断收到此错误。如果有人可以帮我修复它,那就太好了,谢谢 iTunes St
对于我们的游戏,在 Info.plist 文件中,我们的 CFBundleIdentifier 设置为, CFBundleIdentifier com.sixminute.$(PRODUCT_NAME
我是一名优秀的程序员,十分优秀!