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

Zon*_*ame 5 cocoapods

是否可以在Podfiles上添加环境变量而不必创建自定义 shell 脚本来替换 my 中的字符串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
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 9

是的,这是可能的。请记住,您仍然可以在Podfile. 假设您将用户名保留在名为 的环境变量中REPO_USERNAME。那么你的文件将如下所示:

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
Run Code Online (Sandbox Code Playgroud)

用法

REPO_USERNAME=Zonily pod install
Run Code Online (Sandbox Code Playgroud)

奖金

IMO 针对您的问题的更清晰的解决方案是使用 SSH 访问而不是 HTTPS。然后,您可以为您的团队创建共享 SSH 密钥,或将队友的 SSH 公钥添加到存储库,以便他们所有人都具有访问权限。在这种情况下,您将使用以下行作为源:

source 'git@github.com/CocoaPods/Specs.git'
source 'git@bitbucket.org/awesometeamname/ios-private-specs.git'
Run Code Online (Sandbox Code Playgroud)

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

干杯!