Xcode 存档验证错误 - Xcode 9 和 Swift 4

Posted

技术标签:

【中文标题】Xcode 存档验证错误 - Xcode 9 和 Swift 4【英文标题】:Xcode Archive Validation Errors - Xcode 9 and Swift 4 【发布时间】:2018-03-07 17:17:51 【问题描述】:

当我尝试使用 Xcode 存档将应用上传到应用商店时,出现以下验证错误:

iTunes Store 操作失败 无效捆绑包。捆绑在 'Dvp.app/Frameworks/AlamofireSwiftyJSON.framework' 包含不允许的 文件“框架”。

iTunes Store 操作失败 无效捆绑包。捆绑在 'Dvp.app/Frameworks/AlamofireSwiftyJSON.framework' 包含不允许的 嵌套包。

iTunes Store 操作失败 CFBundleIdentifier 冲突。有 多个具有 CFBundleIdentifier 值的捆绑包 ios 应用程序“Dvp.app”下的“com.swiftyjson.SwiftyJSON”。

iTunes Store 操作失败 CFBundleIdentifier 冲突。有 多个具有 CFBundleIdentifier 值的捆绑包 iOS 应用程序“Dvp.app”下的“org.alamofire.Alamofire”。

我通过将这些框架拖放到我的项目中来引用它们。我没有使用 cocoapod 或 swift 包管理器将第三方框架引用到项目中。

知道如何摆脱这些验证问题吗?

谢谢

【问题讨论】:

【参考方案1】:

归档应用后,使用 AppStore 选择生成 ipa,并使用 Application Loader 上传

【讨论】:

【参考方案2】:

对我来说解决这个问题的关键,除了ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO,还在构建设置中为除主应用程序目标之外的所有目标设置EMBEDDED_CONTENT_CONTAINS_SWIFT=NO。必须清除派生数据,但之后一切正常。

【讨论】:

你的意思是我必须为所有第三方库设置这些密钥对吗?我是否只需要为 iOS 目标执行这些操作? 我尝试了这 2 个设置,但对我不起作用。 你是为 IOS 目标做的吗? 是的,我为 iOS 目标做了。 还有什么我需要考虑的。这个 alamofire 有 4 个目标。例如:macOS、tvOS 和 watchOS。我需要对它们做些什么吗?【参考方案3】:

在这种情况下,这些验证错误是由于 AlamofireSwiftyJSON 框架而发生的。错误如下:

iTunes Store 操作失败 无效捆绑包。捆绑在 'Dvp.app/Frameworks/AlamofireSwiftyJSON.framework' 包含不允许的 文件“框架”。

iTunes Store 操作失败 无效捆绑包。捆绑在 'Dvp.app/Frameworks/AlamofireSwiftyJSON.framework' 包含不允许的 嵌套包。

为了消除上述错误,我刚刚选择了 AlamofireSwiftyJSON 目标并在“构建阶段”选项卡中添加了“运行脚本”。

参考下图:

cd "$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi

这修复了上述验证错误以及以下验证错误:

iTunes Store 操作失败 CFBundleIdentifier 冲突。有 多个具有 CFBundleIdentifier 值的捆绑包 iOS 应用程序“Dvp.app”下的“com.swiftyjson.SwiftyJSON”。

iTunes Store 操作失败 CFBundleIdentifier 冲突。有 多个具有 CFBundleIdentifier 值的捆绑包 iOS 应用程序“Dvp.app”下的“org.alamofire.Alamofire”。

希望这会有所帮助。

【讨论】:

以上是关于Xcode 存档验证错误 - Xcode 9 和 Swift 4的主要内容,如果未能解决你的问题,请参考以下文章

kivy xcode 7 问题 - 构建和存档工作,但验证失败

Xcode 7 存档上传错误

每次我尝试通过存档验证我的应用程序时,Xcode 都会不断给我报亭错误

Xcode 5 - 无法再验证档案

Xcode 9:xcodebuild -exportArchive 错误读取文件:info.plist

错误 ITMS-9000:“不支持的架构。Xcode 存档错误