在Podfile上添加环境变量的可能性



是否可以在Podfile上添加环境变量,而不必创建自定义shell脚本来替换Podfile中的字符串?

示例:

platform :ios, '10.0'
source 'https://github.com/CocoaPods/Specs.git'
source 'https://<USERNAME>@bitbucket.org/awesometeamname/ios-private-specs.git'
use_modular_headers!
target 'a-generic-app-name' do
use_frameworks!
pod 'MaybeFirebase'
pod 'AnotherSDK'
pod 'AlamofireOfCourse'
pod 'WhoUsesRxSwiftAnyway'
end

这背后的原因是,我们使用的是一个私有的pod规范存储库,我们通过ssh连接到该存储库,开发人员将不得不始终推送或手动忽略推送用户名,可以通过命令行设置吗?

我目前的解决方案是,我有一个我调用的脚本,而不是调用pod install这个脚本执行ff:

  • 替换<USERNAME>字符串
  • 呼叫pod install

是的,这是可能的。请记住,您仍然可以在Podfile中使用ruby语法。假设您将用户名保存在名为REPO_USERNAME的env-var中。然后你的文件看起来像:

platform :ios, '10.0'
source 'https://github.com/CocoaPods/Specs.git'
source 'https://' + ENV['REPO_USERNAME'] + '@bitbucket.org/awesometeamname/ios-private-specs.git'
use_modular_headers!
target 'a-generic-app-name' do
use_frameworks!
pod 'MaybeFirebase'
pod 'AnotherSDK'
pod 'AlamofireOfCourse'
pod 'WhoUsesRxSwiftAnyway'
end

用法

REPO_USERNAME=Zonily pod install

奖金

IMO为您的问题提供的更清洁的解决方案是使用SSH访问,而不是HTTPS。然后,您可以为您的团队创建共享SSH密钥,或者将队友的SSH公钥添加到存储库中,这样所有人都可以访问。在这种情况下,您将使用以下行作为来源:

source 'git@github.com/CocoaPods/Specs.git'
source 'git@bitbucket.org/awesometeamname/ios-private-specs.git'

如果你相信这对你有用,只需浏览Bitbucket的文档,看看如何在你的存储库中使用SSH密钥。

干杯!

最新更新