jerson / openpgp-mobile

Native code used in react-native-fast-openpgp and flutter-openpgp
https://github.com/jerson/flutter-openpgp
MIT License
24 stars 10 forks source link

Custom GO Build to support mixed go libraries in the same project for ios c-archive #25

Closed jerson closed 2 years ago

jerson commented 2 years ago

a custom go (only for iOS) renaming some internal functions adding a suffix to avoid errors like

duplicated symbol '__cgo_panic'

  Xcode's output:
  ↳
  Writing result bundle at path:
      /var/folders/3t/npmcdc8j3n13zwdx2631p_jr0000gn/T/flutter_tools.zJSlO8/flutt
      er_ios_build_temp_dirXtN0rZ/temporary_xcresult_bundle

  duplicate symbol '__cgo_panic' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(go.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(go.o)
  duplicate symbol '__cgo_topofstack' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(go.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(go.o)
  duplicate symbol '_crosscall2' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(go.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(go.o)
  duplicate symbol '__cgo_release_context' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000004.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000004.o)
  duplicate symbol '__cgo_sys_thread_start' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000005.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000005.o)
  duplicate symbol '_x_cgo_init' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000005.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000005.o)
  duplicate symbol '_x_cgo_set_context_function' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000006.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000006.o)
  duplicate symbol '__cgo_get_context_function' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000006.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000006.o)
  duplicate symbol '__cgo_try_pthread_create' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000006.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000006.o)
  duplicate symbol '_x_cgo_sys_thread_create' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000006.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000006.o)
  duplicate symbol '_x_cgo_notify_runtime_init_done' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000006.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000006.o)
  duplicate symbol '__cgo_wait_runtime_init_done' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000006.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000006.o)
  duplicate symbol '_x_cgo_unsetenv' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000007.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000007.o)
  duplicate symbol '_x_cgo_setenv' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000007.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000007.o)
  duplicate symbol '_x_cgo_callers' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000008.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000008.o)
  duplicate symbol '_x_cgo_thread_start' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000009.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000009.o)
  duplicate symbol '__cgo_yield' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000009.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000009.o)
  duplicate symbol '_crosscall_amd64' in:
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/fast_rsa/ios/lib
      rsa_bridge.a(000010.o)
      /Users/usuario/Desktop/sample_flu/ios/.symlinks/plugins/openpgp/ios/libo
      penpgp_bridge.a(000010.o)
  ld: 18 duplicate symbols for architecture x86_64