GitHub

Xcodeの問題点のリスト

自由にこのリストにあなたのコメントを追加してください。

このリンクをクリックすることで、GitHub上に直接追加することができます。, ただしプルリクエストとしてそれを送ることを忘れないでください ;)

パフォーマンス関連

ノート: 主にUIテストに影響します。

Xcode / iOS Simulatorに紐づく問題の根本的な原因は限られた環境のパフォーマンスによって発生します。これは仮想マシン(あなたがbitrise.ioの上でビルドし走らせるもの), MacBook Airs, HDDストレージのMac Minis, …

あるいはあなたが_SSDではない_Mac Miniで Apple’s Xcode Bots CI server を使った場合にも起こりえます。

例:

関連するリンクとレポート:

解決方法

不安定なUIテスト、ランダムなUIテストケースの失敗

これは実にシンプルなプロジェクトでも発生しえます。本当にこのようなほど単純なことに:

func testAddAnItemGoToDetailsThenDeleteIt() {
        // Use recording to get started writing UI tests.
        // Use XCTAssert and related functions to verify your tests produce the correct results.


        let app = XCUIApplication()
        let masterNavigationBar = app.navigationBars["Master"]
        masterNavigationBar.buttons["Add"].tap()

        let tablesQuery = app.tables
        let firstElemQuery = tablesQuery.cells.elementBoundByIndex(0)
        firstElemQuery.tap()
        app.navigationBars.matchingIdentifier("Detail").buttons["Master"].tap()
        masterNavigationBar.buttons["Edit"].tap()

        firstElemQuery.buttons.elementBoundByIndex(0).tap()
        firstElemQuery.buttons["Delete"].tap()

        masterNavigationBar.buttons["Done"].tap()

        XCTAssert(tablesQuery.cells.count == 0)
    }

この問題を引き起こします。

解決方法

Xcode 7.3を使用し、上記のコードでこの問題を再現させることができました。 Xcode 7.2.1では全く同じコードが完璧に動作しましたが、 7.3ではランダムに失敗します。開発方法は異なるiOS Simulatorデバスを使用することでした。 Xcode 7.3を使用する”iPhone 6”のシミュレーターデバイスの場合平均して_3回のうち2回_テストが失敗しましたが、 一方でXcode 7.2.1では完璧に動作しました。

“iPhone 6s Plus”にシミュレーターデバイスを変更することで、Xcode 7.3ではこの問題が解決しました。

Xcodeの単体テストがエラー無しで失敗し、コード65で終了する

これは多くのことが原因になりえます。Xcodeやいくつかの他のツールがまったく エラーメッセージを省略し/表示しません。

考えられうる理由や解決方法についての長い議論を見ることができます。ここ.

概要:

Segmentation fault

The error is:

clang: error: unable to execute command: Segmentation fault: 11

This is usually due to Xcode version mismatch - that you use a different Xcode on your Mac than the one you use on bitrise.io. Commonly occurs with Xcode 7.2 (if you have the Xcode 7.2 stack selected on bitrise.io), if you’re already on a newer version of Xcode locally on your Mac.

The solution is simple, just make sure that you use the same Xcode version everywhere.

Issues which occur with the Xcode Command Line Tools (xcodebuild), but not with Xcode.app

xcodebuild hangs when a test causes EXC_BAD_ACCESS kernel exception

xcodebuild hangs when a test causes EXC_BAD_ACCESS kernel exception

Note: this can happen only on specific iOS Simulators / iOS versions too, e.g. if the app only crashes on iOS 8, but not on iOS 9

Xcode 8 - xcodebuild .. test hangs at the very end of the tests

xcodebuild .. test hangs at the end of the tests (after it printed the summary of the tests) if the output of xcodebuild .. is piped / redirected in any way. This means that xcodebuild .. test .. | xcpretty or even tee can be used to reproduce this issue.

Every/Any Xcode command hangs

This is a rare issue, caused by running a non shared Scheme.

xcodebuild can only work with shared Schemes and user schemes (auto created by Xcode.app). xcodebuild, unlike Xcode.app, does not auto create user schemes, it can only work with shared schemes and already existing user schemes (Xcode.app creates the user scheme when you open the project in Xcode.app on the specific Mac machine the first time, for schemes which are not marked as shared). If you try to run a command on a missing / non shared Scheme it usually manifests in a “scheme not found” error, but we saw projects where it resulted in xcodebuild hanging, instead of an error message.

If this is the case then any xcodebuild command will hang, even something as simple as xcodebuild -list.

Solution

Make sure that you marked the Scheme as shared, and that you actually committed & pushed it into your repository.

Build hangs

Simulator reset

As reported here, if you do a simulator reset during the build, e.g. with a pre-action Build Phase Script xcrun simctl erase all, it can cause Xcode / the Simulator to hang.

Other

It might also not be Xcode related, but might be caused by something in your project when it runs in an Xcode step (Xcode Test, Xcode Archive, …). For example if you have a Run Phase Script in your Xcode project, that will run during Xcode build/test/archive, and that script hangs for some reason (e.g. it waits for a user input).

Check out our guide on frequent iOS issues for more information!