I have Jenkins server for autobuilding iOS project that has two targets.
Project builds with command-line utility xcodebuild
.
Full commands are
/usr/bin/xcodebuild -workspace "Our project.xcworkspace" -scheme "First target" -configuration Release archive DEVELOPMENT_TEAM=TEAMCODE -allowProvisioningUpdates
and
/usr/bin/xcodebuild -workspace "Our project.xcworkspace" -scheme "Second target" -configuration Release archive DEVELOPMENT_TEAM=TEAMCODE -allowProvisioningUpdates
Before I did update Xcode to version 10 it works perfectly. But after updating each time I see error
error: Fabric: Info.plist Error
Unable to process Info.plist at path /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/Our_project-xxxx/Build/Intermediates.noindex/ArchiveIntermediates/Our project/BuildProductsPath/Release-iphoneos/First application.app/Info.plist This could be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved Our application.app from the location Xcode generated it. You can also add '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' as an "Input Files" dependency for your Fabric run script build phase.
** ARCHIVE FAILED **
After googling and reading error description I did open Build phases
tab in Xcode and set up it (move Run script
item to bottom, check Run script only when installing
and add $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
to Input files and also remove empty Run script
item).
Manual building from command line now works - it seems like problem solved. Even Jenkins did build first target! But secong target did not with same error.
I did open project, look Build phases tab and saw that Run script
item moved above and new empty Run script
appeared.
After that I did experiment: set up Build phases, rebuild project in Xcode GUI and saw that phases reordered again. So, it occurs during or after building.
How can I fix this bug?
Say, can I order build phases manually from command line? If yes, I just append row in Jenkins step.
In addition: this error appears only in command-line building. When I build project from Xcode GUI it always succeeds.
Build phases
tab in Xcode and set up it (moveRun script
item to bottom, checkRun script only when installing
and add$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
to Input files and also remove emptyRun script
item)." – Caecum