Fastlane crashlytics_path через Карфаген - PullRequest
0 голосов
/ 03 сентября 2018

Быстрый обзор: У меня есть частный кокапод, который добавляет ткань и крашлитики через Карфаген.

И у меня есть скрипт запуска на этапе сборки:

/usr/local/bin/carthage copy-frameworks
Input files: $(SRCROOT)/Carthage/Build/iOS/Crashlytics.framework
Output files: $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Crashlytics.framework

В моем подспеце у меня есть:

s.script_phases = [
    {
        :name => 'Fabric Setup',
        :script => '"${PODS_TARGET_SRCROOT}/Carthage/Build/iOS/Fabric.framework/run" {key} {secret}',
        :execution_position => :after_compile
    }
]

Пока все хорошо.

В моем проекте приложения, использующем этот частный Cocoapod, я использую fastlane.

crashlytics(
    crashlytics_path: "...",
    api_token: "...",
    build_secret: "...",
    groups: "..."
)

Я пытаюсь выяснить, что поместить для crashlytics_path, чтобы он указывал на Crashlytics.framework, сгенерированный моим частным карфагеном cocoapod.

Структура папок проекта:

Мой личный стручок: /Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}

Расположение Crashlytics в Private Pod: /Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework

Приложение, которое тянет в мою личную капсулу: /Users/{MY_USER}/Repositories/Apps/{MY_APP}

Если я отредактирую crashlytics_path в Fastlane, то это сработает: crashlytics_path: "/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework",

Но, очевидно, я не хочу указывать полный путь с моим пользователем, так как он должен работать на сервере Jenkins и других пользовательских машинах.

Любая помощь приветствуется.

Спасибо

1 Ответ

0 голосов
/ 03 сентября 2018

Если вам нужно жестко указать путь для работы в нескольких средах, я бы предложил использовать переменную среды.

Для локальной среды разработки вы можете создать .env в каталоге fastlane (fastlane/.env) со следующим содержимым:

CRASHLYTICS_FRAMEWORK_PATH=/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework

Также обязательно добавьте этот .env файл в ваш файл .gitignore, чтобы он не был зафиксирован в вашем хранилище и не использовался в вашей сборке Jenkins.

Затем вы можете установить переменную окружения CRASHLYTICS_FRAMEWORK_PATH на вашем компьютере Jenkins.

Вы также можете найти больше документации по переменным окружения здесь - https://docs.fastlane.tools/advanced/other/#environment-variables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...