我正在尝试将Apple ID作为命令行选项传递给Fastlane,因此所有用户和我们的构建服务器都可以使用相同的脚本.
MacBook-Pro-6:whisper-ios Nick$ fastlane hockeyglobal username:nlocking@whisper.sh
[18:00:44]: -------------------------------------------------
[18:00:44]: --- Step: Verifying required fastlane version ---
[18:00:44]: -------------------------------------------------
[18:00:44]: fastlane version valid
[18:00:44]: ------------------------------
[18:00:44]: --- Step: default_platform ---
[18:00:44]: ------------------------------
[18:00:44]: Driving the lane 'hockeyglobal'
[18:00:44]: ------------------
[18:00:44]: --- Step: sigh ---
[18:00:44]: ------------------
+-------------------------------------+-----------------------+
| Summary for sigh 1.8.0 |
+-------------------------------------+-----------------------+
| adhoc | true |
| skip_install | false |
| development | false |
| force | false |
| app_identifier | sh.whisper.whisperapp |
| …Run Code Online (Sandbox Code Playgroud) 我一直在尝试将Fastlane包含在CI环境中,其中应该发生以下情况:
master分支的任何提交都应该触发测试运行,然后构建到Testflight中.development分支的任何提交都应该触发测试运行,然后构建到Fabric Beta中.这些通道正在使用所有代码签名match.
为了避免建筑两次,我正在建造Gym,然后Scan使用skip_build: true和#3353中clean: false提到的.
虽然这似乎有助于构建时间,但由于cocoapods依赖性的数量,它在travis-ci.org中超过了50分钟的限制.(随意检查构建日志)
如何在运行时间方面改进?(除了修复#3中提到的慢速编译Swift函数)
作为参考,这是我的Fastfile.
有没有办法仅从将要创建的构建中的当前分支添加所有 git 提交?
每次完成当前分支的工作时,我都会创建一个构建,并且我希望更改日志仅包含当前分支中所做的提交。
我尝试使用number_of_commits并在changelog_from_git_commits方法的commits_count中使用它,如下所示:
lane :test do
changelog = changelog_from_git_commits(
commits_count: number_of_commits,
pretty: "- %s",
date_format: "short",
match_lightweight_tag: false,
merge_commit_filtering: "exclude_merges"
)
build_app(scheme: "test")
upload_to_testflight(
changelog: changelog
)
end
Run Code Online (Sandbox Code Playgroud)
另外,我首先在两者之间使用,但它给了我最后一个标签的所有提交:
lane :test do
changelog = changelog_from_git_commits(
between: [last_git_tag, "HEAD"],
pretty: "- %s",
date_format: "short",
match_lightweight_tag: false,
merge_commit_filtering: "exclude_merges"
)
build_app(scheme: "test")
upload_to_testflight(
changelog: changelog
)
end
Run Code Online (Sandbox Code Playgroud) 我已经使用 fastlane 构建并分发了我的 iOS 应用程序,因为我已经在快速文件中创建了脚本,所以现在我想在这个脚本中传递 env 变量来创建模板,这个相同的模板我也可以使用我的其他 iOS 应用程序,那么如何在我的 fastlane 脚本中传递环境变量呢?
我的 appleid 已打开两因素身份验证。为了持续集成,我们使用 Fastlane 工具。
Available session is not valid any more. Continuing with normal login.
Two-factor Authentication (6 digits code) is enabled for account 'my.account@gmail.com'
Run Code Online (Sandbox Code Playgroud)
我能做什么来解决这个问题?
我在使用 Jenkins 的 fastlane 时遇到问题。
在终端中运行此命令有效
fastlane provide_crashlytics_build testing:false check_xcode:false --env xxx,但在 Jenkins 中无效
错误信息:
There are no local code signing identities found.
You can run `security find-identity -v -p codesigning` to get this output.
This Stack Overflow thread has more information: /sf/ask/2477305071/.
(Check in Keychain Access for an expired WWDR certificate: /sf/answers/2478688481/ has more info.)
[14:03:30]: No certificates for filter: Certificate ID: '7D72F7MC75'
[14:03:30]: something bad happened: Could not find a matching code signing identity for type 'AdHoc'. …Run Code Online (Sandbox Code Playgroud) 我知道有increment_version_number通道,但它会增加文件中放置的版本Info.plist。这意味着每次上传到 TestFlight 后,开发人员都必须Info.plist使用新版本更新文件。
另外,Fastlane 有get_version_number通道,但我无法使我的脚本工作,因为它无法像 2.4.1 那样用最后一位数字来增加版本。
那么,我如何才能对 TestFlight 中批准的版本(当前为 2.4.1 )进行+1(到最后一位数字)?
我无法运行“Fastlane 版本”,因为它显示错误“无法解密存储库,请确保输入正确的密码!”。我确信输入的密码是正确的。我尝试手动删除所有配置文件和证书,但没有成功。
[13:03:58]: Enter the passphrase that should be used to encrypt/decrypt your certificates
[13:03:58]: This passphrase is specific per repository and will be stored in your local keychain
[13:03:58]: Make sure to remember the password, as you'll need it when you run match on a different machine
[13:03:58]: Passphrase for Match storage: ********
[13:04:10]: Type passphrase again: ********
[13:04:16]: wrong final block length
[13:04:16]: Couldn't decrypt the repo, please make sure you enter the right password!
keychain: "/Users/mohsen/Library/Keychains/login.keychain-db"
version: …Run Code Online (Sandbox Code Playgroud) 我正在设置Fastlane以简化将我的 iOS 应用程序更新提交到App Store Connect的过程。我的应用程序仅对 HTTPS 请求使用加密,因此被认为无需提供文档。(这些是通过 App Store Connect 网站提交新版本时提出的问题。)
当您指定加密导出合规性设置时,Fastlane 需要的不仅仅是这两个问题。这些是在upload_to_app_store操作的参数下设置的submission_information。
这是我目前所拥有的,但我不确定它是否正确:
upload_to_app_store(
submission_information: {
export_compliance_platform: 'ios',
export_compliance_uses_encryption: true,
export_compliance_is_exempt: true,
# These are the ones I am confused by
export_compliance_compliance_required: false,
export_compliance_encryption_updated: false,
export_compliance_app_type: nil,
export_compliance_contains_third_party_cryptography: false,
export_compliance_contains_proprietary_cryptography: false,
export_compliance_available_on_french_store: false
}
)
Run Code Online (Sandbox Code Playgroud)
最后 6 个字段对我来说非常不清楚。不幸的是 Fastlane 提供的文档很少,因为他们只是复制了 Apple 的非公开 API 使用的字段。
我怎样才能找出正确的值应该是什么?
default_platform(:android)
def getVersionCode
thirtySeptemberTwentyTwenty = 1601480940 / 60
legacyVersionCode = 10902
versionCode = legacyVersionCode + (Time.now.to_i / 60) - thirtySeptemberTwentyTwenty
if versionCode > 2100000000
raise "versionCode cannot be higher than 2100000000"
end
versionCode.floor()
end
platform :android do
desc "Increments internal build number tracking (different than version)"
lane :bump_build_number do
android_set_version_code(
version_code: getVersionCode()
)
end
desc "Build and uploads the app to playstore for a internal testing release"
lane :playstoreInternal do
# Retrieve version of my app in package.json (React Native …Run Code Online (Sandbox Code Playgroud) deployment android google-play-services react-native fastlane