标签: fastlane

Fastlane 在 Bitrise 上找不到配置文件

我正在使用 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]: …

xcode ios fastlane bitrise

5
推荐指数
1
解决办法
2265
查看次数

Fastlane/CircleCI 上的 UI 测试失败,因为没有在新的模拟器上设置位置

目前我们的测试失败了,因为当授予位置权限时,我们永远不会进入下一个屏幕,因为位置更新永远不会发生。

这是因为使用 Fastlane 设置的新模拟器实例不会设置位置。app 目标方案指定了默认位置,UI 测试目标也是如此;两者都没有受到尊重。当从 Xcode 运行测试时,位置确实会得到尊重,而不是当模拟器从命令行激活时,因为模拟器应用程序从未真正打开过,只是存在,由终端拥有但不可见。测试套件上的位置也已设置。

当模拟器以不可见的方式运行时,如何在脚本中设置模拟器的位置?

我发现了这个:https : //github.com/lyft/set-simulator-location

它需要这个脚本:

# download set-simulator-location
brew install lyft/formulae/set-simulator-location

# run simulator
export IOS_SIMULATOR_UDID=`instruments -s devices | grep "iPhone 6 (10.3) \[" | awk -F '[ ]' '{print $4}' | awk -F '[\[]' '{print $2}' | sed 's/.$//'`
echo $IOS_SIMULATOR_UDID
open -a "simulator" --args -CurrentDeviceUDID $IOS_SIMULATOR_UDID

# wait simulator to start fully
sleep 15

# set location
set-simulator-location -q London
Run Code Online (Sandbox Code Playgroud)

但它看起来很笨重,需要硬编码特定的模拟器然后打开它,等待 15 秒,然后在上面设置位置。我觉得一定有更好的方法。

xcode circleci xcode-ui-testing fastlane

5
推荐指数
0
解决办法
489
查看次数

使用 fastlane 时,我们如何向 `gym` 添加 swift 编译标志

在办公室文档页面https://docs.fastlane.tools/actions/gym/中没有太多关于此的文档。

唯一提到编译标志的是:

xcargs
在构建阶段将附加参数传递给 xcodebuild。请务必引用设置名称和值,例如 OTHER_LDFLAGS="-ObjC -lstdc++"

这是我们目前所拥有的:

gym(options.merge(:export_xcargs => "-allowProvisioningUpdates", 
                  :export_method => "development"))
Run Code Online (Sandbox Code Playgroud)

我们现在想将此标志添加到我们的构建中:

-Xfrontend -warn-long-expression-type-checking=100
Run Code Online (Sandbox Code Playgroud)

我们不想像这样将它添加到 Xcode 项目文件中https://github.com/fastred/Optimizing-Swift-Build-Times因为我们只希望在使用 fastlane 的构建机器上进行此检查。

所以这就是我们尝试的:

gym(options.merge(:export_xcargs => "-allowProvisioningUpdates", 
                  :export_method => "development",
                  :xcargs => "-Xfrontend -warn-long-expression-type-checking=100"))
Run Code Online (Sandbox Code Playgroud)

但它一直抱怨这个错误:

xcodebuild: error: invalid option '-Xfrontend'
Run Code Online (Sandbox Code Playgroud)

我们如何正确添加这个标志?

fastlane

5
推荐指数
1
解决办法
1724
查看次数

Jekins iOS 快速通道构建:找不到“捆绑程序”

我尝试将 Jenkins 与 fastlane 结合使用。执行构建的mac是jenkins master的slave。master 安装在 windows 10 系统上。

当尝试使用 Jenkins 构建 iOS 构建并使用bundle installorbundle exec fastlane beta我总是得到错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': 找不到 'bundler' (>= 0.a ) 共 253 个 gem(s) (Gem::LoadError)

