为什么我需要在使用健身房构建项目时添加use_legacy_build_api:true?
我使用Xcode 7.3和健身房1.6.2,
我建立了一个新的Projct(OC或swift是相同的),
以下是错误输出:
2016-04-22 18:45:46.071 xcodebuild[135:10371572] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/BBUFullIssueNavigator.xcplugin' not present in DVTPlugInCompatibilityUUIDs
2016-04-22 18:45:46.246 xcodebuild[135:10371572] ### Failed to load Addressbook class CNContactNameFormatter
2016-04-22 18:45:46.300 xcodebuild[135:10371572] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/4w/fpkx9n7s3gnbcxfym8mqr18m0000gn/T/GymDemo_2016-04-22_18-45-46.299.xcdistributionlogs'.
2016-04-22 18:45:46.585 xcodebuild[135:10371572] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7ff847a3e450>: Error Domain=IDEDistributionErrorDomain Code=1 "(null)"
error: exportArchive: The operation couldn’t be completed. (IDEDistributionErrorDomain error 1.)
Error Domain=IDEDistributionErrorDomain Code=1 "(null)"
** EXPORT FAILED **
[18:45:46]: Exit status: 70
[!] Error packaging up the application
答案 0 :(得分:0)
我不知道为什么会有错误,但我只是使用fastlane init而且我改变了快速通道,一切都没问题。这是我的fastfile:
production.ERROR: exception 'ErrorException' with message 'Undefined variable: categories' in...
答案 1 :(得分:0)
仅当您使用Xcode 6或之前运行时,才应使用标记use_legacy_build_api
。
Felix Krause本身在Github上解释:
什么是use_legacy_build_api ?
它使用的是Xcode 6构建API,不再受官方支持。
在Xcode 6和7之间发生了什么变化,对构建/打包过程进行了一些更改,所以为了适应新的流程并仍然能够使用旧的fastlane引入这个新的标志,基本上告知使用哪个命令。
Xcode 7
由于您正在使用Xcode 7,因此您需要指定导出应用程序的方式,这与您在使用Xcode时需要做出的选择相同:
您还可以在Apple文档Exporting Your App
上阅读有关导出方法的更多信息健身房
正如上面使用Fastlane所解释的那样,您应该相应地指定export_method
字段:
gym(export_method:"app-store|ad-hoc|package|enterprise|development|developer-id")
您可以在fastlane actions documentation
上阅读有关健身房及其参数的更多信息