我想为我的项目设置快车道。我的工作空间中的目标(应用程序、watchkit 应用程序和 watchkit 扩展(和很少的第三方项目。
我的问题是,当我使用 fastlane 上传构建时,我无法从 crashlytics 下载构建,但是当我手动存档构建时,我可以这样做。
这是我的快车道
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
我为 gym 添加了配置属性,因为它默认使用 Release,并且我想使用 Ad Hoc 配置进行分发,因为在此配置中设置了所有 Ad Hoc 配置文件。
据我了解,具有配置属性的 gym 命令将为工作区内的所有目标和项目设置 Ad Hoc 配置。右?
我试图模拟快车道将做什么,并在所有目标和项目的计划中手动设置Atchive
->Build Configuration
->Ad Hoc
并存档我的项目。之后,我将这个存档上传到崩溃,并能够下载这个版本。所以,我的个人资料很好,它们包括我的设备。
如何检查设置快车道以使用完全相同的配置/配置文件?
谢谢。
UPD
再进行一次额外的检查,这应该有助于一些细节。
我用Xcode存档了项目,然后创建IPA文件并从织物的文档运行此命令 - 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
之后,我能够下载构建。
感谢快车道的托德。
UPD 2
这是我快车道输出的最后一部分
...
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"
添加到健身房,它可以工作。