Cocoapods: Issue with thinning dSYM files

Created on 3 Nov 2017  路  5Comments  路  Source: CocoaPods/CocoaPods

Report

What did you do?

integrate a project with ArcGIS-Runtime-SDK-iOS pod

pod install

Followed by building of resulting workspace in Xcode for simulator

What did you expect to happen?

Project to build and run on simulator

What happened instead?

When building for simulator environment project failed whilst running [CP] Embed Pod Frameworks step. The above pod vendors a binary static framework that includes dSYM files but there are only FAT slices for device architectures not simulator. When building for simulator the script fails when stripping the last device architecture lipo fails.

fatal error: lipo: -remove's specified would result in an empty fat file

When building for device rather than simulator the build succeeds since the device slices are not removed. Note that commenting out:

strip_invalid_archs "$binary"

For the dSYM files allowed the app to build and run in the simulator.

Can this case be detected and the dSYM copy skipped rather than failing with the above error?

CocoaPods Environment

Stack

   CocoaPods : 1.4.0.beta.2
        Ruby : ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
    RubyGems : 2.6.14
        Host : Mac OS X 10.13.1 (17B48)
       Xcode : 9.1 (9B55)
         Git : git version 2.13.6 (Apple Git-96)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ 2f034bfbd3c18eef1ea398afa5cf9824c7f858fd
               urbanthings - [email protected]:urbanthings/podspecs.git @ 8a820e4853f85582b0db6eb5dd876fce61ffe322

Installation Source

Executable Path: /usr/local/bin/pod

Plugins

cocoapods-deintegrate : 1.0.1
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-stats       : 1.0.0
cocoapods-trunk       : 1.3.0
cocoapods-try         : 1.1.0

Podfile

use_frameworks!

target 'CPBug' do
    pod 'ArcGIS-Runtime-SDK-iOS'
end

Project that demonstrates the issue

A project to reproduce issue available here:
https://github.com/mwoollard/cpbug.git

easy vendored confirmed

Most helpful comment

Confirmed PR #7197 resolves issue. Now builds with suitable warning:

warning: [CP] Vendored binary '/Users/markw/Library/Developer/Xcode/DerivedData/CPBug-dsocezizfuodkxbqwmxvnfwfflzi/Build/Products/Debug-iphonesimulator/ArcGIS.framework.dSYM/Contents/Resources/DWARF/ArcGIS' contains architectures (armv7 arm64) none of which match the current build architectures (x86_64).

Thanks for prompt resolution!

All 5 comments

You should also contact the pod author to ship a fat dSYM but I do not think people will do the right thing so yes we should fix it to handle this case.

Thanks for quick response - I suspect they've excluded the simulator dSYM slices due to the overall size of their vendors contents which is over 1GB.

@mwoollard can you try this patch from this PR https://github.com/CocoaPods/CocoaPods/pull/7197?

Merged.

Confirmed PR #7197 resolves issue. Now builds with suitable warning:

warning: [CP] Vendored binary '/Users/markw/Library/Developer/Xcode/DerivedData/CPBug-dsocezizfuodkxbqwmxvnfwfflzi/Build/Products/Debug-iphonesimulator/ArcGIS.framework.dSYM/Contents/Resources/DWARF/ArcGIS' contains architectures (armv7 arm64) none of which match the current build architectures (x86_64).

Thanks for prompt resolution!

Was this page helpful?
0 / 5 - 0 ratings