【问题标题】:Basic SwiftMonkey-Implementation fails with "Bundle couldn't be loaded"Basic SwiftMonkey-Implementation 因“无法加载捆绑包”而失败
【发布时间】:2019-06-01 23:04:06
【问题描述】:

几个小时以来,我一直在尝试将 SwiftMonkey-Target 添加到我当前的项目中,但似乎没有任何效果。

https://github.com/zalando/SwiftMonkey 的示例项目正在运行。一切都以相同的方式设置/根据说明。

  • 在 XCode 10.1 上运行
  • 已安装 Pod(到 iOS 11.0 基础级别)
  • SwiftMonkeyPaws 导入到 AppDelegate,在启动时分配爪子
  • 新的 UI-Test Deploy-Target 调用示例 testMonkey()-function
  • 仅将方案设置为“测试”(未运行),如示例项目中
  • 方案部署目标设置为 11.0

这是测试代码(与示例代码相同):

import XCTest
import SwiftMonkey

class AdviceAppMonkeyTests: XCTestCase {

override func setUp() {
    super.setUp()
    XCUIApplication().launch()
}

override func tearDown() {
    super.tearDown()
}

func testMonkey() {
    let application = XCUIApplication()
    _ = application.descendants(matching: .any).element(boundBy: 0).frame
    let monkey = Monkey(frame: application.frame)
    monkey.addDefaultXCTestPrivateActions()
    monkey.addDefaultUIAutomationActions()
    monkey.addXCTestTapAlertAction(interval: 100, application: application)
    monkey.monkeyAround(forDuration: 10)
}
}

这是我的 podfile:

platform :ios, '11.0'
use_frameworks!

def advice_pods
    pod 'SwiftyJSON'
    pod 'Firebase/Core'
    pod 'Firebase/AdMob'
    pod 'SwiftLint'
end

target 'AdviceApp' do
    advice_pods
    pod 'SwiftMonkeyPaws', '~> 2.1.0'
end

target 'Daily Advice' do
    advice_pods
end

target 'AdviceAppTests' do
    advice_pods
end

target 'AdviceAppMonkeyTests' do
    advice_pods
    pod 'SwiftMonkey', '~> 2.1.0'
end

当我运行测试时,我收到“测试失败”警告以及

2019-01-07 10:15:54.790962+0100 AdviceAppMonkeyTests-Runner[14731:110840] 捆绑包“AdviceAppMonkeyTests”无法加载,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包。 2019-01-07 10:15:54.791073+0100 AdviceAppMonkeyTests-Runner[14731:110840] (dlopen_preflight(/Users/matthias.zarzecki/Library/Developer/Xcode/DerivedData/AdviceApp-hantxpruajwefgbjvzwhvlvwhmrh/Build/Products/ AdviceAppMonkeyTests-Runner.app/PlugIns/AdviceAppMonkeyTests.xctest/AdviceAppMonkeyTests):库未加载:@rpath/libswiftSwiftOnoneSupport.dylib 引用自:/Users/matthias.zarzecki/Library/Developer/Xcode/DerivedData/AdviceApp-hantxpruajwefgbjvzwhvlvwhmrh/Build/Products/Debug-iphonesimulator/AdviceAppMonkeyTests-Runner.app/PlugIns/AdviceAppMonkeyTests.xctest/Frameworks/SwiftMonkey.framework/SwiftMonkey 原因:图片未找到)

你有什么想法我可以尝试吗?

【问题讨论】:

  • 您需要找出是否缺少某些资源。该错误消息至少表明,或者某些资源可能由于某种原因而损坏。
  • 尝试删除项目中的 pod 文件夹,然后运行 ​​pod install 和 pod update。还要确保您指向正确的复制品和版本 SwiftMonkey ( pod "SwiftMonkeyPaws", '~> 2.1.0')。您可能想在此处分享您的 podfile 以确保其设置正确。
  • @AlexBailey 好主意,我在帖子中添加了我的 podfile!也只是再次删除、安装和更新了 pod。遗憾的是没有变化
  • 也许可以尝试简化您的 pod.file 直到您可以使用它。这是一个例子:平台:ios,'11.0'目标“AdviceApp”做use_frameworks! pod 'SwiftMonkey', '~> 2.1.0' 结束

标签: ios swift cocoapods xcode-ui-testing monkey-testing


【解决方案1】:

我与创作者合作了几天来解决这个问题,我们想通了 :)

所有详情都在这里:https://github.com/zalando/SwiftMonkey/issues/71

TLDR: use_frameworks 只需要进入主目标的target-pods

platform :ios, '11.0'

target 'AdviceApp' do
    use_frameworks!
    pod 'SwiftyJSON'
    pod 'Firebase/Core'
    pod 'Firebase/AdMob'
    pod 'SwiftLint'
    pod 'SwiftMonkeyPaws'
end

target 'AdviceAppMonkeyTests' do
    pod 'SwiftMonkey', '~> 2.1.0'
    pod 'SwiftLint'
end

还可以将构建系统设置为“旧版”使其工作,但这很有可能在未来其他地方出错

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-15
    • 2016-12-17
    • 1970-01-01
    • 2013-10-22
    • 2012-05-29
    • 2011-11-07
    • 2021-04-23
    相关资源
    最近更新 更多