from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /Users/MY_USER/.rvm/gems/ruby-2.5.0/bin/bundle:25:in `<main>'
from /Users/MY_USER/.rvm/gems/ruby-2.5.0/bin/ruby_executable_hooks:24:in `eval'
from /Users/MY_USER/.rvm/gems/ruby-2.5.0/bin/ruby_executable_hooks:24:in `<main>'
Run Code Online (Sandbox Code Playgroud)

当我bundle install在 mac 本身的终端中执行命令时,该命令按预期工作。

我的 Jenkins 命令如下所示:

export PATH="/usr/local/bin:$PATH"
export PATH="$HOME/.fastlane/bin:$PATH"
export PATH="$HOME/.rvm/bin:$PATH"
export PATH="$HOME/.rvm/bin/rvm:$PATH"
export PATH="$HOME/.rvm/gems/ruby-2.5.0:$PATH"
export PATH="$HOME/.rvm/gems/ruby-2.5.0/bin:$PATH"

bundle install
bundle exec fastlane beta
Run Code Online (Sandbox Code Playgroud)

我还尝试了命令的完整路径:$HOME/.rvm/gems/ruby-2.5.0/bin/bundle install …

ruby bundler ios jenkins fastlane

5
推荐指数
1
解决办法
3142
查看次数

使用 fastlane 运行 xcov 时无法找到任何 .xccoverage 文件

这是 fastlane 在控制台中打印的内容:

[10:25:55]:无法找到任何 .xccoverage 文件。
[10:25:55]:确保您已在方案设置中启用“收集代码覆盖率”设置。
[10:25:55]:或者,您可以提供 .xccoverage 文件的完整路径。

如何强制它提供.xccoverage文件的完整路径?

  • 我很确定收集覆盖已启用;)
  • 使用 Xcode 10 和 iOS 12,Swift 4.2

xcode code-coverage ios fastlane

5
推荐指数
1
解决办法
1115
查看次数

Jenkins 或远程登录上的 Fastlane 错误 65

我知道这是一个已知问题,并且尝试了几次答案,但这次我发现我觉得很奇怪的情况。日志告诉可怕的错误 65以及errSecInternalComponent何时对第一个 Pod 进行代码签名。

  • 在 Jenkins 上运行时,我的构建失败
  • 在 CI 机器上手动运行,通过 SSH 登录并执行时bundle exec fastlane appstore,它失败
  • 当我登录远程桌面或物理访问 CI 机器时,构建SUCCEEDS

security unlock-keychain在构建之前,我已将命令包含在 shell 脚本中。

捆绑更新
导出 FASTLANE_DISABLE_COLORS=1
出口APP_IDENTIFIER=com.example.MyApp
security unlock-keychain -p topsecret ~/Library/Keychains/codesign.keychain && bundle exec fastlane appstore

我也尝试过其他巫术,比如用钥匙扣做其他魔法

当直接在 CI 服务器控制台(或通过远程桌面)上运行时,它可以完美运行,不会提示输入用户密码等。我想知道有什么区别?

Fastlane 版本是2.106.0(最新)。

执行 Embed Pods Frameworks 时,构建会像其他用户一样失败:

? 运行脚本'[CP] Embed Pods Frameworks'
** 存档失败 **


以下构建命令失败:
PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/ci/Library/Developer/Xcode/DerivedData/BackOffice-gprttmucbsbjiifnxdulcnwierfb/Build/Intermediates.noindex/ArchiveIntermediates/BackOffice_AppStore/IntermediateBuildFilesPath/BackOffice.build/Release. /Script-7E4F6707694226143D2E7E0B.sh
(1 …

ios fastlane

5
推荐指数
1
解决办法
1589
查看次数

Fastlane 扫描显示零单元测试

运行 fastlane scan 来运行一个非常简单的单元测试。当我在单元测试中强制出错时,它失败了。当我“强制通过”测试时,它成功了。所以整体的成功/失败是有效的。但是,它似乎将结果报告为在终端中以及当我将结果输出到 slack 时的测试次数为零。

Xcode 可以正常运行测试并正确报告结果。

fastfile 脚本如下:

run_tests(
    workspace: "xxx.xcworkspace",
    scheme: "UnitTests",
    device: "iPhone 8",
    clean: true,
    slack_url: "xxx",
    slack_channel: "#xxx-developers"
)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

xcode unit-testing ios fastlane

5
推荐指数
0
解决办法
647
查看次数

Fastlane 匹配无法通过 SSH 连接

现有解决方案

在问我的问题之前,我已经广泛搜索了 SO 和 Github。现有主题都没有为我们的设置提供任何可行的解决方案。

配置

我们在远程 macOS 机器上配置了 Jenkins + Fastlane。Fastlane 匹配应该通过 SSH 从专用存储库获取签名凭据(证书 + 配置文件)。

问题

SSH 连接失败(挂起)。詹金斯控制台输出:

INFO [2019-04-09 14:09:29.05]: Cloning remote git repo...
INFO [2019-04-09 14:09:29.05]: If cloning the repo takes too long, you can use the `clone_branch_directly` option in match.
INFO [2019-04-09 14:09:29.05]: [36m$ git clone ssh://git@xxx.xx.x.xxx:xxxx/cert/ios-certificates-profiles.git /var/folders/_redacted_[0m
INFO [2019-04-09 14:09:29.07]: ? [35mCloning into '/var/folders/_redacted_'...[0m
INFO [2019-04-09 14:09:29.19]: ? [35mThe authenticity of host '[xxx.xx.x.xxx:xxxx]:xxxx ([xxx.xx.x.xxx:xxxx]:xxxx)' can't be established.[0m
INFO [2019-04-09 14:09:29.19]: ? [35mRSA key fingerprint …
Run Code Online (Sandbox Code Playgroud)

git ssh match jenkins fastlane

5
推荐指数
2
解决办法
6708
查看次数

将环境变量从 fastlane 传递到 Xcode 构建阶段脚本

是否可以(如果可以,如何)将环境变量从运行 fastlane 的脚本传递到 Xcode 运行脚本阶段?

我的最终目标是在运行脚本阶段读取当前的 git 分支名称。我们的 CI 由 Team Foundation Server 运行,它执行git checkout显式提交,而不是分支,因此当前分支始终显示为HEAD.

TFS -> fastlane -> gym -> xcodebuild -> script that needs the branch
Run Code Online (Sandbox Code Playgroud)

可以仅通过 TFS 设置的环境变量获取触发构建的分支。我的计划是将该值归入 Xcode 脚本以完成我需要的操作。

如果我理解正确的话,我宁愿不使用它,因为它将所有环境变量传递给构建过程。

defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO
Run Code Online (Sandbox Code Playgroud)

git tfs xcode xcodebuild fastlane

5
推荐指数
1
解决办法
1901
查看次数

xcodebuild 失败并返回代码:65 - 使用 CLI/Appcenter 但没有错误消息

我已经将我的 React Native 应用程序升级到 0.59,现在当我尝试使用 AppCenter 或 CLI 归档我的应用程序时,我有一个错误代码 65 没有任何解释问题的消息......

当我直接从 Xcode 构建时

Xcode 版本:10.2.1 反应本机:0.59

Strip /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app/FrenchFounders
    cd /Users/vsts/agent/2.153.2/work/1/s/ios
    export PATH="/Applications/Xcode_10.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.2.1.app/Contents/Developer/usr/bin:/Library/Frameworks/Mono.framework/Versions/4/bin:/Users/vsts/.nvm/versions/node/v8.16.0/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
    /Applications/Xcode_10.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app/FrenchFounders

SetOwnerAndGroup vsts:staff /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app
    cd /Users/vsts/agent/2.153.2/work/1/s/ios
    export PATH="/Applications/Xcode_10.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.2.1.app/Contents/Developer/usr/bin:/Library/Frameworks/Mono.framework/Versions/4/bin:/Users/vsts/.nvm/versions/node/v8.16.0/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
    /usr/sbin/chown -RH vsts:staff /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app

SetMode u+w,go-w,a+rX /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app
    cd /Users/vsts/agent/2.153.2/work/1/s/ios
    export PATH="/Applications/Xcode_10.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.2.1.app/Contents/Developer/usr/bin:/Library/Frameworks/Mono.framework/Versions/4/bin:/Users/vsts/.nvm/versions/node/v8.16.0/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
    /bin/chmod -RH u+w,go-w,a+rX /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app

Validate /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app
    cd /Users/vsts/agent/2.153.2/work/1/s/ios
    export PATH="/Applications/Xcode_10.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.2.1.app/Contents/Developer/usr/bin:/Library/Frameworks/Mono.framework/Versions/4/bin:/Users/vsts/.nvm/versions/node/v8.16.0/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
    export PRODUCT_TYPE=com.apple.product-type.application
    builtin-validationUtility /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/InstallationBuildProductsLocation/Applications/FrenchFounders.app

Touch /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/BuildProductsPath/Release-iphoneos/FrenchFounders.app.dSYM
    cd /Users/vsts/agent/2.153.2/work/1/s/ios
    export PATH="/Applications/Xcode_10.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode_10.2.1.app/Contents/Developer/usr/bin:/Library/Frameworks/Mono.framework/Versions/4/bin:/Users/vsts/.nvm/versions/node/v8.16.0/bin:/usr/local/lib/ruby/gems/2.6.0/bin:/usr/local/opt/ruby/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/vsts/bin:/Users/vsts/.yarn/bin:/usr/local/go/bin:/Users/vsts/Library/Android/sdk/tools:/Users/vsts/Library/Android/sdk/platform-tools:/Users/vsts/Library/Android/sdk/ndk-bundle:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/usr/bin:/bin:/usr/sbin:/sbin:/Users/vsts/.azcopy"
    /usr/bin/touch -c /Users/vsts/Library/Developer/Xcode/DerivedData/FrenchFounders-gecxqcdasodzgbfdfonlrrdxmrql/Build/Intermediates.noindex/ArchiveIntermediates/FrenchFounders/BuildProductsPath/Release-iphoneos/FrenchFounders.app.dSYM

** ARCHIVE FAILED **

##[error]Error: /usr/bin/xcodebuild failed with return code: 65
Run Code Online (Sandbox Code Playgroud)

这是我的 AppCenter 构建的完整日志: …

xcode xcodebuild ios react-native fastlane

5
推荐指数
1
解决办法
5009
查看次数