快速概述: 我有一个私人的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服务器和其他用户计算机上工作。
任何帮助表示赞赏。
谢谢
答案 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