繁体   English   中英

xcodebuild生成与Xcode 7.0.1不同的存档

[英]xcodebuild produces different archive to Xcode 7.0.1

我正在使用xcodebuild从工作区生成档案。 我使用以下命令:

xcodebuild -workspace MyProject.xcworkspace -scheme "MyProject" 
           -destination generic/platform=iOS archive 
           -archivePath "../PathToArchive/MyProject.xcarchive

(为了便于阅读,我将其分成多行)

此命令生成一个MyProject.xcarchive 但是,它会生成通用的 “ Xcode存档”而不是“ iOS App存档”。 无法将其提交到App Store。

如果我使用Xcode.app版本7.0.1(7A1001)而不是xcodebuild存档完全相同的工作区和方案,那么我会得到一个“ iOS App存档”,可以将其提交到App Store。

检查这两个xcarchive的内容表明,主要区别在于捆绑的Info.plist文件。 Xcode.app生成的一个包含附加的ApplicationProperties字典,其中包含版本控制和签名详细信息。 xcodebuild生成的代码在其Info.plist中缺少这些详细信息。

复制Xcode.app产生的Info.plist到xcarchive所产生xcodebuild “修复”存档,可以提交到App Store。 但是,这不是解决方案,因为这意味着我无法在命令行上构建。

请注意,执行xcodebuild -version输出:

Xcode 7.0.1
Build version 7A1001

编辑: 有时 xcodebuild似乎会生成正确的iOS App存档,而不是Generic存档 我不确定为什么会这样。 这是不一致的。

您正在使用可可豆吗? 如果是这样,请尝试使用预发行版本gem install cocoapods --pre 由于复制吊舱阶段不应该出现在某个地方,因此出现了问题,请访问https://github.com/CocoaPods/CocoaPods/issues/4021,您应该找到适合您的解决方案。

经过很多挫折之后,我发现了xcodebuild产生错误的xcarchive软件包的原因。

我必须为正在构建的方案禁用“并行构建”选项。

并行构建设置

取消选中此选项后,构建会花费更长的时间,但是xcodebuild始终生成“ iOS App Archive”而不是“ Generic Archive”。 启用“ Parallelize Build”后, xcodebuild将在90%的时间内生成“通用存档”,偶尔会生成正确的存档。

因为我想 Xcode我的生成时间不受影响,我离开了我的计划中启用了“并行化编译”选项。 我复制了要使用xcodebuild构建的方案,并取消了仅针对部署方案的选项。

暂无
暂无

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

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