标签: fastlane

使用 fastlane screengrab 进行 cordova android 应用程序

有谁能够弄清楚如何使用 cordova android 应用程序的 screengrab 吗?我正在寻找在 Android studio 中为 cordova 应用程序创建 UI 测试用例的语法,但我没有找到任何东西。我正在使用最新版本的 cordova 和 fastlane。

android cordova fastlane

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

证书和 fastlane 文件是否应该提交到 XCode 项目中的 git?

我创建了一个配置文件,以使用 fastlane 将 iOS 应用程序部署到测试飞行。

以下是我添加到 .gitignore 的文件列表

  • fastlane/report.xml
  • fastlane/Preview.html
  • 快车道/截图
  • 快车道/测试输出
  • fastlane/README.md

我是否还应该将以下文件添加到 .gitignore 中?

  • 文件夹/certificates 中的文件
  • 快车道/应用程序文件
  • 快速通道/快速文件

xcode ios swift fastlane

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

将 Xcode 自动签名设置为 false,并使用 fastlane match 和gym 设置配置文件和证书

我们使用Fusetools来构建应用程序。使用该命令uno build --target=ios --configuration=Release我们myapp.xcodeproj为应用程序生成一个新文件。

当我.xcodeproj在 Xcode IDE 中手动打开时,我看到该Automatically manage signing复选框已选中。然后我们使用 Fastlane 匹配来获取证书并在 Xcode 中手动选择应用商店证书。这一切都很好。

现在 - 我们尝试使用像Bitrise这样的 CI 提供程序使用无头构建过程来构建它。然后一切都停止在同一点。我们的.xcodeproj复选框Automatically manage signing被选中。

我们的快速文件如下所示:

disable_automatic_code_signing(path: "../myapp.xcodeproj")

match(git_url: "git@github.com:MyRepo/match.git",
      app_identifier: "com.myapp.myapp",
      type: "appstore",
      readonly: true)

gym(
      workspace: "myapp.xcworkspace",
      scheme: "MyApp",
      export_method: "app-store",
      xcargs: "PROVISIONING_PROFILE_SPECIFIER='match AppStore
      com.myapp.myapp'"
)
Run Code Online (Sandbox Code Playgroud)

在我们的例子中,Fastfile我们尝试首先禁用自动签名,在gym中传递参数xcargs: "PROVISIONING_PROFILE_SPECIFIER='match AppStore com.myapp.myapp'"以在构建之前设置配置文件。

然后我从 Bitrise CI 监视器得到这个:

Code signing is required for product type 'Application' …

xcode ios fastlane fastlane-gym fusetools

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

当skip_submission = true时,Pilot仍在TestFlight上分发

当使用 Pilot 上传构建时,我正在设置,skip_submission: true但构建仍然分发给内部测试人员。我的印象是只上传 IPA 并且不会进行测试?

pilot(
  changelog: "Live",
  skip_submission: true
)
Run Code Online (Sandbox Code Playgroud)

fastlane fastlane-pilot

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

Jenkins 的 Fastlane 失败了

我在 MacMini 上使用 Jenkins 的工作失败了。该作业由一个脚本组成,该脚本将使用 iOS 版 Fastlane 执行一些单元测试。该作业正确执行,但在构建之后它会记录错误:

FATAL: Remote call on SLAVE failed
java.lang.ClassNotFoundException: Classloading from system classloader disabled
    at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch4(RemoteClassLoader.java:834)
    at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch3(RemoteClassLoader.java:867)
    at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:896)
    at hudson.remoting.Request$2.run(Request.java:336)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:19)
    at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at ......remote call to channel(Native Method)
    at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1554)
    at hudson.remoting.Request.call(Request.java:172)
    at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:260)
    at com.sun.proxy.$Proxy6.fetch3(Unknown Source)
    at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:195)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:292)
    at hudson.util.ProcessTree$UnixReflection.<clinit>(ProcessTree.java:699) …
Run Code Online (Sandbox Code Playgroud)

continuous-integration ios jenkins fastlane

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

使用带有 fastlane 的通知扩展构建 iOS 应用程序

我最近在我的应用程序中添加了一个通知扩展,该扩展使用 fastlane 构建得很好。添加通知扩展后,由于某些代码签名问题,构建总是失败。

\n\n

构建我的应用程序并将其上传到 TestFlight 的通道是:

