2016-01-05 6 views
1

Я пытаюсь использовать Fastlane, чтобы делать скриншоты моего приложения с помощью инструмента моментального снимка. Однако преобразование в Objective-C не работает корректно. Я Project-Swift.h импортированы в мой файл ProjectUITests.m, и я включил следующий код:Снимок Fastlane с Objective-C

SnapshotHelper *snapshotHelper = [[SnapshotHelper alloc] init]; 
[snapshotHelper setLanguage:app]; 
[snapshotHelper snapshot:@"01Homescreen" waitForLoadingIndicator:YES]; 

Однако, когда я запускаю команду «снимок» в командной строке, я получаю следующие ошибки :

Testing failed: 
Use of undeclared identifier 'SnapshotHelper' 
Use of undeclared identifier 'snapshotHelper' 

(1 failure) 
[12:14:52]: Exit status: 65 
[12:14:52]: Tests failed - check out the log above 

Так что мой вопрос, как я могу получить файл SnapshotHelper.swift, чтобы успешно запустить в моем файле ProjectUITests.m?

ответ

2

я должен был изменить файл SnapshotHelper.swift:

var deviceLanguage = "" 

@objc class SnapshotHelper : NSObject { // <--- add this 

@available(*, deprecated, message="use setupSnapshot: instead") 
class func setLanguage(app: XCUIApplication) { 
    setupSnapshot(app) 
} 

... 

} // [email protected] class 

(Вот соответствующий вопрос на GitHub: https://github.com/fastlane/snapshot/issues/228)

Времени от времени моего Xcode не создавали Мостиковую заголовки для меня из , Простейшая работа для этого заключалась в том, чтобы удалить быстрый файл из проекта и добавить его снова. Обычно Xcode спрашивал, хочу ли я мосты.

В конце концов вам может потребоваться перейти к настройкам сборки вашей целевой аудитории> Apple LLVM 7.0 - Язык - Модули> Включенные модули (C и Objective-C) = YES.

+0

Я действительно закончил работу с обходным путем, просто переведя код в Objective-C. Тем не менее, теперь у меня проблемы с iPad Скриншоты. Вы знаете об этом? – RDSpinz

+0

@RDSpinz Какие проблемы у вас возникают? Я использовал эти устройства и все созданные скриншоты: «iPhone 6», «iPhone 6 Plus», «iPhone 5», «iPhone 4s», «iPad 2», «iPad Pro» (я удалил «iPad» Сетчатка") –