快速概述:我有一个私人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服务器和其他用户机器上工作。
任何帮助赞赏。
谢谢
如果您需要硬编码路径以在多个环境中工作,我建议使用环境变量。
对于本地开发机器环境,您将在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