iOS在Xcode和我的Gitlab运行器中本地隐藏敏感数据

时间:2017-07-03 11:57:33

标签: ios xcode testing gitlab gitlab-ci-runner

我有一个iOS项目,我登录第三方服务。 我有几个这样的测试,我想在本地运行,并在我提交时在我的GitLab运行器中运行。 以下是测试方法的示例:

func testLoginWsSuccess() {
    let expectation = self.expectation(description: "Login Success")        
    MyClient.sharedInstance().authenticate(login: "***USERNAME***", password: "***PASSWORD***") { (success, error) in
        XCTAssertTrue(success)
        XCTAssertNil(error)
        expectation.fulfill()
    }
    waitForExpectations(timeout: WEBSERVICE_TIMEOUT) { (_) -> Void in }
}

我的问题是如何才能实现这一点,因此凭证不会显示在我的GitLab管道中,也不会存储在我的存储库中。我也希望能够在本地运行我的测试。

到目前为止,我已经考虑过在我的工作中使用sed来替换字符串,但是这会出现在我的控制台中。 并使Xcode使用.xcconfig文件并将凭据存储在那里,但将其添加到.gitignore。这可以在本地工作,但我不知道如何设置它,所以我的跑步者也有.xcconfig文件来引用。

如果有帮助的话,这是我的.gitlab-ci.yml:

stages:
    - build
build_project:
    stage: build
    script:
    #Carthage
        - carthage bootstrap
    # Build and test project
        - xcodebuild clean -project MyProject.xcodeproj -scheme MyProject | xcpretty
        - xcodebuild test -project MyProject.xcodeproj -scheme MyProject -destination 'platform=iOS Simulator,name=iPhone 6s,OS=10.3.1' | xcpretty -s
  tags:
      - ios
      - xcode8.3

感谢您阅读本文。

0 个答案:

没有答案