我只是在bitrise.io中配置一个项目.但是xcode-build失败并出现错误:
xcodebuild: error: The project named "Foo" does not contain a scheme named "Bar". The "-list" option can be used to find the names of the schemes in the project.
Run Code Online (Sandbox Code Playgroud)
我仔细检查,方案Bar确实存在于项目Foo中
Bitrise构建失败,出现以下错误:
配置根项目'src'时出现问题.
无法解析配置':classpath'的所有文件.找不到com.google.gms:google-services:4.1.0.在以下位置进行了搜索: https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.1.0/google-services-4.1.0.pom https:// dl .google.com/dl/android/maven2/com/google/gms/google-services/4.1.0/google-services-4.1.0.jar https://jcenter.bintray.com/com/google/gms/ google-services/4.1.0/google-services-4.1.0.pom https://jcenter.bintray.com/com/google/gms/google-services/4.1.0/google-services-4.1.0.jar 要求:项目:
我知道使用maven的替代临时解决方案.但有谁知道为什么问题突然发生并且永久解决?
关于stackoverflow上的这个问题有很多主题/问题(比如Error =无法找到:ComponentInfo {}的检测信息)和其他网站,但是让我的问题与其他网站不同的是我正致力于自动化.那么让我给你更多细节.
当我在本地机器上测试时,我没有问题(我的意思是我的笔记本电脑).我可以运行Espresso测试,所有测试都通过.
现在,我想在CI上运行这些测试(在我的案例中为Bitrise).我创建并运行模拟器.我确认那里没有问题.我有以下脚本:
...
# Check which instrumentation packages have been installed on your device, https://stackoverflow.com/a/23394559/513413
echo ""
echo "Check which instrumentation packages have been installed..."
adb shell pm list instrumentation
# Running tests
echo ""
echo "running test..."
adb shell am instrument -w -r -e debug false -e class my.package.name.MyActivityTest my.package.name.test/android.support.test.runner.AndroidJUnitRunner
Run Code Online (Sandbox Code Playgroud)
这是CI的输出:
Check which instrumentation packages have been installed...
instrumentation:com.android.emulator.smoketests/android.support.test.runner.AndroidJUnitRunner (target=com.android.emulator.smoketests)
instrumentation:com.android.smoketest.tests/com.android.smoketest.SmokeTestRunner (target=com.android.smoketest)
instrumentation:com.example.android.apis/.app.LocalSampleInstrumentation (target=com.example.android.apis)
running test...
INSTRUMENTATION_STATUS: id=ActivityManagerService
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info …
Run Code Online (Sandbox Code Playgroud) 我的问题是,当使用 Firebase 时(cloud_firestore
特别是),Flutter iOS 应用程序的构建时间变得很长,以至于我在 Bitrise 上的 CI 构建超时(28flutter build --release
分钟,fastlane 的 20 分钟以上build_ios_app
)。所以我无法在我的 CI 上执行完整的 iOS 构建。缓存当然是可能的,但首先必须完成初始构建:/
根据本指南,在使用 Fastlane 使用 Xcode 进行存档时,有必要重建 iOS 应用程序。然而,在官方 Github 存储库上有一个关于引入直接从 Flutter 发布 IPA 文件的命令的讨论,但目前这是不可能的。
我的问题是 - 有没有什么方法可以缩短这个构建时间,例如通过跳过 fastlane 步骤中的构建,只是将 .app 文件辞职并存档到 .ipa?我不能自己让它工作。
在这里,你可能会发现一个样品扑应用与cloud_firestore
功能。
您可以在下面找到我的 Bitrise 和 fastlane 配置:
---
format_version: '7'
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: flutter
trigger_map:
- push_branch: master
workflow: test
workflows:
prepare:
steps:
- activate-ssh-key@4.0.3:
run_if: '{{getenv …
Run Code Online (Sandbox Code Playgroud) 在哪里可以找到Bitrise
带有实际值的默认环境变量的完整列表?
我可以在Select variable
对话框中看到变量列表:
但无法检查其值。我不想在命令行中使用echo
并打印所有值并检查它们的值。很高兴在bitrise.io
文档中提供此信息,该信息目前尚不存在。
我bitrise*
在github中找到了一些存储库,并且在steps
我的源代码中,我能够检查一些环境变量的默认值。这仍然不是理想的结果。
我正在尝试自动化我正在使用的CI上的构建过程.我可以调用a curl
并为其分配一些变量,例如版本代码和名称.然后CI(在我的案例中为Bitrise CI)抓住它并开始发布版本.但是,在此之前,我想根据传递curl
到build.gradle
文件中的内容设置版本代码和版本名称,然后开始构建过程.
所以,我想我可以编写一个插件/任务,从命令行获取版本代码/名称,然后将其注入build.gradle
文件中.像这样的命令./gradlew setVersion 1 1.0
.
因此,通过从我将编写的脚本运行此命令,我将能够运行此gradle任务,并且glob中任何位置的所有人都可以创建发布版本curl
.很有趣 :)
我能够编写类似于以下代码的任务,并将其放入我的主build.gradle
文件中.
task setVersion << {
println versionCode
println versionName
}
Run Code Online (Sandbox Code Playgroud)
并通过命令行传递一些参数:
./gradlew -PversionCode=483 -PversionName=v4.0.3 setVersion
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
:setVersion
483
v4.0.3
BUILD SUCCESSFUL
Total time: 6.346 secs
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我的问题是如何在build.gradle
文件中设置它?谢谢
我正在使用 Fastlane 在本地构建一个 iOS 应用程序,没有任何问题。
我正在使用match
一个单独的 repo,以跟踪证书和配置文件。
在本地它工作正常。
但是,在 Bitrise 上,我收到此错误:
[05:23:16]:安装了所有必需的密钥、证书和配置文件 [05:23:16]:将配置文件类型设置为“应用商店” [05:23:16]: --------------- [05:23:16]:---步骤:build_app--- [05:23:16]: --------------- [05:23:16]: $ xcodebuild -list -workspace Myapp.xcworkspace -configuration 调试 [05:23:17]: $ xcodebuild -showBuildSettings -workspace Myapp.xcworkspace -scheme Myapp -configuration Debug [05:23:20]:无法自动检测配置文件映射 [05:23:20]:从 Xcode 9 开始,您需要提供什么的显式映射 [05:23:20]:配置文件以用于您应用的每个目标 [05:23:20]:没有那个文件或目录@rb_sysopen - /Users/vagrant/git/Pods/Target Support Files/Pods-Myapp/Pods-Myapp.debug.xcconfig [05:23:20]:检测到配置文件映射:{:"com.myapp.myapp"=>"match AppStore com.myapp.myapp"}
我尝试明确映射我的配置文件Fastfile
:
[05:23:16]: All required keys, certificates and provisioning profiles are installed [05:23:16]: Setting Provisioning Profile type to 'app-store' [05:23:16]: ----------------------- [05:23:16]: --- Step: build_app --- [05:23:16]: …
概括:
当我将 CI 集成到开发工作流程中时,我还尝试将 Bitrise 工作流程的执行移至我们本地的 iOS Mac 计算机,该计算机设置为 Jenkins 从设备。因此,我尝试构建的项目需要在这台 iOS 计算机上构建。
问题:
我正在尝试与集成用户(可以访问我的存储库的 GitHub 帐户)建立 ssh 连接,并且我创建了一个密钥并将其添加到 GitHub 用户以及 .bitrise.secrets.yml 文件。
但是,当执行初始步骤 activate-ssh-key 步骤时,会出现错误,即我无法将 SSH 密钥添加到具有空密码短语的 ssh-agent。(这是否可以配置?我可以逃避吗?)
这是输出日志:https : //pastebin.com/FCHhZNDb
进入 bitrise.yml:
- activate-ssh-key@4.0.2: {getenv "SSH_RSA_PRIVATE_KEY"}
Run Code Online (Sandbox Code Playgroud)
.bitrise.secrets.yml:
envs:
- SSH_RSA_PRIVATE_KEY: ssh-rsa *KEY*
Run Code Online (Sandbox Code Playgroud)
|------------------------------------|
我也试过将 ssh 密钥直接放在 .ssh 目录中,但没有用。
任何帮助真的很感激!:)
TL; 博士
尝试通过 ssh 将 bitrise cli 与 github 连接,不起作用。
我们有
在本地计算机上一切正常 - Xcode 只需要求填写 Gitlab 的身份验证信息(登录/访问令牌),然后依赖关系图就会解析,我们可以构建我们的项目。
但是 Bitrise 在健身房舞台上失败了,错误如下 =(
xcodebuild:错误:无法解析包依赖项:身份验证失败,因为未提供凭据。
如何验证 Bitrise 的 Gitlab 帐户以处理gym stage?
我正在尝试在 bitrise.io 上构建我的 iOS 应用程序。此应用程序使用托管在私人 github 存储库中的 SPM 包。该回购协议无法公开。
构建在本地工作,它们还可以在本地使用 fastlane 和 bitrise cli。当我在远程管道上运行它们时,出现以下错误:
xcodebuild: error: Could not resolve package dependencies:
Failed to clone repository https://github.com/USERNAME_REDACTED/REPO_NAME_REDACTED:
Cloning into bare repository '/Users/vagrant/Library/Developer/Xcode/DerivedData/ORG_NAME_REDACTED/SourcePackages/repositories/REPO_NAME_REDACTED-d35b1ef7'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
Run Code Online (Sandbox Code Playgroud)
我的理解是,为什么这不起作用,是因为远程管道计算机上的 Xcode 实例没有添加 GitHub 帐户。我可以在本地使用 Xcode GUI 来执行此操作,Xcode > Preferences > Accounts
如下所示
这里的问题是,我需要找到一种方法,通过提供用户名和个人访问令牌,通过远程脚本来执行此操作。到目前为止,我已经花了大约 20 个小时查看xcodebuild
文档并摆弄不同的配置,但我还没有运气让它工作。
任何帮助表示赞赏。