9

ブロックベースのカテゴリを UITextFieldに追加するために、github でホストされているオープン ソース コードがいくつかあります。.travis.yml ファイルを追加して、travis CI をビルドし、すべてのプッシュでコードを実行できるようにしました。The Travis CI warning へのリンク。プロジェクトが正常にビルドされます。.travis.yml スクリプトの実行時に表示される警告は次のとおりです。

WARNING: Using Objective-C testing without specifying a scheme and either
a workspace or a project is deprecated.

実行したいサンプル プロジェクトは、フォルダー /UITextView Blocks Example/ にあります。.travis.yml ファイルに追加して、このプロジェクトを実行するにはどうすればよいですか? 私の travis.yml ファイルは現在、

language: objective-c
4

2 に答える 2

17

2017年更新

コメントでskypecakesが言及しています:

XCode 8 以降を使用している場合:xctoolはサポートされなくなり、動作しません。代わりにxcodebuild
を 使用してください。


元の回答 (2013)

このチュートリアルを確認できます。説明は次のとおりです。

xctoolTravis CI や Jenkins などの継続的インテグレーション サーバーでテストを実行する場合に最適です。
継続的インテグレーション環境内でテストを実行するには、アプリケーション ターゲットの共有スキームを作成し、すべての依存関係 (CocoaPods など) が明示的にスキームに追加されていることを確認する必要があります
そうするために:

  1. [製品] メニュー > [スキーム] > [スキームの管理...] を選択して、[スキームの管理] シートを開きます。
  2. リストでアプリケーション ターゲットを見つけます。シートの右端の列にある [共有] チェックボックスがオンになっていることを確認します。
  3. アプリケーションまたはテスト ターゲットに CocoaPods などのプロジェクト間の依存関係が含まれている場合は、それらが明示的な依存関係として構成されていることを確認する必要があります。そうするために:
    • アプリケーション ターゲットを強調表示し、[編集...] ボタンをクリックして、Scheme 編集シートを開きます。
    • スキーム エディターの左側のパネルにある [ビルド] タブをクリックします。
    • + ボタンをクリックして、各依存関係をプロジェクトに追加します。CocoaPods は、Pods という名前の静的ライブラリとして表示されます。
    • 依存関係をアプリケーション ターゲットの上にドラッグして、最初にビルドされるようにします。

xcshareddata/xcschemesこれで、Xcode プロジェクトの下のディレクトリに新しいファイルが作成されます。
これは、構成したばかりの共有スキームです。
このファイルをリポジトリにチェックインすると、xctool は次の CI ビルドでテストを見つけて実行できるようになります。

柔軟性を高めるために、Travis が xctool をインストールして呼び出す方法を制御することもできます。

language: objective-c
before_install:
    - brew update
    - brew install xctool
script: xctool -workspace MyApp.xcworkspace -scheme MyApp test

最後の構成は、この他のチュートリアルで説明されているアプローチに似ています。

レポをリンクしたら、次のステップは.travis.ymlレポのルートにファイルを追加することです。

  language: objective-c

  before_script: travis/before_script.sh
  script: travis/script.sh
  • まず、Travis に、これは Objective-C プロジェクトであることを伝えます。
  • 次に、実際にビルドを実行するためにどのスクリプトを実行する必要があるかを指示することで、このリポジトリに対して CI を実行する方法を Travis に伝えます。

また、ビルドを実行する直前に何をすべきかについて、いくつかの追加の指示も示します。
すべてのビルド手順を .travis.yml ファイルにインラインで配置することは非常に一般的ですが、私は実際には git リポジトリの travis ディレクトリ内のリポジトリに bash スクリプトを作成し、.travis.yml.
これにより、.ymlファイルが適切に小さく保たれ、travis ビルド スクリプトをローカルで簡単にテストできるようになります

before_script上記の.ymlファイルでTravis に a を与えました。これは、Travis エージェントがビルドの一部として必要なツールをダウンロードするために使用することを目的としています。外観は次のとおりです。

travis/before_script.sh

#!/bin/sh
set -e

brew update
brew install xctool

とてもシンプルです。xctoolhomebrew を使用してビルド エージェントにインストールするだけです。
すべての travis ビルド エージェントはhomebrewプリインストールされていますが、式が最新でない場合があるため、 を試すbrew update前に を実行することをお勧めしbrew installます。
ビルド用にエージェントを準備するために必要なことはこれだけです。

次に、ビルド スクリプト自体を見てみましょう。

travis/script.sh

#!/bin/sh
set -e

xctool -workspace MyWorkspace -scheme MyScheme build test

繰り返しますが、これは本当に簡単です。最初に、ワークスペースとスキームを指定してアプリのビルドを要求
する ことで、基本的なサニティ チェックを行います。 これは、コンパイル エラーがないことを確認するだけです。 成功すると仮定すると、アプリのユニット テスト ターゲットがビルドおよび実行され、必要に応じて Travis エージェントでシミュレーターが起動されます。xctool

xctool

于 2013-10-29T07:13:44.883 に答える
3

ファイルで言語を Objective-C に指定する.travis.ymlと、CI サーバーはデフォルトで、適応したバージョンの をosx-cibuild.sh使用します。これにより、現在のディレクトリ内のワークスペースが検索され、すべてのデフォルト ターゲットがビルドされます。

あなたのレポはルートにワークスペースを持っていないので (それらは の下にExamplesあります)、ビルドするものを見つけることができず、何もビルドしません。

プロジェクト ファイルを下Examplesからルートに移動するかXCWORKSPACE、Travis CI 構成で設定して何をビルドするかを指定するか、実行するカスタム スクリプトを指定して自分自身を呼び出すことができますxcodebuild。ワークスペース構成を設定することは、おそらく推奨されるオプションです。必要がなければカスタマイズしないでください。

に次のようなものを追加します.travis.yml

env:
  - XCWORKSPACE="Examples/UITextField-Blocks Example.xcodeproj"

(ファイル名に内部スペースがあるため、引用符が表示されます。)

osx-cibuild.shスクリプトを調べて、スクリプトがどのように機能するか、さまざまな環境変数を設定してその動作をカスタマイズする方法を確認することは価値があります。

参考資料:

于 2013-10-29T07:43:38.153 に答える