Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't import AppMetrica 5.0.0+: error: duplicate interface definition for class 'AMAArrayIterator' #1027

Open
krypt-lx opened this issue Apr 20, 2024 · 3 comments

Comments

@krypt-lx
Copy link
Contributor

krypt-lx commented Apr 20, 2024

Can't compile target AppMetricaCore of AppMetrica.
The full error:

ERROR: /private/var/tmp/_bazel_krypt/de9844abaa047ea4e0868fa95089f211/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/BUILD.bazel:2511:13: Compiling AppMetricaNetwork/Sources/AMANetworkingUtilities.m failed: (Exit 1): sandbox-exec failed: error executing command 
  (cd /private/var/tmp/_bazel_krypt/de9844abaa047ea4e0868fa95089f211/sandbox/darwin-sandbox/13/execroot/_main && \
  exec env - \
    APPLE_SDK_PLATFORM=iPhoneSimulator \
    APPLE_SDK_VERSION_OVERRIDE=17.2 \
    DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
    PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin \
    SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.2.sdk \
    TMPDIR=/var/folders/py/np32xt611ds3fb8l6djrc8s40000gn/T/ \
    XCODE_VERSION_OVERRIDE=15.1.0.15C65 \
    ZERO_AR_DATE=1 \
  /usr/bin/sandbox-exec -f /private/var/tmp/_bazel_krypt/de9844abaa047ea4e0868fa95089f211/sandbox/darwin-sandbox/13/sandbox.sb /var/tmp/_bazel_krypt/install/ba45a1a358416fb2acebb17d65c986f3/process-wrapper '--timeout=0' '--kill_delay=15' '--stats=/private/var/tmp/_bazel_krypt/de9844abaa047ea4e0868fa95089f211/sandbox/darwin-sandbox/13/stats.out' external/bazel_tools~cc_configure_extension~local_config_cc/wrapped_clang -target arm64-apple-ios14.0-simulator '-D_FORTIFY_SOURCE=1' -fstack-protector -fcolor-diagnostics -Wall -Wthread-safety -Wself-assign -fno-omit-frame-pointer -O0 -DDEBUG 'DEBUG_PREFIX_MAP_PWD=.' -Wshorten-64-to-32 -Wbool-conversion -Wconstant-conversion -Wduplicate-method-match -Wempty-body -Wenum-conversion -Wint-conversion -Wunreachable-code -Wmismatched-return-types -Wundeclared-selector -Wuninitialized -Wunused-function -Wunused-variable -iquote external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios -iquote bazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/include -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/include -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/include/AppMetricaNetwork -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/include/AppMetricaNetwork -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaLog/Sources/include -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaLog/Sources/include -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaLog/Sources/include/AppMetricaLog -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaLog/Sources/include/AppMetricaLog -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaLog -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include/AppMetricaCoreUtils -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include/AppMetricaCoreUtils -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform/Sources/include -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform/Sources/include -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform/Sources/include/AppMetricaPlatform -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform/Sources/include/AppMetricaPlatform -Ibazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform -MD -MF bazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/_objs/AppMetricaNetwork.rspm/arc/AMANetworkingUtilities.d '-DSWIFT_PACKAGE=1' -DOS_IOS -fno-autolink -isysroot __BAZEL_XCODE_SDKROOT__ -F__BAZEL_XCODE_SDKROOT__/System/Library/Frameworks -F__BAZEL_XCODE_DEVELOPER_DIR__/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -fobjc-arc -fexceptions -fasm-blocks '-fobjc-abi-version=2' -fobjc-legacy-dispatch -Wno-all -fblocks -fobjc-arc -fPIC '-fmodule-name=AppMetricaNetwork' -includebazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork.rspm_objc_resource_bundle_accessor_hdr_ObjcResourceBundleAccessor.h -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/include -Iexternal/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/include/AppMetricaNetwork -fmodules '-fmodules-cache-path=bazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/_objc_module_cache' -O0 '-DDEBUG=1' -c external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/AMANetworkingUtilities.m -o bazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/_objs/AppMetricaNetwork.rspm/arc/AMANetworkingUtilities.o)
While building module 'AppMetricaPlatform' imported from external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/AMANetworkingUtilities.m:4:
In file included from <module-includes>:1:
In file included from bazel-out/ios-sim_arm64-min14.0-applebin_ios-ios_sim_arm64-fastbuild-ST-ba74745ca763/bin/external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform/../../../../../../external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaPlatform/Sources/include/AppMetricaPlatform/AMAApplicationState.h:2:
In file included from external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include/AppMetricaCoreUtils/AppMetricaCoreUtils.h:3:
external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include/AppMetricaCoreUtils/AMAArrayIterator.h:8:1: error: duplicate interface definition for class 'AMAArrayIterator'
@interface AMAArrayIterator : NSObject <AMAResettableIterable>
^
external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaCoreUtils/Sources/include/AppMetricaCoreUtils/AMAArrayIterator.h:8:12: note: previous definition is here
@interface AMAArrayIterator : NSObject <AMAResettableIterable>
           ^
external/rules_swift_package_manager~0.29.2~swift_deps~swiftpkg_appmetrica_sdk_ios/AppMetricaNetwork/Sources/AMANetworkingUtilities.m:4:9: fatal error: could not build module 'AppMetricaPlatform'
#import <AppMetricaPlatform/AppMetricaPlatform.h>
 ~~~~~~~^
2 errors generated.

The line I'm using to import the package:

        .package(url: "https://github.com/appmetrica/appmetrica-sdk-ios", from: "5.2.0"),

it has multiple public targets inside, including AppMetricaCore

@krypt-lx
Copy link
Contributor Author

krypt-lx commented Apr 20, 2024

Interestingly, adding

#ifndef __AMAArrayIterator_h
#define __AMAArrayIterator_h
<..>
#endif

does nothing
and message

#warning ("test from AMAArrayIterator.h")

in this file echoes only once

@krypt-lx
Copy link
Contributor Author

krypt-lx commented Apr 20, 2024

Ok, I see some weird behaviour during tests in xcode project generated by rules_xcodeproj:
The file in question:
https://github.com/appmetrica/appmetrica-sdk-ios/blob/608024e089590dfdebd88a857df331a0bf0ac97d/AppMetricaCoreUtils/Sources/include/AppMetricaCoreUtils/AMAArrayIterator.h

  • If I comment line 7 (without it behaviour is unstable)
  • change classname at line 8 (AMAArrayIterator_Test for example)
  • compile the project for the first time - I have a message about unknown class AMAArrayIterator (which is reasonable)
  • compile the project without further edits second time - I have the message about duplicated symbols again about the new name (AMAArrayIterator_Test)

@krypt-lx
Copy link
Contributor Author

krypt-lx commented Apr 20, 2024

#987
This one might be related, actually? It also looks like a file conflicting with itself

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant