質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.49%

fastlane snapshotでスクリーンショットを撮りたい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 757

score 50

前提・実現したいこと

こちらを参考に、fastlaneを導入しsnapshotでスクリーンショットを取ろうとしてます。

テストコードまで書き終えて、ターミナルから以下コマンドを実行したのですが
snapshot resultsが❌になってしまい、スクリーンショットが取れていません。
生成される結果のhtmlは表示が空で、生成されるsnapshotフォルダ配下にも何も格納されてない状態です。

ログを見ても、解決方法がわからず手詰まりになってしまったため、ご教示頂きたいです。

bundle exec fastlane screenshots

実行結果とログ

$ bundle exec fastlane screenshots
[✔] 🚀
[23:01:51]: ------------------------------
[23:01:51]: --- Step: default_platform ---
[23:01:51]: ------------------------------
[23:01:51]: Driving the lane 'ios screenshots' 🚀
[23:01:51]: ---------------------------------
[23:01:51]: --- Step: capture_screenshots ---
[23:01:51]: ---------------------------------
[23:01:52]: Successfully loaded '/Users/*****/Documents/fastlane-snapshot/fastlane/Snapfile' 📄

+----------------------------+---------------+
| Detected Values from './fastlane/Snapfile' |
+----------------------------+---------------+
| devices                    | ["iPhone 8"]  |
| languages                  | ["ja-JP"]     |
| output_directory           | ./screenshots |
| clear_previous_screenshots | true          |
+----------------------------+---------------+

[23:01:52]: $ xcodebuild -showBuildSettings -scheme fastlane-snapshot -project ./fastlane-snapshot.xcodeproj
2019-06-16 23:01:54.115 xcodebuild[69096:7098334]  DTDeviceKit: deviceType from f218084929032a1cf72d6d10adad0d1cc89cc2a3 was NULL
2019-06-16 23:01:54.298 xcodebuild[69096:7098333]  DTDeviceKit: deviceType from f218084929032a1cf72d6d10adad0d1cc89cc2a3 was NULL

+----------------------------+--------------------------------------------------------+
|                            Summary for snapshot 2.125.2                             |
+----------------------------+--------------------------------------------------------+
| scheme                     | fastlane-snapshot                                      |
| project                    | ./fastlane-snapshot.xcodeproj                          |
| output_directory           | /Users/*****/Documents/fastlane-snapshot/screenshots |
| devices                    | ["iPhone 8"]                                           |
| languages                  | ["ja-JP"]                                              |
| launch_arguments           | [""]                                                   |
| output_simulator_logs      | false                                                  |
| skip_open_summary          | false                                                  |
| skip_helper_version_check  | false                                                  |
| clear_previous_screenshots | true                                                   |
| reinstall_app              | false                                                  |
| erase_simulator            | false                                                  |
| localize_simulator         | false                                                  |
| app_identifier             | com.*****.fastlane-snapshot                          |
| buildlog_path              | ~/Library/Logs/snapshot                                |
| clean                      | false                                                  |
| number_of_retries          | 1                                                      |
| stop_after_first_error     | false                                                  |
| result_bundle              | false                                                  |
| concurrent_simulators      | true                                                   |
| xcode_path                 | /Applications/Xcode.app                                |
+----------------------------+--------------------------------------------------------+

