简体   繁体   English

Fastlane Gym 配置 Ad Hoc 分发

[英]Fastlane Gym configuration Ad Hoc Distribution

I want to setup fastlane for my project.我想为我的项目设置 fastlane。 I got few targets (app, watchkit app and watchkit extension) plus few third party projects in my workspace.我的工作区中几乎没有目标(应用程序、watchkit 应用程序和 watchkit 扩展程序)以及很少的第三方项目。

My problem is that I can't download a build from crashlytics when I upload it with fastlane, but I can do it when I archive build manually.我的问题是,当我使用 fastlane 上传构建时,我无法从 crashlytics 下载构建,但是当我手动存档构建时,我可以做到。

This is my fastlane这是我的快车道

lane :beta do

sh 'bash ./update_version.sh'

gym(scheme: "MyApp", 
  workspace: "MyApp.xcworkspace",
  configuration: "Ad Hoc Distribution")

crashlytics(
  api_token: "d543d4a5b27009b...",
  build_secret: "fafb26aa69fa...",
  groups:"myapp-team",
  notifications: true
)
end

I add configuration property for gym, because it use Release by default, and I want to use Ad Hoc configuration for distribution, because all Ad Hoc profiles set up in this configuration.我为gym添加配置属性,因为它默认使用Release,我想使用Ad Hoc配置进行分发,因为所有Ad Hoc配置文件都在此配置中设置。

As far as I understand, gym command with configuration property will set Ad Hoc configuration for all targets and projects inside the workspace.据我了解,带有配置属性的 Gym 命令将为工作区内的所有目标和项目设置 Ad Hoc 配置。 Right?对吗?

I tried to emulate what fastlane will do and I set Atchive -> Build Configuration -> Ad Hoc manually in all targets' and projects' Schemes and archive my project.我试图模拟 fastlane 会做什么,并在所有目标和项目的 Schemes 中手动设置Atchive -> Build Configuration -> Ad Hoc并存档我的项目。 After that I upload this archive to crashlytics and was able to download this build.之后,我将此存档上传到 crashlytics 并能够下载此版本。 So, my profiles are fine and they include my device.所以,我的个人资料很好,它们包括我的设备。

How to check setup fastlane to use exactly same configurations/profiles?如何检查设置 fastlane 以使用完全相同的配置/配置文件?

Thank you.谢谢。

UPD UPD

One more additional check, which should help with some details.另一项额外检查,应该有助于了解一些细节。

I archived project with Xcode, then create IPA file and run this command from fabric's doc - https://docs.fabric.io/apple/beta/build-tools.html我使用 Xcode 归档项目,然后创建 IPA 文件并从fabric 的文档运行此命令 - https://docs.fabric.io/apple/beta/build-tools.html

/path/to/Crashlytics.framework/submit API_KEY BUILD_SECRET \
-ipaPath path.to/my.ipa \
-groupAliases my-team \
-notifications YES

After that I was able to download build.在那之后,我能够下载构建。

Thanks for Todd from fastlane.感谢来自 fastlane 的 Todd。

UPD 2更新版本 2

This is the last part of my fastlane output这是我的 fastlane 输出的最后一部分

...
Copying myapp/Resources/sound/connection_found.wav
[09:33:52]: ▸ Copying myapp/Resources/sound/connection_lost.wav
[09:33:52]: ▸ Copying myapp.strings
[09:33:52]: ▸ Copying myapp/Resources/sound/kicked.wav
[09:33:56]: ▸ Processing myapp-Info.plist
[09:33:56]: ▸ Generating 'myapp.app.dSYM'
[09:33:59]: ▸ Copying /Users/evgeniitrapeznikov/Library/Developer/Xcode/DerivedData/myapp-dfrdqdmlsgvypadklcuzikqgrnzs/Build/Intermediates/ArchiveIntermediates/myapp/BuildProductsPath/Ad\ Hoc\ Distribution-iphoneos/myapp\ WatchKit\ Extension.appex
[09:33:59]: ▸ skipping copy phase strip, binary is code signed: /Users/evgeniitrapeznikov/Library/Developer/Xcode/DerivedData/myapp-dfrdqdmlsgvypadklcuzikqgrnzs/Build/Intermediates/ArchiveIntermediates/myapp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/myapp WatchKit Extension.appex/myapp WatchKit App.app/_WatchKitStub/WK
[09:33:59]: ▸ skipping copy phase strip, binary is code signed: /Users/evgeniitrapeznikov/Library/Developer/Xcode/DerivedData/myapp-dfrdqdmlsgvypadklcuzikqgrnzs/Build/Intermediates/ArchiveIntermediates/myapp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/myapp WatchKit Extension.appex/myapp WatchKit App.app/myapp WatchKit App
[09:33:59]: ▸ skipping copy phase strip, binary is code signed: /Users/evgeniitrapeznikov/Library/Developer/Xcode/DerivedData/myapp-dfrdqdmlsgvypadklcuzikqgrnzs/Build/Intermediates/ArchiveIntermediates/myapp/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/myapp WatchKit Extension.appex/myapp WatchKit Extension
[09:33:59]: ▸ Running script 'Run Script'
[09:33:59]: ▸ Touching myapp.app
[09:33:59]: ▸ Signing /Users/evgeniitrapeznikov/Library/Developer/Xcode/DerivedData/myapp-dfrdqdmlsgvypadklcuzikqgrnzs/Build/Intermediates/ArchiveIntermediates/myapp/InstallationBuildProductsLocation/Applications/myapp.app
[09:34:00]: ▸ Touching myapp.app.dSYM
[09:34:00]: ▸ Archive Succeeded
[09:34:00]: Generated plist file with the following values:
[09:34:00]: ▸ -----------------------------------------
[09:34:00]: ▸ {
[09:34:00]: ▸   "method": "app-store",
[09:34:00]: ▸   "uploadSymbols": true,
[09:34:00]: ▸   "uploadBitcode": false
[09:34:00]: ▸ }
[09:34:00]: ▸ -----------------------------------------
[09:34:00]: $ /usr/bin/xcrun /Users/evgeniitrapeznikov/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.48.0/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/z7/3krkc5211ng2c090_qhd2tlm0000gn/T/gym_config20170726-23446-a2yb0t.plist' -archivePath /Users/evgeniitrapeznikov/Library/Developer/Xcode/Archives/2017-07-26/myapp\ 2017-07-26\ 09.32.18.xcarchive -exportPath '/var/folders/z7/3krkc5211ng2c090_qhd2tlm0000gn/T/gym_output20170726-23446-hafxer'
[09:34:08]: Compressing 2 dSYM(s)
[09:34:08]: $ cd '/Users/evgeniitrapeznikov/Library/Developer/Xcode/Archives/2017-07-26/myapp 2017-07-26 09.32.18.xcarchive/dSYMs' && zip -r '/Users/evgeniitrapeznikov/Desktop/myapp/myapp-ios-client/myapp.app.dSYM.zip' *.dSYM
[09:34:09]: ▸ updating: myapp WatchKit Extension.appex.dSYM/ (stored 0%)
[09:34:09]: ▸ updating: myapp WatchKit Extension.appex.dSYM/Contents/ (stored 0%)
[09:34:09]: ▸ updating: myapp WatchKit Extension.appex.dSYM/Contents/Info.plist (deflated 51%)
[09:34:09]: ▸ updating: myapp WatchKit Extension.appex.dSYM/Contents/Resources/ (stored 0%)
[09:34:09]: ▸ updating: myapp WatchKit Extension.appex.dSYM/Contents/Resources/DWARF/ (stored 0%)
[09:34:09]: ▸ updating: myapp WatchKit Extension.appex.dSYM/Contents/Resources/DWARF/myapp WatchKit Extension (deflated 64%)
[09:34:09]: ▸ updating: myapp.app.dSYM/ (stored 0%)
[09:34:09]: ▸ updating: myapp.app.dSYM/Contents/ (stored 0%)
[09:34:09]: ▸ updating: myapp.app.dSYM/Contents/Info.plist (deflated 52%)
[09:34:09]: ▸ updating: myapp.app.dSYM/Contents/Resources/ (stored 0%)
[09:34:09]: ▸ updating: myapp.app.dSYM/Contents/Resources/DWARF/ (stored 0%)
[09:34:09]: ▸ updating: myapp.app.dSYM/Contents/Resources/DWARF/myapp (deflated 69%)

[09:34:09]: Successfully exported and compressed dSYM file
[09:34:09]: Successfully exported and signed the ipa file:
[09:34:09]: /Users/evgeniitrapeznikov/Desktop/myapp/myapp-ios-client/myapp.ipa
[09:34:09]: -------------------------
[09:34:09]: --- Step: crashlytics ---
[09:34:09]: -------------------------
[09:34:09]: Uploading the build to Crashlytics Beta. Time for some ☕️.
[09:34:26]: Build successfully uploaded to Crashlytics Beta 🌷
[09:34:26]: Visit https://fabric.io/_/beta to add release notes and notify testers.
[09:34:26]: -------------------
[09:34:26]: --- Step: slack ---
[09:34:26]: -------------------
[09:34:28]: Successfully sent Slack notification

+------+---------------------+-------------+
|             fastlane summary             |
+------+---------------------+-------------+
| Step | Action              | Time (in s) |
+------+---------------------+-------------+
| 1    | Verifying required  | 0           |
|      | fastlane version    |             |
| 2    | default_platform    | 0           |
| 3    | bash                | 0           |
|      | ./update_version.sh |             |
| 4    | gym                 | 118         |
| 5    | crashlytics         | 16          |
| 6    | slack               | 1           |
+------+---------------------+-------------+

[09:34:28]: fastlane.tools finished successfully 🎉

我刚刚将export_method: "ad-hoc"到了健身房并且它有效。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM