Wow. Just wow. Thank you soooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo much!!!
Hello Emanuel. Great video. Thanks for the help. Could you please post a video integrating openCV into an iOS library project (i already succeeded integrating it in application project). Because opencv is available as framework from opencv releases. How should i integrate this to a library package.swift file. This library is a camera library where i need opencv framework to do some image processing. And finally i want to create a podspec file to inegrate this whole camera library(Integrated with opencv framework) to a flutter project. It would be really great if you post a video about this
Hi, thanks for the tutorial. I want to add my custom framework in podspec, but I got Error regrading "vendored_frameworks" patteren didi not match all the files. could u please help me , how to solve it?
Thanks a lot Emmanuel, great tutorial. I have a follow up question. What if my framework itself needed to use a custom dependency ? Let's say I wanted to include AlamoFire into my framework to make some network requests - how can this be achieved ?
Great question, Shawn. You’d need to add the dependency to your podspec file... spec.dependency "Alamofire", "~> 1.0.0" (Where 1.0.0 is the version you want to utilize) By doing this, Alamofire will be installed automatically whenever you try to install your pod using cocoapods. Apart from this tho, I believe an easy way to get the dependency available directly within your framework is to use Carthage. This article easily describes the process. medium.com/captain-ios-experts/advanced-swift-ch-2-using-third-party-framework-inside-custom-swift-framework-133cefd76fcd
Thanks a lot. Nice tutorial. But I get the error when using both spec.source_files and spec.resources even set it like this: spec.source_files = "OKAuthen/Class/**/*.{swift,c,m,h}" spec.resources = "OKAuthen/Class/*.{png,jpeg,jpg,storyboard,xib,xcassets}" And this is the error: - ERROR | [iOS] file patterns: The `source_files` pattern did not match any file. - ERROR | [iOS] file patterns: The `resources` pattern did not match any file.
Nice tutorial Emmanuel. I have a Question, will it work for both simulator and device? Since you built it with simulator, it will support only for simulator architecture.
Thanks, Ravi. Good question. If you want to test your framework on a real device using the method demonstrated in 5:00, you would need to build the framework using either a real or the Generic iOS Device and use the output in your project. An alternative is to build it as a Universal Framework which will allow you to use the framework on both simulator and device. From the video tho, we took the Cocoapod route to install our Framework as demonstrated in 22:11. This way, we don't need to manually make it "Universal". If you attempt to run the app using either a Simulator or a Device, it should work fine.
Yes the source code is currently public. If you want to keep it private, you can consider making the git repo private and publishing the framework as a private pod. This method will require an additional repo to host your Podspec file.
Thanks, Nitin. By updating pods, do you mean creating a new version for your custom pod, or updating your third party dependencies in a regular project?
@@EmmanuelOkwara Yes Emmanuel. I think that should be the second and mandatory part of this video. People watching it should be interested to know how to update the pod they just created.
Hello Emanuel, great tutorial really but this example works well for public gthub frameworks. Can you explain another for the process involving private frameworks. There are alot of issues online regarding that, and doing that will really help alot of devs out there
Great question, Sanjay. What I’ve done personally is to add the dependency into the framework using Carthage(just so that it’s available within our custom framework). When I want to distribute to cocoapods, I add it as a dependency in our podspec. E.g spec.dependency 'Alamofire', '~> 1.0'
At 28:00 ( "pod trunk push .podspec" ) I have this error: " [BUG] Bus Error at 0x0000000104324000 ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20] " Edit: The reason is from new Macbook M1. Works well on Intel.
There’s no need for an apology Nizzam 😊 I really do appreciate the feedback. If you have other ideas of ways you feel my tutorials/videos can be improved, I’m all ears. Feedback helps us get better 💯
It’s pretty similar to sharing a public pod. You’ll just need to also share the source url to the private repo so that cocoapods knows where to find the code. Meaning that when you want to install a private pod you’ll also need to add source ‘link_to_repo’ At the top of your file before writing pod ‘name_of_pod’
Best explanation on internet so far ✅.
Thanks, Javier 😊
your teeth are flashes more than my room tube light, thank u brother, we appreciate your efforts ,, namaste 🙏
Thanks bro. 😅
Namaste 🙏
Wow. Just wow. Thank you soooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo much!!!
Hello Emanuel. Great video. Thanks for the help. Could you please post a video integrating openCV into an iOS library project (i already succeeded integrating it in application project).
Because opencv is available as framework from opencv releases. How should i integrate this to a library package.swift file.
This library is a camera library where i need opencv framework to do some image processing. And finally i want to create a podspec file to inegrate this whole camera library(Integrated with opencv framework) to a flutter project.
It would be really great if you post a video about this
Thank you sharing this amazing video. Can we add swift package for same library or same framwork
It's an awesome tutorial Emmanuel. Thank you so much.
Very well explained and covered each aspect
What's the difference between framework, library and swift packages?
Best explanation on youtube so far ✅.
I’m flattered, thanks 😊
Bloody hell!! Was it this much simpler?
Hi, thanks for the tutorial. I want to add my custom framework in podspec, but I got Error regrading "vendored_frameworks" patteren didi not match all the files. could u please help me , how to solve it?
Nice, thank you. What’s the function of the MaccoValidator.h file?
Thanks a lot Emmanuel, great tutorial. I have a follow up question. What if my framework itself needed to use a custom dependency ? Let's say I wanted to include AlamoFire into my framework to make some network requests - how can this be achieved ?
Great question, Shawn.
You’d need to add the dependency to your podspec file...
spec.dependency "Alamofire", "~> 1.0.0"
(Where 1.0.0 is the version you want to utilize)
By doing this, Alamofire will be installed automatically whenever you try to install your pod using cocoapods.
Apart from this tho, I believe an easy way to get the dependency available directly within your framework is to use Carthage.
This article easily describes the process.
medium.com/captain-ios-experts/advanced-swift-ch-2-using-third-party-framework-inside-custom-swift-framework-133cefd76fcd
Thanks a lot. Nice tutorial.
But I get the error when using both spec.source_files and spec.resources even set it like this:
spec.source_files = "OKAuthen/Class/**/*.{swift,c,m,h}"
spec.resources = "OKAuthen/Class/*.{png,jpeg,jpg,storyboard,xib,xcassets}"
And this is the error:
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
- ERROR | [iOS] file patterns: The `resources` pattern did not match any file.
Nice tutorial Emmanuel.
I have a Question, will it work for both simulator and device? Since you built it with simulator, it will support only for simulator architecture.
Thanks, Ravi. Good question.
If you want to test your framework on a real device using the method demonstrated in 5:00, you would need to build the framework using either a real or the Generic iOS Device and use the output in your project. An alternative is to build it as a Universal Framework which will allow you to use the framework on both simulator and device.
From the video tho, we took the Cocoapod route to install our Framework as demonstrated in 22:11. This way, we don't need to manually make it "Universal".
If you attempt to run the app using either a Simulator or a Device, it should work fine.
Thanks for the reply Emmanuel. How can we hide the source code, since we are giving the git repo link to others. They can see the source code right?
Yes the source code is currently public.
If you want to keep it private, you can consider making the git repo private and publishing the framework as a private pod.
This method will require an additional repo to host your Podspec file.
I'm still watching the video. At 5:05... what did you press to switch screens when dragging the framework?
Nothing special. Just the regular 4 finger swipe, or 3 fingers depending on your configuration. 😊
Yes, Best explanation, thanks for this video.
Can you please create video for updating the pods?
Thanks, Nitin.
By updating pods, do you mean creating a new version for your custom pod, or updating your third party dependencies in a regular project?
@@EmmanuelOkwara Yes Emmanuel. I think that should be the second and mandatory part of this video. People watching it should be interested to know how to update the pod they just created.
You make good point. The process is really similar tho.
Make your changes
Increment your version
Lint and upload
Hello Emanuel, great tutorial really but this example works well for public gthub frameworks. Can you explain another for the process involving private frameworks. There are alot of issues online regarding that, and doing that will really help alot of devs out there
You are correct.
I’ll create an updated video to explain this.
Great tutorial and felt fun!! thank you!
My pleasure 😊
Best + fun explanation, thx, keep going
I’m glad you liked it 😊
how to make link repo is private, will it install too?
amazing, just wow
Amazing content! Thanks
How would you add some pod dependencies(Alamofire) in the framework itself and Read this dependencies in the framework ReaderApp
Great question, Sanjay.
What I’ve done personally is to add the dependency into the framework using Carthage(just so that it’s available within our custom framework).
When I want to distribute to cocoapods, I add it as a dependency in our podspec. E.g spec.dependency 'Alamofire', '~> 1.0'
Good work and thank you 🎉🎉
Thanks dude good one!
Nice tutorial!
You are awsome, thanks!
At 28:00 ( "pod trunk push .podspec" )
I have this error: " [BUG] Bus Error at 0x0000000104324000 ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20] "
Edit: The reason is from new Macbook M1. Works well on Intel.
Thanks for the info, Cosmin.
Did you figure out a workaround?
Good tutorial
And I just want to comment on your keyboard pressing, the sound was loud and annoyed the earphone user.
I appreciate the feedback and apologize for the negative experience.
I’ve taken note and will prevent this from happening in subsequent videos. 🤗
@@EmmanuelOkwara sorry for comment and keep doing a great content !
There’s no need for an apology Nizzam 😊
I really do appreciate the feedback. If you have other ideas of ways you feel my tutorials/videos can be improved, I’m all ears.
Feedback helps us get better 💯
Thank you..
How to share that if it's private
It’s pretty similar to sharing a public pod.
You’ll just need to also share the source url to the private repo so that cocoapods knows where to find the code.
Meaning that when you want to install a private pod you’ll also need to add
source ‘link_to_repo’
At the top of your file before writing
pod ‘name_of_pod’
Nice