LoginSignup
2
2

More than 5 years have passed since last update.

[iOS] プッシュ通知を導入したらCircleCIのUnitTestで失敗した

Last updated at Posted at 2016-10-05

概要

iOSアプリにFirebaseのプッシュ通知を導入したところ、急にCicleCIのテスト(Xcode build and run tests)で失敗するようになってハマったので、解決するまでやったことのまとめです。

環境

  • XCode7.3

エラー内容

CircleCI上ではエラー内容が出てなかったので原因が分からなかったのですが、ローカルでbuild&testを実行してみたところ、以下のエラーが出ている事が分かりました。

$ xcodebuild -workspace '{アプリ名}.xcworkspace' -scheme '{アプリ名}' clean build test -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=latest' CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= PROVISIONING_PROFILE=

・・・

2016-09-08 07:30:34.535 XCTRunner[6174:22447] Running tests...\
07:30:35.399 XCTRunner[6174:22454] _XCT_testBundleReadyWithProtocolVersion:minimumVersion: reply received\
07:30:35.403 XCTRunner[6174:22453] _IDE_startExecutingTestPlanWithProtocolVersion:16\
2016-09-08 07:30:46.670 XCTRunner[6174:22447] Failed to background test runner within 10.0s.\
** TEST FAILED **\

上記エラーをググると下記のリンクに辿り着きました。
https://bitrise-io.github.io/devcenter/ios/frequent-ios-issues/

どうやら、UITest中にプッシュ通知の許可を促すダイアログが表示されていてテストに失敗していたようです。

対応

先ほどのリンクに書かれている通り、Unitテストであるか判定を行い、Unitテストでなければプッシュ通知の設定を行うように修正を行いました。

let unitTestMode = NSProcessInfo.processInfo().environment["XCTestConfigurationFilePath"] != nil
if !unitTestMode {
   // プッシュ通知の設定
}

以上の対応で無事にビルドが成功するようになりました!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2