[23:01:55]: Clearing previously generated screenshots
[23:01:55]: Building and running project - this might take some time...
[23:01:56]: Patching simulators '/Users/*****/Library/Preferences/com.apple.iphonesimulator.plist' to scale to 100%
[23:01:58]: Running snapshot on: iPhone 8
[23:01:58]: $ set -o pipefail && xcodebuild -scheme fastlane-snapshot -project ./fastlane-snapshot.xcodeproj -derivedDataPath '/var/folders/9j/88s9hfds5y14rp9kznk0d5ph0000gn/T/snapshot_derived20190616-69084-qe6ksd' -destination 'platform=iOS Simulator,name=iPhone 8,OS=12.1' FASTLANE_SNAPSHOT=YES build test | tee /Users/*****/Library/Logs/snapshot/fastlane-snapshot-fastlane-snapshot.log | xcpretty
[23:01:58]: ▸ Loading...
[23:02:00]: ▸ 2019-06-16 23:02:00.236 xcodebuild[69191:7098856]  DTDeviceKit: deviceType from f218084929032a1cf72d6d10adad0d1cc89cc2a3 was NULL
[23:02:00]: ▸ Compiling ViewController.swift
[23:02:05]: ▸ Compiling AppDelegate.swift
[23:02:05]: ▸ Linking fastlane-snapshot
[23:02:07]: ▸ Compiling Main.storyboard
[23:02:08]: ▸ Compiling LaunchScreen.storyboard
[23:02:08]: ▸ Processing Info.plist
[23:02:09]: Running Tests: ▸ Touching fastlane-snapshot.app (in target: fastlane-snapshot)
[23:02:09]: ▸ Build Succeeded
[23:02:09]: ▸ Linking fastlane-snapshot
[23:02:09]: ▸ Compiling fastlane_snapshotUITests.swift
[23:02:10]: ▸ Compiling SnapshotHelper.swift
[23:02:10]: ▸ Processing Info.plist
[23:02:10]: ▸ Linking fastlane-snapshotUITests
[23:02:11]: ▸ Copying /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/XCTAutomationSupport.framework
[23:02:11]: ▸ Copying /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks/XCTest.framework
[23:02:12]: Running Tests: ▸ Touching fastlane-snapshotUITests.xctest (in target: fastlane-snapshotUITests)
[23:02:12]: ▸ 2019-06-16 23:02:12.137 xcodebuild[69191:7099803]  IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
[23:02:12]: ▸ /var/folders/9j/88s9hfds5y14rp9kznk0d5ph0000gn/T/snapshot_derived20190616-69084-qe6ksd/Logs/Test/Run-fastlane-snapshot-2019.06.16_23-02-00-+0900.xcresult/2_Test/Diagnostics/fastlane-snapshotUITests-B3404761-EA87-4E77-A12F-5F1A1DCA3955/fastlane-snapshotUITests-7A101BFE-7F58-4D72-9725-635F410638C4/Session-fastlane-snapshotUITests-2019-06-16_230212-2h9aTB.log
[23:02:12]: ▸ 2019-06-16 23:02:12.138 xcodebuild[69191:7098854] [MT] IDETestOperationsObserverDebug: (4FDA550C-B67C-4979-BF8E-AFF5110B7F9A) Beginning test session fastlane-snapshotUITests-4FDA550C-B67C-4979-BF8E-AFF5110B7F9A at 2019-06-16 23:02:12.138 with Xcode 10B61 on target <DVTiPhoneSimulator: 0x7fa4f4a31420> {
[23:02:12]: ▸ SimDevice: iPhone 8 (CE8F6F9C-2A72-4ECF-A3C2-3B4078A479B1, iOS 12.1, Shutdown)
[23:02:12]: ▸ } (12.1 (16B91))
[23:02:28]: ▸ All tests
[23:02:28]: ▸ Test Suite fastlane-snapshotUITests.xctest started
[23:02:28]: ▸ fastlane_snapshotUITests
[23:02:35]: ▸ ✓ testExample (6.522 seconds)
[23:02:35]: ▸      Executed 1 test, with 0 failures (0 unexpected) in 6.522 (6.524) seconds
[23:02:35]: 
[23:02:35]: ▸ 2019-06-16 23:02:35.570 xcodebuild[69191:7098854] [MT] IDETestOperationsObserverDebug: 23.496 elapsed -- Testing started completed.
[23:02:35]: ▸ 2019-06-16 23:02:35.570 xcodebuild[69191:7098854] [MT] IDETestOperationsObserverDebug: 0.000 sec, +0.000 sec -- start
[23:02:35]: ▸ 2019-06-16 23:02:35.570 xcodebuild[69191:7098854] [MT] IDETestOperationsObserverDebug: 23.496 sec, +23.496 sec -- end
[23:02:35]: ▸ Test Succeeded

+----------+-------+
| snapshot results |
+----------+-------+
| Device   | ja-JP |
+----------+-------+
| iPhone 8 |  ❌   |
+----------+-------+

[23:02:41]: Generating HTML Report
[23:02:41]: Successfully created HTML file with an overview of all the screenshots: '/Users/*****/Documents/fastlane-snapshot/screenshots/screenshots.html'

+------+---------------------+-------------+
|             fastlane summary             |
+------+---------------------+-------------+
| Step | Action              | Time (in s) |
+------+---------------------+-------------+
| 1    | default_platform    | 0           |
| 2    | capture_screenshots | 51          |
+------+---------------------+-------------+

[23:02:42]: fastlane.tools finished successfully 🎉

該当のソースコード

import XCTest

class fastlane_snapshotUITests: XCTestCase {
    let app = XCUIApplication()

    override func setUp() {
        super.setUp()

        continueAfterFailure = false
        XCUIApplication().launch()
    }

    func testExample() {
        let button  = XCUIApplication().buttons["testButton"]
        snapshot("launch")
        button.tap()
    }
}
# Uncomment the lines below you want to change by removing the # in the beginning

# A list of devices you want to take the screenshots from
 devices([
   "iPhone 8"
 ])

 languages([
   "ja-JP"
 ])

# The name of the scheme which contains the UI Tests
# scheme("SchemeName")

# Where should the resulting screenshots be stored?
 output_directory("./screenshots")

# remove the '#' to clear all previously generated screenshots before creating new ones
 clear_previous_screenshots(true)

# Arguments to pass to the app on launch. See https://docs.fastlane.tools/actions/snapshot/#launch-arguments
# launch_arguments(["-favColor red"])

# For more information about all available options run
# fastlane action snapshot

試したこと

Snapfileのdevicesやlanguagesを変更しましたがスクリーンショットは取れませんでした。

補足情報(FW/ツールのバージョンなど)

fastlane 2.125.2

テスト単体で実行すると成功しているので、テストが失敗していると言うことはなさそうです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

元記事にあるように

XCUIApplication().launch()

let app = XCUIApplication()
setupSnapshot(app)
app.launch()

としましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/17 23:28

    ご回答頂きありがとうございます。

    ご指摘の箇所を修正したら無事スクリーンショットが取れました。
    見落とし失礼致しました・・・。ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る