Xcode 10命令行构建:归档失败,出现Fabric Info.plist错误

k5hmc34c  于 2023-11-21  发布在  其他
关注(0)|答案(7)|浏览(160)

我有Jenkins服务器用于自动构建iOS项目,该项目有两个目标。项目使用命令行实用程序xcodebuild构建。
完整的命令是

/usr/bin/xcodebuild -workspace "Our project.xcworkspace"
    -scheme "First target"
    -configuration Release
    archive
    DEVELOPMENT_TEAM=TEAMCODE
    -allowProvisioningUpdates

字符串

/usr/bin/xcodebuild -workspace "Our project.xcworkspace"
    -scheme "Second target"
    -configuration Release
    archive
    DEVELOPMENT_TEAM=TEAMCODE
    -allowProvisioningUpdates


在我没有更新Xcode到版本10之前,它工作得很好。但是每次更新后,我都看到错误。
错误:Fabric:Info.plist错误
无法处理路径/Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/Our_project-xxxx/Build/Intermediates.noindex/ArchiveIntermediates/Our project/BuildProductsPath/Release-iphoneos/First www.example.com的Info.plistapplication.app/Info.plist这可能是时间问题,确保Fabric运行脚本构建阶段是最后一个构建阶段,并且没有其他脚本将Our application.app从Xcode生成它的位置移动。您还可以添加'$(BUILD_PRODUCTS_PATH)/$(INFOPLIST_PATH)'作为Fabric运行脚本构建阶段的“输入文件”依赖项。

酒店ARCHIVE FAILURE

在谷歌搜索和阅读错误描述后,我确实在Xcode中打开了Build phases选项卡并设置了它(将Run script项移动到底部,选中Run script only when installing并将$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)添加到输入文件,并删除空的Run script项)。
从命令行手动构建现在可以工作了-看起来问题解决了。即使是Jenkins也构建了第一个目标!但是第二个目标没有同样的错误。
我确实打开了项目,查看Build phages选项卡,看到Run script项目移动到上方,出现了新的空Run script。之后我做了实验:设置Build phages,在Xcode GUI中重建项目,看到阶段再次重新排序。所以,它发生在构建期间或之后。
如何修复此错误?
比如说,我可以从命令行手动命令构建阶段吗?如果可以,我只需在Jenkins步骤中追加行。
另外:这个错误只出现在命令行构建中。当我从Xcode GUI构建项目时,它总是成功的。

fnvucqvd

fnvucqvd1#

好的,我从Fabrics得到了解决方案。对于Xcode 10,在XCode $(BUILD_PRODUCTS_PATH)/$(INFOPLIST_PATH)中的构建阶段将此路径添加到Input Files
x1c 0d1x的数据

jljoyd4f

jljoyd4f2#

我把“运行脚本”和crashlytics移到了“嵌入pod框架”和“复制pod资源”之后,这对

有帮助。

3vpjnl9f

3vpjnl9f3#

我找到了类似拐杖的解决方案:在Xcode GUI中选择Legacy Build System,在File-> Workspace Settings-> Build System
为什么这个解决方案不好?因为:

  • Legacy Build SystemNew Build System (Default)慢。
  • 这不是Xcode设置,而是工作区。即在Jenkins中清理工作区文件夹或某些版本控制系统操作后,会将此设置重置为默认值,并且会再次选择非工作选项。
bfnvny8b

bfnvny8b4#

使用以下方法完成Crashlytics和/或Fabric设置的解决方案:
1.转到生成设置
1.搜索“企业信息格式”
1.将“DWARF”的值从“DWARF”更改为“DWARF with dSYM File”
1.重新构建您的项目。
更改“DWARF”
x1c 0d1x的数据
到“DWARF with dSYM File”


y3bcpkx1

y3bcpkx15#

我删除了项目的衍生数据,解决了问题

wfauudbj

wfauudbj6#

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)放在Input Files下,然后放入Build PhasesRun Script

8i9zcol2

8i9zcol27#

Xcode 15.0:
将Run script项移动到底部,选中Run script only when installing(仅在安装时运行脚本),并将$(BUILD_PRODUCTS_PATH)/$(INFOPLIST_PATH)添加到Input files(输入文件)

相关问题