Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[ios] Add simulator dSYM file to build output. #5740

Merged
merged 1 commit into from
Jul 21, 2016

Conversation

boundsj
Copy link
Contributor

@boundsj boundsj commented Jul 20, 2016

Fixes #5726

Our release builds for device (with lipoed simulator binary) create a dSYM files for both the device and simulator. However the script only copied the device dSYM file to the output location.

This adds a step to create a dSYM file with all relevant architectures.

cc @1ec5 @incanus

@boundsj boundsj added the build label Jul 20, 2016
@boundsj boundsj added this to the ios-v3.4.0 milestone Jul 20, 2016
@boundsj boundsj self-assigned this Jul 20, 2016
@mention-bot
Copy link

@boundsj, thanks for your PR! By analyzing the annotation information on this pull request, we identified @1ec5, @incanus and @frederoni to be potential reviewers

if [[ -e ${PRODUCTS}/${BUILDTYPE}-iphoneos/${NAME}.framework.dSYM ]]; then
cp -r ${PRODUCTS}/${BUILDTYPE}-iphoneos/${NAME}.framework.dSYM \
${OUTPUT}/dynamic/
fi
step "Copying simulator dSYM"
if [[ -e ${PRODUCTS}/${BUILDTYPE}-iphonesimulator//${NAME}.framework.dSYM ]]; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: ///

@1ec5
Copy link
Contributor

1ec5 commented Jul 20, 2016

👍

@friedbunny
Copy link
Contributor

Instead of copying and bundling two dSYMs, we should be able to lipo/libtool the two dSYM binaries together into one Mapbox.framework.dSYM that includes all of the architectures — I’ll fiddle with this.

@boundsj boundsj force-pushed the boundsj-include-simulator-dsym branch from 52d912b to f18f742 Compare July 20, 2016 19:57
@friedbunny
Copy link
Contributor

friedbunny commented Jul 20, 2016

So it is possible to combine the two dSYMs:

lipo \
Mapbox.framework.iphone.dSYM/Contents/Resources/DWARF/Mapbox \
Mapbox.framework.simulator.dSYM/Contents/Resources/DWARF/Mapbox \
-create -output combined
dwarfdump --uuid combined
UUID: BEE67D67-4AE0-3A6D-849D-C50466495780 (armv7) combined
UUID: 3E81F8AE-E7CE-3C8D-8B7C-98CB4987660C (i386) combined
UUID: C95B9414-0E66-3949-AFC8-23115D7D3B92 (x86_64) combined
UUID: 30EE62D9-C0C0-357E-977B-31CC709FB419 (arm64) combined

... the resulting dSYM binary filesize is also the sum of both, though.

@friedbunny
Copy link
Contributor

friedbunny commented Jul 20, 2016

Pushed lipo changes in 7ffcaaddf97ad0de02e26deafd90ab4d8f1f0f6d, which include a bit more verbosity:

▸ Linking Mapbox
▸ Generating 'Mapbox.framework.dSYM'
▸ Touching Mapbox.framework
▸ Signing /mapbox-gl-native/build/ios/Build/Products/Release-iphoneos/Mapbox.framework
▸ Build Succeeded
* Copying dynamic framework into place for iOS devices
* Copying dSYM
* Merging device and simulator dSYMs…
Architectures in the fat file: build/ios/pkg/dynamic/Mapbox.framework.dSYM/Contents/Resources/DWARF/Mapbox are: armv7 i386 x86_64 arm64 
* Merging simulator dynamic library into device dynamic library…

@1ec5
Copy link
Contributor

1ec5 commented Jul 20, 2016

Remember to add a blurb to the changelog.

Our release builds for device (with lipoed simulator binary) create
a dSYM files for both the device and simulator. However the script
only copied the device dSYM file to the output location.

This adds a step to lipo together both the device and simulator dSYM files.
Mapbox.framework.dSYM now holds armv7 and arm64 slices.
@boundsj boundsj force-pushed the boundsj-include-simulator-dsym branch from 7ffcaad to 64a06dd Compare July 21, 2016 17:54
@boundsj boundsj merged commit e686d32 into master Jul 21, 2016
@boundsj boundsj deleted the boundsj-include-simulator-dsym branch July 21, 2016 18:51
friedbunny pushed a commit that referenced this pull request Oct 28, 2016
Our release builds for device (with lipoed simulator binary) create
a dSYM files for both the device and simulator. However the script
only copied the device dSYM file to the output location.

This adds a step to lipo together both the device and simulator dSYM files.
Mapbox.framework.dSYM now holds armv7 and arm64 slices.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants