通过迦太基的Fastlane crashlytics_path

问题描述 投票:0回答:1

快速概述:我有一个私人cocoapod,通过Carthage添加Fabric和Crashlytics。

我在构建阶段有一个运行脚本:

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

在我的podspec我有:

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添加的内容,以便它指向由我的私人cocoapod carthage生成的Crashlytics.framework。

项目文件夹结构:

我的私人荚:/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}

Private Pod内的Crashlytics位置:/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework

拉入我私人吊舱的应用程序:/Users/{MY_USER}/Repositories/Apps/{MY_APP}

如果我在Fastlane中编辑crashlytics_path到它可以工作:crashlytics_path:"/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework",

但显然我不想把我的用户的完整路径放在其中,因为它需要在Jenkins服务器和其他用户机器上工作。

任何帮助赞赏。

谢谢

ios xcode crashlytics fastlane carthage
1个回答
1
投票

如果您需要硬编码路径以在多个环境中工作,我建议使用环境变量。

对于本地开发机器环境,您将在qazxsw poi目录(qazxsw poi)中创建一个qazxsw poi,其中包含以下内容:

.env

另外,请确保将此fastlane文件添加到fastlane/.env文件中,以便它不会提交到您的存储库,也不会在您的Jenkins构建中使用。

然后,您可以在Jenkins计算机上将CRASHLYTICS_FRAMEWORK_PATH=/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework 环境变量设置为不同的值。

您还可以在此处找到有关环境变量的更多文档 - .env

© www.soinside.com 2019 - 2024. All rights reserved.