I downloaded Xcode 6 GM and submitted two Swift apps to the app store today. Both passed all pre-upload verification and all the other stuff they had to pass and were succe
If you are using CocoaPods and your app is set to use arm64 only (i.e. there is only arm64 in your project's info.plist)
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
then you can try adding the following script in your Podfile to solve this issue.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['ARCHS'] = 'arm64'
end
end
end
AND
set all your projects' targets (not the targets in Pods) to arm64 only
CocoaPods Github issue reference
In Xcode, look in Build Settings for “Strip Debug Symbols During Copy” (COPY_PHASE_STRIP). When enabled, debug symbols are omitted from your .app and placed into a .dSYM file. Otherwise your .app contains these symbols. (By default, debug symbols are stripped from release builds for reasons of obfuscation. You probably shouldn’t change this setting for the release configuration.)
Make sure you check this option in project Build Settings
https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/
Worked for me by enabling bitcode - it was off before
Enable Bitcode - Yes
This happens if you are including debug information of your libraries with the project archive but are not including binaries.
In the "dSYMs" folder you will see several files. If you run the dwarfdump console command on these files you will get a list of UUID strings:
dwarfdump -u MyFile.dSYM
I'm sure you will find some matching UUIDs from Apple's email.
To avoid this warning you need to include with your archive only the dSYM
files of your application and not the libraries. For this you need to change the build configuration of the libraries to not generate a dSYM
file. Just search for "debug information format" in configuration and change it from DWARF with dSYM File
to DWARF
only.
For example, in the screenshot below you will find the Stripe iOS framework.
I have this issue due to the project has valid architecture arm64 where the CocoaPods targets have valid architecture arm64, armv7 and armv7s.
To check which target has which valid architecture follow following steps
Open terminal and give path of dSYMs folder.
Enter command dwarfdump --uuid *
and it will show list of UUIDs with valid architectures.
The UUID will match with Apple's warning email
The main project and cocoa pods target suppose to have same valid architecture. By doing this, it will solve the issue.
Had the same problem fixed it by having the same "General" => "Deployment info" => "Deployment target" for all my targets.