Базовая реализация SwiftMonkey завершается неудачно, пакет не может быть загружен

Я пытался добавить SwiftMonkey-Target в свой текущий проект в течение нескольких часов, и, похоже, ничего не работает.

Пример проекта от https://github.com/zalando/SwiftMonkey работает. Настраивается все аналогично / по инструкции.

  • Работает на XCode 10.1
  • Установленные поды (до базового уровня iOS 11.0)
  • SwiftMonkeyPaws импортирован в AppDelegate, лапы назначаются при запуске
  • Новый UI-Test Deploy-Target, который вызывает пример функции testMonkey ().
  • Схема настроена только на «тест» (не запускается), как в примере-проекте.
  • Scheme Deploy-Target установлено на 11.0

Это тестовый код (идентичный example-code):

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)
}
}

А это мой подфайл:

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-hantxpruajwefrodugbjvmulator/whitexpruajwefgbvjvzl/white/html) AdviceAppMonkeyTests-Runner.app/PlugIns/AdviceAppMonkeyTests.xctest/AdviceAppMonkeyTests): Библиотека не загружена: @ rpath / libswiftSwiftOnoneSupport.dylib Ссылка на: /Users/matthias.zarzecki/Library/Developer- /Debug-iphonesimulator/AdviceAppMonkeyTests-Runner.app/PlugIns/AdviceAppMonkeyTests.xctest/Frameworks/SwiftMonkey.framework/SwiftMonkey Причина: изображение не найдено)

Есть ли у вас какие-нибудь идеи, что я могу попробовать?


person matthias_code    schedule 07.01.2019    source источник
comment
Вам нужно выяснить, не хватает ли каких-то ресурсов. Сообщение об ошибке, по крайней мере, предполагает, что некоторые ресурсы могут быть повреждены по какой-либо причине.   -  person Lajos Arpad    schedule 07.01.2019
comment
Попробуйте удалить папку модуля в своем проекте, а затем запустить установку модуля и обновление модуля. Также убедитесь, что вы указываете правильную копию и версию SwiftMonkey (pod SwiftMonkeyPaws, '~ ›2.1.0'). Возможно, вы захотите поделиться своим подфайлом здесь, чтобы убедиться, что он правильно настроен.   -  person Alex Bailey    schedule 07.01.2019
comment
@AlexBailey Хорошая идея, я добавил в сообщение свой подфайл! Также просто удалил, установил и снова обновил модули. К сожалению, без изменений   -  person matthias_code    schedule 07.01.2019
comment
Может быть, попробуйте упростить свой pod.file, пока он не заработает. Вот пример: платформа: ios, '11 .0 'target AdviceApp do use_frameworks! pod 'SwiftMonkey', '~ ›2.1.0' конец   -  person Alex Bailey    schedule 08.01.2019


Ответы (1)


Я работал с создателями несколько дней, чтобы решить эту проблему, и мы разобрались :)

Все подробности здесь: https://github.com/zalando/SwiftMonkey/issues/71

TL; DR: use_frameworks должен входить внутрь целевых модулей только основной цели

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

Кроме того, установка системы сборки на «устаревшую» заставила ее работать, но у нее был слишком большой потенциал, чтобы пойти не так в другом месте в будущем.

person matthias_code    schedule 14.02.2019