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

iOS: Can't merge user_target_xcconfig for pod targets: ["MediaPipeTasksCommon", "MediaPipeTasksGenAIC"]. #5302

Closed
DarrylBayliss opened this issue Apr 8, 2024 · 8 comments
Assignees
Labels
platform:ios MediaPipe IOS issues task::all All tasks of MediaPipe task:LLM inference Issues related to MediaPipe LLM Inference Gen AI setup type:feature Enhancement in the New Functionality or Request for a New Solution

Comments

@DarrylBayliss
Copy link

DarrylBayliss commented Apr 8, 2024

OS Platform and Distribution

iOS 17.2

Compiler version

No response

Programming Language and version

Swift 5

Installed using virtualenv? pip? Conda?(if python)

No response

MediaPipe version

0.10.12

Bazel version

No response

XCode and Tulsi versions (if iOS)

Xcode 15.2

Android SDK and NDK versions (if android)

No response

Android AAR (if android)

None

OpenCV version (if running on desktop)

No response

Describe the problem

Create podfile, run pod install, run build in xcode against simulator

Complete Logs

When I try to build my podfile containing MediaPipeTasksGenAI, MediaPipeTasksGenAIC & MediaPipeTasksVision I recieve the following warning:


[!] Can't merge user_target_xcconfig for pod targets: ["MediaPipeTasksCommon", "MediaPipeTasksGenAIC"]. Singular build setting OTHER_LDFLAGS[sdk=iphonesimulator*] has different values.

[!] Can't merge user_target_xcconfig for pod targets: ["MediaPipeTasksCommon", "MediaPipeTasksGenAIC"]. Singular build setting OTHER_LDFLAGS[sdk=iphoneos*] has different values.

[!] Can't merge user_target_xcconfig for pod targets: ["MediaPipeTasksCommon", "MediaPipeTasksGenAIC"]. Singular build setting OTHER_LDFLAGS[sdk=iphonesimulator*] has different values.

[!] Can't merge user_target_xcconfig for pod targets: ["MediaPipeTasksCommon", "MediaPipeTasksGenAIC"]. Singular build setting OTHER_LDFLAGS[sdk=iphoneos*] has different values.

When I then proceed to build or run the project using the simulator I recieve the following build error.

