AppsFlyerSDK / AppsFlyerFramework

AppsFlyer Apple SDK
https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS
Other
163 stars 90 forks source link

Xcode 15 linker warnings #251

Open kattouf opened 10 months ago

kattouf commented 10 months ago

Report

SDK Version

6.12.1 integrated via CocoaPods (AppsFlyerFramework/Dynamic)

What did you do?

Compile iOS project with new Xcode 15.0 Beta 6 (15A5219j)

What did you expect to happen?

Compilation completes without warnings

What happened instead?

Compilation competes with following warnings:

ld: warning: duplicate LC_RPATH are deprecated ('@executable_path/Frameworks')
ld: warning: duplicate LC_RPATH are deprecated ('@loader_path/Frameworks')

Please provide any other relevant information.

  1. I manually checked arm64 binary to confirm the warning by printing load commands:

    otool -arch arm64 -l Pods/AppsFlyerFramework/binaries/xcframework/dynamic/AppsFlyerLib.xcframework/ios-arm64_armv7/AppsFlyerLib.framework/AppsFlyerLib | rg -A 2 -B 1 LC_RPATH

    And got output, where we see that @executable_path/Frameworks and @loader_path/Frameworks are defined twice:

    Load command 18
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/Frameworks (offset 12)
    Load command 19
          cmd LC_RPATH
      cmdsize 40
         path @loader_path/Frameworks (offset 12)
    Load command 20
          cmd LC_RPATH
      cmdsize 40
         path @executable_path/Frameworks (offset 12)
    Load command 21
          cmd LC_RPATH
      cmdsize 40
         path @loader_path/Frameworks (offset 12)
  2. Initially Xcode doesn't specify which binary generates this warning, to find out it I copy compile command from Xcode's build log and run it directly in the terminal, adding argument for additional linker logging: -t Logs each file (object, archive, or dylib) the linker loads. Useful for debugging problems with search paths where the wrong library is loaded.

    /Applications/Xcode-15.0.0-Beta.6.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -t ....very long args list....
    ...
    /Users/kattouf/Library/Developer/Xcode/DerivedData/MyApp-cwrffmwjdlzeiyarzpcebcovosub/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/AppsFlyerFramework/Dynamic/AppsFlyerLib.framework/AppsFlyerLib
    ld: warning: duplicate LC_RPATH are deprecated ('@executable_path/Frameworks')
    ld: warning: duplicate LC_RPATH are deprecated ('@loader_path/Frameworks')
    ...
donnywdavis commented 9 months ago

I have noticed the same warning as well on beta 8, but only after updating to version 6.12.2. If I use version 6.11.0 with Xcode 15 beta 8 then I do not see this warning.

kattouf commented 9 months ago

Xcode 15 is coming soon, do you have any updates?

vg-identance commented 9 months ago

bump

af-obodovskyi commented 9 months ago

@kattouf we will fix this issue in the upcoming release of the AppsFlyerSDK

omarzl commented 9 months ago

bump

jszumski commented 9 months ago

I'm also interested in a fix here

FurkanEmiroglu commented 9 months ago

I'm waiting for a solution too.

ZevEisenberg commented 9 months ago

This might help https://indiestack.com/2023/10/xcode-15-duplicate-library-linker-warnings/

kattouf commented 7 months ago

bump