ios - iOS:此时无法安装此应用程序 - LegacyErrorString=DuplicateIdentifier
问题描述
我有一个具有多个目标(QA、Staging .. 等)的项目。所有目标都包含一个动态框架(假设带有包标识符:com.sdk.demosdk)。对于某些目标,我使用使用一些预处理器标志(干净)编译的这个 SDK,而对于其他目标,我使用不同的标志编译。
例如:对于 QA - 我正在使用 sdkFull 进行 QA - 我正在使用 sdkClean
但两者都具有相同的捆绑标识符。
但无论如何,对于测试目标,我总是运行包含 sdkClean 的目标。
我正在使用 fastlanescan
从 Jenkins 管道运行测试。见下面的代码:
lane :testify do |options|
app = options[:app]
podinstall
scan(
scheme: "DemoTests_" << app,
code_coverage: true,
xcargs: "OTHER_SWIFT_FLAGS='$(inherited) \"-D\" \"COCOAPODS\" -DAUTHENTICATION_PRODUCTION -Dappstore'",
output_directory: "./fastlane/test_output_" << app,
device:"iPhone 8"
)
end
有时我会收到以下错误:
2018-07-17 02:48:23.975 xcodebuild[82663:24489158] 错误域 = IXUserPresentableErrorDomain 代码 = 1“此时无法安装此应用程序。” UserInfo={NSLocalizedDescription=此时无法安装此应用程序。,NSUnderlyingError=0x7fa8106dab80 {Error Domain=MIInstallerErrorDomain Code=57 "在 /Users/jenkins/Library/Developer/CoreSimulator/Devices/B4971F74-AE22-4A18- 找到捆绑包B5F0-01E71AF71314/data/Library/Caches/com.apple.mobile.installd.staging/temp.a0hOWi/extracted/Payload/DemoApp.app/Frameworks/demosdkCleanAPI.framework 具有与捆绑相同的标识符 (com.sdk.demosdk)在/Users/jenkins/Library/Developer/CoreSimulator/Devices/B4971F74-AE22-4A18-B5F0-01E71AF71314/data/Library/Caches/com.apple.mobile.installd.staging/temp.a0hOWi/extracted/Payload/DemoApp。应用程序/框架/demosdk.framework"
测试失败:测试目标 ShindanTests_DemoApp 遇到错误(早期意外退出,操作从未完成引导 - 不会尝试重新启动。基本错误:错误域 = IXUserPresentableErrorDomain 代码 = 1“此时无法安装此应用程序。” UserInfo = { NSLocalizedDescription=此时无法安装此应用程序。,NSUnderlyingError=0x7fa8106dab80 {Error Domain=MIInstallerErrorDomain Code=57 "在 /Users/jenkins/Library/Developer/CoreSimulator/Devices/B4971F74-AE22-4A18-B5F0-01E71AF71314 找到捆绑包/data/Library/Caches/com.apple.mobile.installd.staging/temp.a0hOWi/extracted/Payload/DemoApp.app/Frameworks/demosdkCleanAPI.framework 具有相同的标识符(com.sdk.demosdk)作为捆绑包位于 /Users/jenkins/Library/Developer/CoreSimulator/Devices/B4971F74-AE22-4A18-B5F0-01E71AF71314/data/Library/Caches/com.apple.mobile.installd.staging/temp.a0hOWi/extracted/ Payload/DemoApp.app/Frameworks/demosdk.framework" UserInfo={LegacyErrorString=DuplicateIdentifier, FunctionName=-[MIInstallableBundle performPreflightWithError:], SourceFileLine=391, NSLocalizedDescription=在 /Users/jenkins/Library/Developer/CoreSimulator/Devices/ 找到捆绑包B4971F74-AE22-4A18-B5F0-01E71AF71314/data/Library/Caches/com.apple.mobile.installd.staging/temp.a0hOWi/extracted/Payload/DemoApp.app/Frameworks/demosdkCleanAPI.framework 具有相同的标识符(com. sdk.demosdk)作为捆绑包位于 /Users/jenkins/Library/Developer/CoreSimulator/Devices/B4971F74-AE22-4A18-B5F0-01E71AF71314/data/Library/Caches/com.apple.mobile.installd.staging/temp。a0hOWi/extracted/Payload/DemoApp.app/Frameworks/demosdk.framework}}})**测试失败**
我尝试了几个清理脚本,例如:
rm -rf -r ~/Library/Developer/Xcode/DerivedData
rm -rf $(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache
rm -rf -r ~/Library/Caches/com.apple.dt.Xcode
xcrun simctl uninstall booted com.cellebrite.shindan
事件杀死模拟器进程并重新启动它,但有时它会成功,有时不会......
谁能帮我理解可以做什么?
解决方案
推荐阅读
- r - 使用 any() 与 | 在 dplyr::mutate
- php - 我错过了什么吗?通过 Xammp 连接 PHP MYSQL
- javascript - 即使我将脚本标记放在正文标记的结尾上方,页面也仅在单击弹出窗口后才加载
- java - 如何保存 ArrayList
到Android中的文件? - ios - 快速获取文本框坐标
- laravel-5 - 如何提高 Laravel 的迁移和播种速度?
- ruby-on-rails - 在 Rails 中重载数据类型渲染
- ios - Swift 4:当用户单击 UiButton 时,如何获取在 UICollectionView 中选择的字符串?
- mysql - 具有固定值mysql的虚拟表
- sql - 错误:缺少表的 From- 子句条目