![](/img/trans.png)
[英]Swift App - Cannot find 'SKStoreProductViewController' in scope
[英]fastlane.swift cannot find 'ENV' in scope
我是 fastlane 的新手,試圖讀取fastfile.swift
中的環境變量,其中包含以下內容
import Foundation
class Fastfile: LaneFile {
.
.
.
func createRCBuildLane() {
beforeAll()
ensureGitBranch(branch: "qa")
let commitMessage = "RC_Build_Version_" + getVersionNumber(target: "Example App") + "_Build_" + getBuildNumber()
addGitTag(buildNumber: .userDefined(commitMessage), force: true)
pushGitTags(force: true)
createPullRequest(apiToken: "*****", repo: "Example/iOS_ble_client", title: commitMessage, base: "master")
slackMessage(withMessage: "Example App RC Release:\n" + commitMessage)
}
.
.
.
func beforeAll() {
// updateFastlane()
}
func matchDevelopmentCertificateLane() {
match(type: "development")
}
func matchAdHocCertificateLane() {
match(type: "adhoc")
}
func matchDistributionCertificateLane() {
match()
}
func slackMessage(withMessage message: String) {
slack(
message: .userDefined(message),
channel: "#example-ios",
slackUrl: "https://hooks.slack.com/services/###/###/###",
payload: ["Version:": getVersionNumber(target: "Example App"), "Build:": getBuildNumber()],
success: true
)
}
}
我想通過 ENV 傳遞apiToken
而不是對其進行硬編碼。 誰能在這里指出我正確的方向?
我試過了
func createRCBuildLane() {
beforeAll()
ensureGitBranch(branch: "qa")
let commitMessage = "RC_Build_Version_" + getVersionNumber(target: "Example App") + "_Build_" + getBuildNumber()
addGitTag(buildNumber: .userDefined(commitMessage), force: true)
pushGitTags(force: true)
createPullRequest(apiToken: ENV["API_TOKEN"], repo: "Example/iOS_ble_client", title: commitMessage, base: "master")
slackMessage(withMessage: "Example App RC Release:\n" + commitMessage)
}
但收到此錯誤Fastfile.swift:37:37: cannot find 'ENV' in scope
要快速訪問環境變量,您應該使用ProcessInfo
。 例如, Fastfile.swift
中有一個示例代碼:
class Fastfile: LaneFile {
func testLane() {
desc("Description of what the lane does")
if let apiToken = ProcessInfo.processInfo.environment["API_TOKEN"] {
NSLog("API TOKEN: \(apiToken)")
}
else {
NSLog("Error: No token.")
}
}
}
現在您可以設置環境變量並運行您的車道:
$ export API_TOKEN='CACD1B9D-56AA-41F0-BDE3-457DDA30A8D4'
$ fastlane testLane
輸出:
...
[13:56:58]: $ ./FastlaneRunner lane testLane swiftServerPort 2000 > /dev/null
[13:56:59]: ▸ 2022-05-31 13:56:59.494 FastlaneRunner[34213:828339] API TOKEN: CACD1B9D-56AA-41F0-BDE3-457DDA30A8D4
[13:56:59]: fastlane.tools finished successfully 🎉
檢查項目的fastlane
文件夾中是否有.env
隱藏文件。 .env
是配置項目的環境變量,而不是系統環境變量。 如果API_TOKEN
在.env
中,則配置沒有問題,可以在Applefile
中查看是否可以獲取指定的環境變量值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.