Ich habe eine Xcode-Projekt-Setup mit mehreren Zielen/Schemata, so dass ich mehrere Anwendungen unter der gleichen Codebasis haben.Holen Sie sich Bundle-Kennung von Plist automatisch basierend auf Schema/Ziel mit fastlane
Ich habe die folgende Prüfstrasse in meinem Fastfile, die für jede meiner apps die „Seufzer“ Tool läuft:
lane :testing do
["First", "Second", "Third", "Fourth"].each do |scheme_name|
sigh
end
end
an der fastlane Dokumentation der Suche, ich sehe Sie ein Bündel Kennung definieren können, die Seufzer benutzt. Aber ich brauche es, um automatisch die aktuelle Bündelkennung von jedem Ziel/Schema zu holen und diese für Seufzer zu verwenden. Kann dies erreicht werden?
So etwas wie (Pseudo-Code):
bundle_id = get_bundle_id_from_plist
sigh(app_identifier: bundle_id)
Ich habe versucht, dieses Plugin: https://github.com/SiarheiFedartsou/fastlane-plugin-versioning, die für das Erhalten plist Weg eine Methode hat. Ich lief dann diesen Code:
bundle_id = get_info_plist_value(path: get_info_plist_path(target: scheme_name), key: 'CFBundleIdentifier')
puts bundle_id
Der Ausgang ist $ (PRODUCT_BUNDLE_IDENTIFIER), die eigentlich das, was in dem plist Wert ist, so dass ich immer näher. Aber ich brauche das, um die tatsächliche Bündel-ID zurückzugeben, nicht nur die Variable, auf die sie zeigt.
Der Grund, warum ich seufzen möchte, ist, dass jede App/Target eigene Provisioning-Profile hat, die ich aufgrund der CarPlay-Berechtigung zunächst manuell generieren musste. Ich möchte, dass automatisch neue Bereitstellungsprofile für jedes Ziel erstellt werden, wenn sie ablaufen.
Danke für die Info. Bitte sehen Sie meine aktualisierte Antwort. Ich konnte den Wert zurückgeben, aber es gibt $ (PRODUCT_BUNDLE_IDENTIFIER) anstelle der tatsächlichen Paket-ID zurück. – codeman
Es hat funktioniert! Vielen Dank! – codeman
Gern geschehen! Ich habe das Plugin veröffentlicht. Um es zu installieren, führen Sie 'fastlane add_plugin get_product_bundle_id' von der Kommandozeile aus. Siehe https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Plugins.md für Dokumente. Um es aufzurufen, 'get_product_bundle_id (project_filepath: project_path, schema: 'Schema Name')' –