通过迦太基的Fastlane crashlytics_path

时间:2018-09-03 08:25:05

标签: ios xcode crashlytics fastlane carthage

快速概述: 我有一个私人的coapapod,可以通过迦太基添加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
    }
]

到目前为止很好。

在我的应用程序项目中,我使用了快速通道。

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

我正在尝试为crashlytics_path放置什么,以便它指向由我的私人可可足类迦太基生成的Crashlytics.framework。

项目文件夹结构:

我的私人豆荚: /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}

如果我在Fastlane中将crashlytics_path编辑为此,它将起作用: crashlytics_path:     "/Users/{MY_USER}/Repositories/Libs/{PRIVATE_POD_LIB}/Carthage/Build/iOS/Crashlytics.framework",

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

任何帮助表示赞赏。

谢谢

1 个答案:

答案 0 :(得分:1)

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

对于您的本地开发计算机环境,您可以在.env目录(fastlane)中创建一个fastlane/.env,其中包含以下内容:

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

还要确保将此.env文件添加到您的.gitignore文件中,以使其不会提交到存储库中,也不会在您的Jenkins构建中使用。

然后,您可以在Jenkins机器上将CRASHLYTICS_FRAMEWORK_PATH环境变量设置为其他变量。

您还可以在此处找到有关环境变量的更多文档-https://docs.fastlane.tools/advanced/other/#environment-variables