ld: Undefined symbols:
  mediapipe::RenderAnnotation* google::protobuf::Arena::CreateMaybeMessage<mediapipe::RenderAnnotation>(google::protobuf::Arena*), referenced from:
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
  mediapipe::RenderAnnotation_Point* google::protobuf::Arena::CreateMaybeMessage<mediapipe::RenderAnnotation_Point>(google::protobuf::Arena*), referenced from:
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
  mediapipe::RenderAnnotation_Scribble* google::protobuf::Arena::CreateMaybeMessage<mediapipe::RenderAnnotation_Scribble>(google::protobuf::Arena*), referenced from:
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
  mediapipe::Color* google::protobuf::Arena::CreateMaybeMessage<mediapipe::Color>(google::protobuf::Arena*), referenced from:
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
  mediapipe::tasks::components::processors::proto::EmbedderOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::components::processors::proto::EmbedderOptions>(google::protobuf::Arena*), referenced from:
      -[MPPImageEmbedderOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][30](MPPImageEmbedderOptions+Helpers.o)
  mediapipe::tasks::components::processors::proto::ClassifierOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::components::processors::proto::ClassifierOptions>(google::protobuf::Arena*), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPImageClassifierOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][25](MPPImageClassifierOptions+Helpers.o)
  mediapipe::tasks::vision::face_detector::proto::FaceDetectorGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::face_detector::proto::FaceDetectorGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPFaceLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][8](MPPFaceLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_detector::proto::HandDetectorGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::hand_detector::proto::HandDetectorGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPHandLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][20](MPPHandLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::pose_detector::proto::PoseDetectorGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::pose_detector::proto::PoseDetectorGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPPoseLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][59](MPPPoseLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::face_landmarker::proto::FaceLandmarksDetectorGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::face_landmarker::proto::FaceLandmarksDetectorGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPFaceLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][8](MPPFaceLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarkerGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarkerGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarksDetectorGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarksDetectorGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPHandLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][20](MPPHandLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::pose_landmarker::proto::PoseLandmarksDetectorGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::pose_landmarker::proto::PoseLandmarksDetectorGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPPoseLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][59](MPPPoseLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::gesture_recognizer::proto::GestureClassifierGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::gesture_recognizer::proto::GestureClassifierGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::gesture_recognizer::proto::HandGestureRecognizerGraphOptions* google::protobuf::Arena::CreateMaybeMessage<mediapipe::tasks::vision::gesture_recognizer::proto::HandGestureRecognizerGraphOptions>(google::protobuf::Arena*), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::RenderData::InternalSwap(mediapipe::RenderData*), referenced from:
      mediapipe::RenderData::RenderData(mediapipe::RenderData&&) in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
  mediapipe::RenderData::CopyFrom(mediapipe::RenderData const&), referenced from:
      mediapipe::RenderData::RenderData(mediapipe::RenderData&&) in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
  mediapipe::RenderData::RenderData(google::protobuf::Arena*, bool), referenced from:
      mediapipe::packet_internal::InternalMessageRegistrator<mediapipe::RenderData>::Make() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      mediapipe::RenderData::RenderData(mediapipe::RenderData&&) in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      std::__1::unique_ptr<mediapipe::packet_internal::HolderBase, std::__1::default_delete<mediapipe::packet_internal::HolderBase>> mediapipe::packet_internal::CreateMessageHolder<mediapipe::RenderData>() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
  mediapipe::RenderData::~RenderData(), referenced from:
      +[MPPVisionPacketCreator createRenderDataPacketWithRegionOfInterest:error:] in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      +[MPPVisionPacketCreator createRenderDataPacketWithRegionOfInterest:error:] in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      mediapipe::packet_internal::InternalMessageRegistrator<mediapipe::RenderData>::Make() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      mediapipe::packet_internal::InternalMessageRegistrator<mediapipe::RenderData>::Make() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      mediapipe::packet_internal::Holder<mediapipe::RenderData>::~Holder() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
      ...
  mediapipe::NormalizedRect::InternalSwap(mediapipe::NormalizedRect*), referenced from:
      mediapipe::NormalizedRect::NormalizedRect(mediapipe::NormalizedRect&&) in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
  mediapipe::NormalizedRect::CopyFrom(mediapipe::NormalizedRect const&), referenced from:
      mediapipe::NormalizedRect::NormalizedRect(mediapipe::NormalizedRect&&) in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
  mediapipe::NormalizedRect::NormalizedRect(google::protobuf::Arena*, bool), referenced from:
      -[MPPVisionTaskRunner normalizedRectWithRegionOfInterest:imageSize:imageOrientation:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      mediapipe::NormalizedRect::NormalizedRect(mediapipe::NormalizedRect&&) in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      mediapipe::packet_internal::InternalMessageRegistrator<mediapipe::NormalizedRect>::Make() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      std::__1::unique_ptr<mediapipe::packet_internal::HolderBase, std::__1::default_delete<mediapipe::packet_internal::HolderBase>> mediapipe::packet_internal::CreateMessageHolder<mediapipe::NormalizedRect>() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
  mediapipe::NormalizedRect::~NormalizedRect(), referenced from:
      -[MPPVisionTaskRunner normalizedRectWithRegionOfInterest:imageSize:imageOrientation:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      -[MPPVisionTaskRunner normalizedRectWithRegionOfInterest:imageSize:imageOrientation:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      -[MPPVisionTaskRunner inputPacketMapWithMPPImage:regionOfInterest:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      -[MPPVisionTaskRunner inputPacketMapWithMPPImage:regionOfInterest:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      -[MPPVisionTaskRunner inputPacketMapWithMPPImage:regionOfInterest:timestampInMilliseconds:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      -[MPPVisionTaskRunner inputPacketMapWithMPPImage:regionOfInterest:timestampInMilliseconds:error:] in MediaPipeTasksVision[arm64][52](MPPVisionTaskRunner.o)
      mediapipe::packet_internal::InternalMessageRegistrator<mediapipe::NormalizedRect>::Make() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      mediapipe::packet_internal::InternalMessageRegistrator<mediapipe::NormalizedRect>::Make() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
      ...
  mediapipe::RenderAnnotation::clear_data(), referenced from:
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
      -[MPPRegionOfInterest(Helpers) getRenderDataWithError:] in MediaPipeTasksVision[arm64][54](MPPRegionOfInterest+Helpers.o)
  mediapipe::_MatrixData_default_instance_, referenced from:
      +[MPPFaceLandmarkerResult(Helpers) faceLandmarkerResultWithLandmarksPacket:blendshapesPacket:transformationMatrixesPacket:] in MediaPipeTasksVision[arm64][10](MPPFaceLandmarkerResult+Helpers.o)
  mediapipe::_LocationData_default_instance_, referenced from:
      +[MPPDetection(Helpers) detectionWithProto:] in MediaPipeTasksVision[arm64][48](MPPDetection+Helpers.o)
  mediapipe::tasks::components::processors::proto::EmbedderOptions::Clear(), referenced from:
      -[MPPImageEmbedderOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][30](MPPImageEmbedderOptions+Helpers.o)
  mediapipe::tasks::components::processors::proto::ClassifierOptions::Clear(), referenced from:
      -[MPPClassifierOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][14](MPPClassifierOptions+Helpers.o)
      -[MPPImageClassifierOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][25](MPPImageClassifierOptions+Helpers.o)
  mediapipe::tasks::TensorsToSegmentationCalculatorOptions::ext, referenced from:
      +[MPPImageSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][34](MPPImageSegmenter.o)
      +[MPPInteractiveSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][39](MPPInteractiveSegmenter.o)
  mediapipe::tasks::TensorsToSegmentationCalculatorOptions::TensorsToSegmentationCalculatorOptions(mediapipe::tasks::TensorsToSegmentationCalculatorOptions const&), referenced from:
      +[MPPImageSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][34](MPPImageSegmenter.o)
      +[MPPInteractiveSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][39](MPPInteractiveSegmenter.o)
  mediapipe::tasks::TensorsToSegmentationCalculatorOptions::~TensorsToSegmentationCalculatorOptions(), referenced from:
      +[MPPImageSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][34](MPPImageSegmenter.o)
      +[MPPImageSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][34](MPPImageSegmenter.o)
      +[MPPImageSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][34](MPPImageSegmenter.o)
      +[MPPInteractiveSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][39](MPPInteractiveSegmenter.o)
      +[MPPInteractiveSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][39](MPPInteractiveSegmenter.o)
      +[MPPInteractiveSegmenter populateLabelsWithGraphConfig:error:] in MediaPipeTasksVision[arm64][39](MPPInteractiveSegmenter.o)
  mediapipe::tasks::vision::face_detector::proto::FaceDetectorGraphOptions::ext, referenced from:
      -[MPPFaceDetectorOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][3](MPPFaceDetectorOptions+Helpers.o)
  mediapipe::tasks::vision::face_detector::proto::FaceDetectorGraphOptions::Clear(), referenced from:
      -[MPPFaceDetectorOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][3](MPPFaceDetectorOptions+Helpers.o)
  mediapipe::tasks::vision::face_detector::proto::_FaceDetectorGraphOptions_default_instance_, referenced from:
      -[MPPFaceDetectorOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][3](MPPFaceDetectorOptions+Helpers.o)
  mediapipe::tasks::vision::hand_detector::proto::HandDetectorGraphOptions::Clear(), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::image_embedder::proto::ImageEmbedderGraphOptions::ext, referenced from:
      -[MPPImageEmbedderOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][30](MPPImageEmbedderOptions+Helpers.o)
  mediapipe::tasks::vision::image_embedder::proto::_ImageEmbedderGraphOptions_default_instance_, referenced from:
      -[MPPImageEmbedderOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][30](MPPImageEmbedderOptions+Helpers.o)
  mediapipe::tasks::vision::face_landmarker::proto::FaceLandmarkerGraphOptions::ext, referenced from:
      -[MPPFaceLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][8](MPPFaceLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::face_landmarker::proto::FaceLandmarkerGraphOptions::Clear(), referenced from:
      -[MPPFaceLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][8](MPPFaceLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::face_landmarker::proto::_FaceLandmarkerGraphOptions_default_instance_, referenced from:
      -[MPPFaceLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][8](MPPFaceLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarkerGraphOptions::ext, referenced from:
      -[MPPHandLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][20](MPPHandLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarkerGraphOptions::Clear(), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPHandLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][20](MPPHandLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_landmarker::proto::HandLandmarksDetectorGraphOptions::Clear(), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::hand_landmarker::proto::_HandLandmarkerGraphOptions_default_instance_, referenced from:
      -[MPPHandLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][20](MPPHandLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::image_segmenter::proto::ImageSegmenterGraphOptions::ext, referenced from:
      -[MPPImageSegmenterOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][35](MPPImageSegmenterOptions+Helpers.o)
      -[MPPInteractiveSegmenterOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][40](MPPInteractiveSegmenterOptions+Helpers.o)
  mediapipe::tasks::vision::image_segmenter::proto::ImageSegmenterGraphOptions::Clear(), referenced from:
      -[MPPImageSegmenterOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][35](MPPImageSegmenterOptions+Helpers.o)
      -[MPPInteractiveSegmenterOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][40](MPPInteractiveSegmenterOptions+Helpers.o)
  mediapipe::tasks::vision::image_segmenter::proto::_ImageSegmenterGraphOptions_default_instance_, referenced from:
      -[MPPImageSegmenterOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][35](MPPImageSegmenterOptions+Helpers.o)
      -[MPPInteractiveSegmenterOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][40](MPPInteractiveSegmenterOptions+Helpers.o)
  mediapipe::tasks::vision::object_detector::proto::ObjectDetectorOptions::ext, referenced from:
      -[MPPObjectDetectorOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][45](MPPObjectDetectorOptions+Helpers.o)
  mediapipe::tasks::vision::object_detector::proto::ObjectDetectorOptions::Clear(), referenced from:
      -[MPPObjectDetectorOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][45](MPPObjectDetectorOptions+Helpers.o)
  mediapipe::tasks::vision::object_detector::proto::_ObjectDetectorOptions_default_instance_, referenced from:
      -[MPPObjectDetectorOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][45](MPPObjectDetectorOptions+Helpers.o)
  mediapipe::tasks::vision::pose_landmarker::proto::PoseLandmarkerGraphOptions::ext, referenced from:
      -[MPPPoseLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][59](MPPPoseLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::pose_landmarker::proto::PoseLandmarkerGraphOptions::Clear(), referenced from:
      -[MPPPoseLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][59](MPPPoseLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::pose_landmarker::proto::_PoseLandmarkerGraphOptions_default_instance_, referenced from:
      -[MPPPoseLandmarkerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][59](MPPPoseLandmarkerOptions+Helpers.o)
  mediapipe::tasks::vision::image_classifier::proto::ImageClassifierGraphOptions::ext, referenced from:
      -[MPPImageClassifierOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][25](MPPImageClassifierOptions+Helpers.o)
  mediapipe::tasks::vision::image_classifier::proto::_ImageClassifierGraphOptions_default_instance_, referenced from:
      -[MPPImageClassifierOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][25](MPPImageClassifierOptions+Helpers.o)
  mediapipe::tasks::vision::gesture_recognizer::proto::GestureClassifierGraphOptions::Clear(), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::gesture_recognizer::proto::GestureRecognizerGraphOptions::ext, referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::gesture_recognizer::proto::GestureRecognizerGraphOptions::Clear(), referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  mediapipe::tasks::vision::gesture_recognizer::proto::_GestureRecognizerGraphOptions_default_instance_, referenced from:
      -[MPPGestureRecognizerOptions(Helpers) copyToProto:] in MediaPipeTasksVision[arm64][13](MPPGestureRecognizerOptions+Helpers.o)
  typeinfo for mediapipe::RenderData, referenced from:
      std::type_info const& mediapipe::TypeId::GetTypeInfo<mediapipe::RenderData>() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
  typeinfo for mediapipe::NormalizedRect, referenced from:
      std::type_info const& mediapipe::TypeId::GetTypeInfo<mediapipe::NormalizedRect>() in MediaPipeTasksVision[arm64][53](MPPVisionPacketCreator.o)
clang: error: linker command failed with exit code 1 (use -v to see invocation)

My Podfile looks like the following:

platform :ios, '17.2'
use_frameworks!

target 'Simon-Says' do
  pod 'MediaPipeTasksGenAI'
  pod 'MediaPipeTasksGenAIC'
  pod 'MediaPipeTasksVision'
  pod 'Factory'
end

I assume there's a conflict somewhere between the Common framework and the AIC framework. I'm completely clueless about this though.

@DarrylBayliss DarrylBayliss added the type:build/install For Build and Installation issues label Apr 8, 2024
@kuaashish kuaashish added the platform:ios MediaPipe IOS issues label Apr 10, 2024
@kuaashish
Copy link
Collaborator

Hi @DarrylBayliss,

Could you please provide additional details about the issue, including the complete steps you are following from our documentation? This information will greatly assist us in better understanding the issue and potentially reproducing it if necessary.

Thank you!!

@kuaashish kuaashish added the stat:awaiting response Waiting for user response label Apr 10, 2024
@DarrylBayliss
Copy link
Author

Hi @kuaashish,

I followed the setup instructions from these pages:

  1. Setup MediaPipe LLM Support https://developers.google.com/mediapipe/solutions/genai/llm_inference/ios#setup

  2. Setup MediaPipe Vision Tasks: https://developers.google.com/mediapipe/solutions/vision/image_classifier/ios#setup

Some additional things I checked:

  1. The simulator I'm using is arm64 architecture

  2. Cocoapods version is 1.15.2

I can provide a sample project if neccessary.

@google-ml-butler google-ml-butler bot removed the stat:awaiting response Waiting for user response label Apr 10, 2024
@kuaashish
Copy link
Collaborator

Hi @priankakariatyml,

Could you please have look into this issue?

Thank you!!

@kuaashish kuaashish added the stat:awaiting googler Waiting for Google Engineer's Response label Apr 12, 2024
@kuaashish
Copy link
Collaborator

Hi @DarrylBayliss,

We acknowledge that utilizing any two or more of our features within an app across both Android and iOS platforms is currently not feasible. This issue may become a priority for us in the near future, as you are encountering errors in this scenario.

Thank you!!

@kuaashish kuaashish added stat:awaiting response Waiting for user response and removed stat:awaiting googler Waiting for Google Engineer's Response labels Apr 16, 2024
@DarrylBayliss
Copy link
Author

Hey @kuaashish,

Thanks for the update. This might be the case for iOS, I'm not sure it is correct in the case of Android. I have an Android app where I am doing something similar and using the genai / vision task dependencies together in the same project.

I have an example incase it is helpful with this issue: https://github.com/DarrylBayliss/Simon-Says-Android

@google-ml-butler google-ml-butler bot removed the stat:awaiting response Waiting for user response label Apr 16, 2024
@kuaashish
Copy link
Collaborator

Hi @DarrylBayliss,

following internal discussions, we have identified a conflict between LLM inference and the Vision Task, as the latter relies on OpenCV, which GenAI does not relies. This has resulted in an issue when attempting to integrate both solutions into an application. Rest assured, we have brought this matter to the attention of our team and will keep you informed as soon as any updates are available. For now, we are categorizing this as a feature request and sharing it with our team.

Thank you!!

@kuaashish kuaashish added task::all All tasks of MediaPipe task:LLM inference Issues related to MediaPipe LLM Inference Gen AI setup type:feature Enhancement in the New Functionality or Request for a New Solution stat:awaiting googler Waiting for Google Engineer's Response and removed type:build/install For Build and Installation issues labels Apr 23, 2024
@2BAB
Copy link

2BAB commented Sep 29, 2024

Encoutered the same issue after added LLM and Vision Tasks in the pod file (with the latest LLM 0.10.15 and Vision 0.10.14. It has been 5 months since the opening date of this issue, any progress?

  pod 'MediaPipeTasksGenAI'
  pod 'MediaPipeTasksGenAIC'
  pod 'MediaPipeTasksVision'

2BAB added a commit to 2BAB/MediaPiper that referenced this issue Oct 4, 2024
Some small but important changes:
1. Due to the conflict of LLM and Object Detection framework, we disabled the LLM temporarily. google-ai-edge/mediapipe#5302 (comment)
2. Set CADisableMinimumFrameDurationOnPhone to true to run the KMP app on iOS real device. https://youtrack.jetbrains.com/issue/CMP-5643/Make-CADisableMinimumFrameDurationOnPhone-a-requirement-to-run-Compose-Multiplatform-on-iOS
3. Compose Multiplatform 1.7.0-beta02 had an issue that caused the some extra white space on iPhones like 13mini. Upgrade to 1.7.0-rc01 to avoid that. https://youtrack.jetbrains.com/issue/CMP-6690
@schmidt-sebastian schmidt-sebastian removed their assignment Nov 8, 2024
@woodyhoko woodyhoko self-assigned this Nov 8, 2024
@yuhuichen1015
Copy link

yuhuichen1015 commented Nov 8, 2024

We have an internal tracking bug for the issue b/378116539 but no concrete update at the moment. Will keep people posted if there is any updates.

@yuhuichen1015 yuhuichen1015 removed the stat:awaiting googler Waiting for Google Engineer's Response label Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform:ios MediaPipe IOS issues task::all All tasks of MediaPipe task:LLM inference Issues related to MediaPipe LLM Inference Gen AI setup type:feature Enhancement in the New Functionality or Request for a New Solution
Projects
None yet
Development

No branches or pull requests

6 participants