2016-05-11 2 views
6

私は6つのターゲットを持つXcodeプロジェクトを持っており、それぞれのターゲットは別々のアプリケーションをビルドするように作られています。私はこれらのアプリの出版に私を助けるためにfastlaneをセットアップしようとしています。ファイルを使用して.env複数ターゲットの配信(fastlane)メタデータをダウンロードする方法は?

Fastlaneドキュメントsuggest複数のターゲットを処理するために(あなたが異なる.envファイルにapp_identifierteam_nameなどを指定し、[、たとえば、fastlane appstore --env ENV_NAME_HEREを呼び出すことができます)。しかし、私はdeliverを正しく設定する方法を理解できません。

deliver initデフォルトでは1つのターゲットのメタデータをダウンロードします。すべてのターゲットのメタデータを別のディレクトリにダウンロードする必要があります(そして、それらのディレクトリを使用してデータをアップロードしてください)。 deliver download_metadataは、--envパラメータを受け入れません(私の配信ファイルはenvファイルによって異なります)。私はfastlane deliver --envを試しましたが、それはdeliverのちょうど省略形であるようですので、どちらもうまくいきません。

--metadata_pathのパラメータ(envファイルに依存しているため、私のDeliverfileが無効であるため、他のすべてのパラメータ)を手動で実行してから、Deliverfile + .envファイルを使用してディレクトリを指定してください。しかし、Deliverfileと.envファイルがすでに設定されているので(今はdeliverを使用してバイナリのみをアップロードしています)、私はもっと良い方法があると思っていました。ある?

P.S.これは大規模なレガシープロジェクトなので、6つの異なるプロジェクトに分割することは素晴らしいことですが、残念なことにオプションではありません。

答えて

7

私はこれにも苦労しています。提出をセットアップすることは、.envファイルを使用して簡単です。

しかし、初期データの取得は困難ですが、不可能ではありません。

fastlane deliver download_metadata -m "./Targets/Release/Metadata" -u "[email protected]" -a "com.example.ios" 

やスクリーンショットのために:

fastlane deliver download_screenshots -w "./Targets/Release/Screenshots" -u "[email protected]" -a "com.example.ios" 
+0

をご覧ください。それが今のところ唯一の方法だと思われます。 – FreeNickname

+0

まだ試したことはありませんが、 '-m'と' -W'を渡して、配信時にinitアクションを使用することもできます。これらのメソッドをスクリプトで使用し、.envファイルを書き出します。 – rckoenes

+0

私は、回避策をとってくれてありがとう! – FreeNickname

3

まで@rckoenes答え追加:それは、このコマンドを実行したメタデータをつかむために

1).env.yourEnvNameを作成します。この情報を含むファイル(例として):

DLV_METADATA_PATH="../Targets/Your_Target/Metadata" 
DLV_ITUNESCONNECT_USERNAME="[email protected]" 
DLV_BUNDLE_ID="com.yourCompany.yourTarget" 

2)このような車線作成します。このような

desc "Download metadata" 
lane :metadata do 
    sh('fastlane deliver download_metadata -m "$DLV_METADATA_PATH" -u $DLV_ITUNESCONNECT_USERNAME -a $DLV_BUNDLE_ID') 
end 

3)コールfastlane:

fastlane metadata --env yourEnvName 

それは少しクリーナーだ、とあなたは.envファイルにVARSを維持する方法を。 この呼び出しを複数のターゲットに自動化する場合は、https://docs.fastlane.tools/faqs/#multiple-targets-of-the-same-underlying-app

+0

私はこの解決策を試みましたが、私はいつも「ターミナルに欠けています」を得ています。続いて私のレーンは DESC レーン「を各ターゲットのメタデータをダウンロード」である:メタデータは SH( 'fastlaneがdownload_metadata -m 『$のDLV_METADATA_PATH』 -u $ DLV_ITUNESCONNECT_USERNAME -a $ DLV_BUNDLE_IDを届ける') 終了 と、次は私ですやります.envファイル DLV_METADATA_PATH =。/ターゲット/ NextSampleFastlaneTesting3 /メタデータ DLV_ITUNESCONNECT_USERNAME=****@****.com DLV_BUNDLE_ID = comの。****。NextSampleFastlaneTesting3 私が何か間違ったことをしましたか? –

関連する問題