私は複数のターゲット/スキームを持つXcodeプロジェクトセットアップを持っているので、同じコードベースの下に複数のアプリケーションがあります。fastlaneを使用してスキーム/ターゲットに基づいてplistからバンドルIDを自動的に取得
私は私のアプリを一人一人のために「ため息」ツールを実行し、私のFastfileで、次の試験レーン作成:fastlaneのドキュメントを見てみると
lane :testing do
["First", "Second", "Third", "Fourth"].each do |scheme_name|
sigh
end
end
を、私はあなたがバンドル識別子を定義することができます参照して、どの一口使用。しかし、私はそれを自動的に各ターゲット/スキームのplistから現在のバンドル識別子を取得し、それをため息のために使用する必要があります。これは達成できますか?
何かのような(擬似コード):plistのパスを取得するための方法を有するhttps://github.com/SiarheiFedartsou/fastlane-plugin-versioning:
bundle_id = get_bundle_id_from_plist
sigh(app_identifier: bundle_id)
私はこのプラグインを使用してみました。私は、このコードを実行しました:
bundle_id = get_info_plist_value(path: get_info_plist_path(target: scheme_name), key: 'CFBundleIdentifier')
puts bundle_id
出力は$(PRODUCT_BUNDLE_IDENTIFIER)で、実際にはplistの値にどのようなので、私は近づいています。しかし、実際のバンドルIDを指す変数だけでなく、これを返す必要があります。
私が一息を使いたい理由は、それぞれのアプリケーション/ターゲットに独自のプロビジョニングプロファイルがあり、CarPlay資格のために手動で最初に生成しなければならなかったからです。ターゲットが期限切れになると、ターゲットごとに新しいプロビジョニングプロファイルを自動的に作成したいと思っています。
感謝を。私の更新された答えを見てください。値を返すことはできましたが、実際のバンドルIDの代わりに$(PRODUCT_BUNDLE_IDENTIFIER)が返されました。 – codeman
それは働いた!ありがとうございました! – codeman
あなたは大歓迎です!私はプラグインをリリースしました。インストールするには、コマンドラインから 'fastlane add_plugin get_product_bundle_id'を実行してください。 docsについてはhttps://github.com/fastlane/fastlane/blob/master/fastlane/docs/Plugins.mdをご覧ください。 'get_product_bundle_id(project_filepath:project_path、scheme: 'スキーム名')' –