Reputation: 3282
I'm trying to upload a new version of an app that is already in the AppStore. Previous version was uploaded using Xcode 9.4. But now Xcode 10 will be required in order to get approval.
Sadly, Xcode is not being able to archive the project, so I'm getting stuck on the first step, not even being able to generate the binary for submission.
There is no error: According to Xcode, our archiving process has more than 2000 tasks, and is just gets stuck in arbitrary task (always the same). Xcode does not crash, does not show an error and does not complain. It just can't pass that task and the IDE stays there for ever.
We tried it in different machines and also tried two versions: the previous version of the app (that can be archived with Xcode 9.4) and a new version, successfully migrated to Swift 4.2.
UPDATE:
Upvotes: 10
Views: 9048
Reputation: 41
We were able to get it to Archive with DSYM by removing optimizations for Swift Compile in the build settings.
Build Settings -> Swift Compiler - Code Generation -> Release
set to "No Optimizations"
Original fix suggested by JacobJ84 on Apple forum: https://forums.developer.apple.com/thread/115185
Upvotes: 3
Reputation: 1732
Like LexTang hinted, one of the workarounds that works, without need to remove armv7 from valid architectures, is to set "DWARF" for "Debug Information Format". Unfortunately, this way we are loosing option for automated crash symbolication. This way finding cause of crash is much harder, but still not impossible. On following links you can find more info about symbolicating iOS crashes: https://coderwall.com/p/ezdcmg/symbolicating-an-ios-crash-log-without-the-original-dsym-file https://www.apteligent.com/technical-resource/symbolicating-an-ios-crash-report
Upvotes: 0
Reputation: 144
Finally, I removed "armv7" from "Valid Architectures" of project build settings. It archived! This means iPhone 4S is not compatible anymore. But, I don't think Apple will deprecate 4S in this way. By diving into the logs, I found that it stucks in creating dSYM symbols.
[17:15:49]: ▸ Generating 'ZUS_INHOUSE_DEV.app.dSYM'
[17:16:15]: ▸
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _lum_convert
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_hscale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _lum_h_scale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_cfmt_convert
[17:16:15]: ▸
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_chscale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _chr_h_scale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_no_chr
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _no_chr_scale
[17:16:30]: ▸ (arm64) could not find object file symbol for symbol _vlc_entry__audio_filter_libscaletempo_pitch
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸ (arm64) failed to insert symbol '_best_overlap_offset_float' in the debug map.
Thus, I guess, another workaround is change "Debug Infomation Format" from "DWARF with dSYM File" to "DWARF".
Upvotes: 13