perchco / perchrtc

An iOS WebRTC demo using XirSys servers
MIT License
134 stars 34 forks source link

Package PerchRTC as a standalone library #7

Open ceaglest opened 9 years ago

ceaglest commented 9 years ago

At the moment, the sample app directly integrates the PerchRTC classes. The core classes (everything except the view controller, connection broker, and other UI) should be separated into a standalone library installable via Cocoapods.

Class prefix must be changed from PH to something else, due to the photos framework conflict.

whydna commented 8 years ago

@ceaglest any estimate on when this might be available?

ceaglest commented 8 years ago

@whydna I haven't had a lot of time to work on this project lately. However, I can take a look this weekend and submit a PR if everything goes well.

ceaglest commented 8 years ago

@whydna @samsymons I got a pretty good start on this over the weekend. Most of the restructuring has been done, and the new Podfile is in place. However, I am running into a header search path issue with the pod. It appears that Cocoapods (v39.0) wants to flatten private and public headers even though the paths are preserved in the Pods dir. We workaround this in the sample app by setting a recursive header search path at the root, but this kludge doesn't hold for the Pod build process.

https://github.com/CocoaPods/CocoaPods/pull/4057

https://github.com/perchco/perchrtc/tree/feature/sdk-repack

I'll have to give this a little more thought.

hudoni commented 8 years ago

@ceaglest Hi Christopher. I resolved the path issues and the compile phase was done. However, I've encountered another problem that it fails to link PerchRTC.framework with the static library "WebRTC-45-1-arm-intel-Release". Here are the messages:

Undefined symbols for architecture arm64: "typeinfo for rtc::MessageHandler", referenced from: typeinfo for rtc::FunctorMessageHandler<void, rtc::MethodFunctor1<perch::VideoCapturerKit, void (perch::VideoCapturerKit::)(cricket::CapturedFrame const), void, cricket::CapturedFrame const*> > in PHVideoCaptureBridge.o "typeinfo for sigslot::multi_threaded_local", referenced from: typeinfo for sigslot::_signal_basesigslot::multi_threaded_local in PHVideoCaptureBridge.o "typeinfo for cricket::VideoCapturer", referenced from: typeinfo for perch::VideoCapturerKit in PHVideoCaptureBridge.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

  • Target architecture: standard architectures - arm64 armv7
  • Xcode: Version 7.1 (7B91b)
  • Base SDK: iOS 9.1

Do you have any idea about this linking issue?

Thanks.

FilHazer commented 8 years ago

@hudoni +1

ceaglest commented 8 years ago

Hi @hudoni Thanks for the info. I got to the same point locally and ran into the linker problems. It's just a matter of a little tweaking with the Cocoapods setup at this point.

Unfortunately, I've been pretty busy with my FT job which has kept me off this project. The best I can do is set aside some time this weekend to resolve the problems and close out this feature. Once this blocker is out of the way it will be much easier to branch out into multiple demos, unit tests, better distribution etc... But lets take it one step at a time.

carsonwu commented 8 years ago

@hudoni I run into the same issue, did you ever find a solution for this? thanks