leavez / cocoapods-binary

integrate pods in form of prebuilt frameworks conveniently, reducing compile time
MIT License
1.31k stars 206 forks source link

dSYMS missing for pods with binary: true when downloaded from App Store Connect #85

Open kenjitayama opened 5 years ago

kenjitayama commented 5 years ago

In the appDsyms.zip downloaded from App Store Connect, I'm missing dSYMS for pods which I set binary: true. I have enable_bitcode_for_prebuilt_frameworks! before all targets. Could it be some issue? Any suggestions what might be happening?

Versions:

$ bundle exec pod env | egrep 'CocoaPods |Xcode|cocoapods-binary'
   CocoaPods : 1.7.4
       Xcode : 10.2.1 (10E1001)
cocoapods-binary      : 0.4.4
plugin 'cocoapods-binary'
OlexandrStepanov commented 5 years ago

+1

palttuk commented 5 years ago

I have the same issues.

CocoaPods : 1.7.2 Xcode : 10.2.1 (10E1001) cocoapods-binary : 0.4.4 plugin 'cocoapods-binary'

dmallory commented 4 years ago

I ran into this as well. It looks like dsyms are generated (in the _Prebuild/GeneratedFramework locations) but don't seem to ever be linked up to the main Pod/ location that will get picked up for project config and be visible to Xcode. I see a @todo in Prebuild.rb that may be there for it.

As a workaround linking them with an external script seems to let them get found and written into the project config, and bundled with the final release binary, like expected.

In Podfile:

pre_install do |installer|
  system("add_precompiled_dsyms.sh")
end

in add_precompiled_dsyms.sh (or whatever you want to call the script):

#!/bin/sh
echo "Linking dsyms"
cd Pods/_Prebuild/GeneratedFrameworks
frameworks=(*)
cd ../../..
for framework in "${frameworks[@]}"; do
  ln -f -s "../_Prebuild/GeneratedFrameworks/$framework/$framework.framework.dSYM" "Pods/$framework/$framework.framework.dSYM"
done