标签: fastlane

如何使用 fastlane 构建框架?

使用 fastlane 健身房构建 ipa 非常容易。但我的目标是建立一个框架。它适用于构建以下框架:

gym(
  clean: true,
  scheme: "SGVSDK",
  project: "../Prj/SDK/SGVSDK.xcodeproj",
  # build_path: "./",
  archive_path: "./" + archiveName,
  skip_package_ipa: true,
)
Run Code Online (Sandbox Code Playgroud)

但它只能构建设备框架吗?如何构建模拟器框架?对使用 fastlane 的 SDK CI 有什么提示吗?

continuous-integration fastlane

7
推荐指数
1
解决办法
3591
查看次数

在Xamarin中自动将aps环境从开发转换为生产

在我的Xamarin iOS项目中,Entitlements.plist aps-environment设置为development,用于开发测试目的.我正在使用App StoreVisual Studio Team Services Extension自动将发布版本发布到TestFlight.但是,当它使用fastlane pilot上传应用程序时,我收到此错误:

ERROR ITMS-90046:"无效的代码签名应享权利你的应用程序包的签名包含了不支持iOS代码签名权利具体来说,值'发展'的关键'APS-环境’.项目 ’不支持.

看起来production在运行持续集成构建时应该切换到环境.我该如何自动化?

app-store xamarin.ios apple-push-notifications fastlane azure-devops

7
推荐指数
1
解决办法
1801
查看次数

Fastlane使用错误的cocoapod版本

当使用fastlane和cocoapods构建我们的iOS应用程序时,我注意到fastlane不使用我已安装的cocoapods版本

sudo gem install cocoapods
Run Code Online (Sandbox Code Playgroud)

跑步时

pod --version

它会返回此时的最新版本

1.3.1

但是,当在fastlane中运行构建通道时,由于某种原因,它使用cocoapods版本1.2.1.

我在我的Fastfile中使用它来清理和pod安装

  cocoapods(
    clean: true,
    podfile: "Podfile"
  )
Run Code Online (Sandbox Code Playgroud)

有没有办法让tel fastlane使用特定版本的cocoapods?或者使用我手动安装的版本?

cocoapods fastlane

7
推荐指数
1
解决办法
2416
查看次数

fastlane - 克隆证书存储库时出错

我在使用 fastlane 和从 BitBucket 克隆 git repo 时遇到了一些问题。我收到以下错误:

fatal: could not read Username for 'https://bitbucket.org': terminal prompts disabled
[17:21:34]: Exit status: 128
[17:21:34]: Error cloning certificates repo, please make sure you have read access to the repository you want to use
[17:21:34]: Run the following command manually to make sure you're properly authenticated:
Run Code Online (Sandbox Code Playgroud)

我可以git clone毫无问题地手动repo,但是当我使用 fastlane 运行它时,我遇到了问题。

bitbucket command-line-interface git-clone fastlane fastlane-match

7
推荐指数
1
解决办法
7154
查看次数

尝试进行涉及webview的UI测试时,Xcode崩溃

致力于为swift iOS应用程序构建自动UI测试.该应用程序涉及用于登录Facebook的Web视图.每次在web视图的范围内点击并尝试登录facebook时,如果我尝试使用内置的Xcode UI记录构建UI测试,则会崩溃Xcode.无论Xcode会崩溃,我使用iPhone 6或模拟器都没关系.

我正在使用Xcode 9.以及FBSDKLoginKit和FBSDKCoreKit.

重现步骤:

1)拥有一个带有webview的应用程序

2)点击记录UI测试

3)单击webview范围内的任意位置

这种行为有原因吗?

我是否需要更改Xcode中的设置才能记录Web视图交互?

下面是Xcode崩溃时收到的错误消息.

Process:               Xcode [70544]
Path:                  /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:            com.apple.dt.Xcode
Version:               9.3 (14154)
Build Info:            IDEFrameworks-14154000000000000~2
App Item ID:           497799835
App External ID:       826408812
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Xcode [70544]
User ID:               501

Date/Time:             2018-05-21 14:04:50.053 -0400
OS Version:            Mac OS X 10.13.4 (17E199)
Report Version:        12
Anonymous UUID:        335CE1E7-B5AB-F717-E6D0-019AF52B3708

Sleep/Wake UUID:       7824F1AB-C514-4609-A447-F15EA9C86C84

Time Awake Since Boot: 99000 seconds
Time Since Wake:       1800 seconds

System …
Run Code Online (Sandbox Code Playgroud)

xcode swift xcode-ui-testing fastlane fastlane-snapshot

7
推荐指数
1
解决办法
579
查看次数

fastlane screengrab:"没有请求权限android.permission.CHANGE_CONFIGURATION"

我正在尝试在Nexus 5X API 26仿真器中执行命令fastlane screengrab.

这是我得到的结果:

rcarba$ fastlane screengrab 
    [?]  
    [16:00:51]: fastlane detected a Gemfile in the current directory
    [16:00:51]: however it seems like you don't use `bundle exec`
    [16:00:51]: to launch fastlane faster, please use
    [16:00:51]: 
    [16:00:51]: $ bundle exec fastlane screengrab
    [16:00:51]: 
    [16:00:51]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile
    [16:00:51]: Successfully loaded '/Users/.../fastlane/Screengrabfile' 

    +----------------------------+-----------------------------------------------+
    |              Detected Values from './fastlane/Screengrabfile'              |
    +----------------------------+-----------------------------------------------+
    | app_package_name           | com.my.app                         |
    | app_apk_path               | app/build/outputs/apk/release/app-release.apk |
    | tests_apk_path             | …
Run Code Online (Sandbox Code Playgroud)

android screen-grab android-permissions fastlane fastlane-snapshot

7
推荐指数
1
解决办法
714
查看次数

CircleCI + React Native + Xcode 10

我有一个应用程序在Xcode 9上的CircleCI上运行React Native 0.57.7时运行良好,但是我们需要将Xcode版本提高到10.1.0。

但是,当我切换它时,Ci停止工作,即使启用了旧版系统(-UseNewBuildSystem=NO-UseModernBuildSystem=0传递给Fastlane的build_ios_app),我也会收到“ Myapp.app/main.jsbundle不存在”错误。

? + echo 'error: File /Users/distiller/project/ios/build/Build/Intermediates.noindex/ArchiveIntermediates/Myapp/BuildProductsPath/Release-iphoneos/Myapp.app/main.jsbundle does not exist. This must be a bug with'
? error: File /Users/distiller/project/ios/build/Build/Intermediates.noindex/ArchiveIntermediates/Myapp/BuildProductsPath/Release-iphoneos/Myapp.app/main.jsbundle does not exist. This must be a bug with
? + echo 'React Native, please report it here: https://github.com/facebook/react-native/issues'
? React Native, please report it here: https://github.com/facebook/react-native/issues
Run Code Online (Sandbox Code Playgroud)

xcode ios circleci react-native fastlane

7
推荐指数
1
解决办法
964
查看次数

如何从 fastlane 只运行一个 ui-test?

如何从 fastlane 通过 XCTest 仅运行一个 ui-test?

我知道 fastlane: only_testing 的参数,但不明白如何使用它。能给我举个例子吗

我将所有 ui 测试运行为:

fastlane ios RunningUITests 但希望fastlane ios RunningUITests only_testing:GTUITests/GT00FirstClass/testFunc 这对我不起作用

你能举一个确切的例子吗?

xcode jenkins xctest fastlane

7
推荐指数
1
解决办法
2987
查看次数

如何通过 Fastlane 将构建分发给外部测试人员?

我有一个执行uploadToTestFlight操作的 Fastfile :

uploadToTestflight(
  username: "foo@example.com",
  skipWaitingForBuildProcessing: false,
  distributeExternal: true)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,这成功了。但是,它实际上并没有将构建分发给任何人。当我查看 App Store Connect > My Apps > Foo App > TestFlight > iOS 上的构建时,它在构建名称附近显示“已批准”,这意味着它已经通过了审核过程。

但是,当我单击构建时,我注意到它被发布到的唯一组或用户是App Store Connect Users,这意味着它实际上并未从外部发布。

我有一个名为的组Foo Group,每当我运行 fastlane 时,我都想将其发布到该组。我怎么做?

我尝试通过Pilot文档解决但它没有外部分发的示例。

fastlane fastlane-pilot app-store-connect

7
推荐指数
2
解决办法
2413
查看次数

在 CI 上使用 Fastlane 进行代码签名的最佳方式

在您对我的问题感到生气之前,我知道没有一种设置 Fastlane 的最佳方法,但我想更好地了解您在开始使用它时可以采用的不同方法。

我正在为一个项目设置 Fastlane。现在我只在我的本地机器上有它,但我想在 CI 环境中设置它(在我的例子中是 GitLab-CI,但我想它并不那么重要)。

披露,我不仅是设置 Fastlane 的新手,而且是我自己设置 CI 的新手(不过我已经使用了它们,)

阅读代码签名文档(https://docs.fastlane.tools/codesigning/getting-started/)后,我可以看到不同的替代方案,但我不确定它们在 CI 环境中的限制是什么。总之,在以下情况下签署构建的好做法是什么:提交到 Testflight、运行单元测试、提交到 AppStore 等等。

选项是:

  • match
  • certsigh
  • Xcode 的代码签名功能
  • 手动

到目前为止我的论文:

  • match

    • 设置和使用比其他选项更难,但有一个指南:https : //codesigning.guide/
    • 在我看来,它是最“专业”的选择。
    • 我知道对于现有项目,它会撤销当前的证书。
      1. 是不是只有第一次?
      2. 如果 Fastlane 已经使用新证书,当前证书被撤销的陷阱是什么?我看到很多人试图阻止这种情况(例如this)。但是,现在只有我作为开发人员,我们没有任何 CI,所以我猜它不会对我产生太大影响。但是,这对于其他项目设置来说很方便。
    • 对于此设置,您需要一个私有存储库来存储加密证书。
      1. 当我与我的 Android 同事讨论这个问题时,他对使用版本控制系统来存储证书感到非常惊讶。
      2. 那究竟是什么原因呢?我的理解(也许我错了)是,通过这种方式,团队中的所有开发人员都可以从match拥有有效的开发配置文件中受益。不确定发布到 Testflight/Appstore 的好处。
  • certsigh

    • 要使用它只需要在 build_app 之前几行:

      get_certificates         # cert
      get_provisioning_profile # sigh
      build_app
      
      Run Code Online (Sandbox Code Playgroud)
    • 它下载项目根目录中的证书和配置文件。

      1. 我想应该有一种方法可以指定将它们放在哪里而不是在那里,也许吧?
      2. 我们应该忽略这些文件或在此之后清理存储库。我认为他们不应该提交到存储库。
      3. 它需要这个带有 app_identifier、apple_id 等的 Appfile,或者至少是我第一次设置 Fastlane …

continuous-integration match ios fastlane fastfile

7
推荐指数
1
解决办法
710
查看次数