我有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构建项目时,它总是成功的。
7条答案
按热度按时间fnvucqvd1#
好的,我从Fabrics得到了解决方案。对于Xcode 10,在XCode $(BUILD_PRODUCTS_PATH)/$(INFOPLIST_PATH)中的构建阶段将此路径添加到Input Files
x1c 0d1x的数据
jljoyd4f2#
我把“运行脚本”和crashlytics移到了“嵌入pod框架”和“复制pod资源”之后,这对
有帮助。
3vpjnl9f3#
我找到了类似拐杖的解决方案:在Xcode GUI中选择
Legacy Build System
,在File
->Workspace Settings
->Build System
。为什么这个解决方案不好?因为:
Legacy Build System
比New Build System (Default)
慢。bfnvny8b4#
使用以下方法完成Crashlytics和/或Fabric设置的解决方案:
1.转到生成设置
1.搜索“企业信息格式”
1.将“DWARF”的值从“DWARF”更改为“DWARF with dSYM File”
1.重新构建您的项目。
更改“DWARF”
x1c 0d1x的数据
到“DWARF with dSYM File”
的
y3bcpkx15#
我删除了项目的衍生数据,解决了问题
wfauudbj6#
将
$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
放在Input Files
下,然后放入Build Phases
Run Script
8i9zcol27#
Xcode 15.0:
将Run script项移动到底部,选中Run script only when installing(仅在安装时运行脚本),并将$(BUILD_PRODUCTS_PATH)/$(INFOPLIST_PATH)添加到Input files(输入文件)