\n\n
    lane :beta do\n         increment_build_number(\n            build_number: latest_testflight_build_number + 1,\n            xcodeproj: "ios.xcodeproj"\n         )\n         match(app_identifier: ["my.app.bundleid", "my.app.bundleid.extension" type: "appstore") \n         gym(scheme: "prod")\n         ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"\n         pilot(\n           skip_submission: true,\n           skip_waiting_for_build_processing: true\n         ) \n    end\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经为两个捆绑 ID 创建了应用程序 ID 和配置文件,并且为它们启用了推送通知。

\n\n

即使我在运行后收到以下错误fastlane beta

\n\n
[19:13:20]: $ /usr/bin/xcrun /Library/Ruby/Gems/2.3.0/gems/fastlane-2.96.1/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist \'/var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_config20180601-5305-a3y0ow.plist\' -archivePath /Users/viktor.plezer/Library/Developer/Xcode/Archives/2018-06-01/prod\\ 2018-06-01\\ 19.07.57.xcarchive -exportPath \'/var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_output20180601-5305-ghy31c\' \n+ xcodebuild -exportArchive -exportOptionsPlist /var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_config20180601-5305-a3y0ow.plist -archivePath \'/Users/viktor.plezer/Library/Developer/Xcode/Archives/2018-06-01/prod 2018-06-01 19.07.57.xcarchive\' -exportPath /var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_output20180601-5305-ghy31c\n2018-06-01 19:13:21.181 xcodebuild[7741:1606819] [MT] IDEDistribution: -[IDEDistributionLogging …
Run Code Online (Sandbox Code Playgroud)

provisioning ios fastlane

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

更改 Android React-Native 应用程序的上传密钥

我们必须为 React-Native Android 应用程序重置我们的 Android 上传密钥。我们联系了 Google 以重置密钥。

Google 要求我们完成以下步骤: 以下是生成和注册新上传密钥的方法:

按照 Android Studio 帮助中心中的说明生成新密钥。它必须与任何以前的键不同。或者,您可以使用以下命令行生成新密钥:

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
Run Code Online (Sandbox Code Playgroud)

此密钥必须是 2048 位 RSA 密钥并具有 25 年的有效期。将该密钥的证书导出为 PEM 格式:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks 
Run Code Online (Sandbox Code Playgroud)

回复此电子邮件并附上 upload_certificate.pem 文件。

进一步的步骤
我们现在有了生成的文件keystore.jks和一个upload_certificate.pem文件。

以前我们的应用程序使用“***-release-key.keystore”文件上传。

构建过程
gradle.properties 文件

MYAPP_RELEASE_STORE_FILE=APPNAME-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=APPNAMEapprelease
Run Code Online (Sandbox Code Playgroud)

build.gradle 文件

def getPassword(String currentUser, String keyChain) {
  def stdout = new ByteArrayOutputStream()
  def stderr = new ByteArrayOutputStream()
  exec { …
Run Code Online (Sandbox Code Playgroud)

android keystore gradle android-keystore fastlane

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

Fastlane 选择了错误的配置文件

我已经为我的 iOS 项目配置了 2 个目标和几个配置(第一个目标为 6 个,第二个目标为调试和发布)。

每个版本配置都有不同的 bundleID,因此选择了适当的临时分发配置文件(在gym 命令中):

desc "Build target1-config1"
  lane :deployTarget1 do
    gym(
      workspace: "myProj-ios.xcworkspace",
      scheme: "target1-config1",
      configuration: "target1-Release",
      export_method: "ad-hoc",
      export_options: {
        provisioningProfiles: {  
          "com.target1.config1" => "AdHocProvProfile1"
        }
      },
      output_directory: "./build",
      output_name: "target1-config1.ipa"
      )
    firebase_app_distribution(
      app: "xxxxxxxx",
      groups: "ios_app_testers",
      release_notes: "Automatic dev build from develop",
      firebase_cli_path: "/usr/local/bin/firebase",
      debug: true
      )
  end 
Run Code Online (Sandbox Code Playgroud)

尝试使用 AdhocProvProfile2 构建 target2 时,收到错误消息。看起来 fastlane 没有正确选择 provProfile(和 bundleID!)。此外,在项目设置中正确选择了配置文件。什么可能导致问题?没有外部健身房文件。

 There seems to be a mismatch between your provided `export_method` in gym
[11:15:55]: and the …
Run Code Online (Sandbox Code Playgroud)

xcode ios provisioning-profile fastlane

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

如何在 fastlane 中处理多个 iOS 目标(小部件)

我正在尝试向我们的项目添加小部件,而 fastlane 无法再自动化了。

  • 如何在 fastlane 中编辑小部件包标识符
  • 如何为正确的目标设置正确的配置文件

我需要的东西:

  • 在 xcode 中,应用程序目标应具有包标识符 xyz
  • 在 xcode 中,小部件目标应该具有包标识符 xyzwidget

应用目标 在此处输入图片说明 小部件目标 在此处输入图片说明

  • 在 xcode 中,应用程序目标应该具有与 adhoc xyz 匹配的配置文件
  • 在 xcode 中,小部件目标应该具有与 adhoc xyzwidget 匹配的配置文件

应用目标签名 在此处输入图片说明 小部件目标签名 在此处输入图片说明

当前 Fastfile 通道:

  desc "Build the app and send it to Testflight for testing"
  lane :build_adhoc do
    UI.message("app_name: #{app_name}")
    UI.message("app_identifier: #{app_identifier}")
    UI.message("apple_id: #{apple_id}")
    UI.message("team_id: #{team_id}")
    UI.message("sku: #{sku}")

    xcodeprojpath = "../ios/" + app_name + ".xcodeproj"

    proj = Xcodeproj::Project.open("../" + xcodeprojpath)

    proj.build_configurations.each do |item|
      item.build_settings["DEVELOPMENT_TEAM"] = team_id
      item.build_settings["PROVISIONING_PROFILE_SPECIFIER"] = match_ad_hoc_provisioning …
Run Code Online (Sandbox Code Playgroud)

xcode ios fastlane fastlane-match fastlane-gym

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

如何使用 Fastlane 启用配置文件中的功能?

我们的组织使用 Fastlane 来管理协同设计的东西。我们已经设置了 github 存储库并使用了一段时间。

对于 Xcode13,我们为我们的权利文件添加了时间敏感的用户通知功能。

  <key>com.apple.developer.usernotifications.time-sensitive</key>
  <true/>
Run Code Online (Sandbox Code Playgroud)

根据我的研究,我们似乎必须重新生成配置文件。我如何使用 Fastlane 实现这一目标?

使用sigh是正确的方法吗?我犹豫要不要采取任何行动,因为所有的 iOS 开发人员都共享证书 git repo,所以我非常谨慎。

xcode code-signing code-signing-entitlements fastlane fastlane-match

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