![]() ![]() ![]() Here is what it looks like:Ĩ.0 means that we will support versions of 8.0 and later. You will get the contents of Podfile for every pod that want to install. We have to execute the following statements:īut what is Podfile? That is a file that I have previously downloaded from. In my case, one od the intermedidate folders contains blanks, so I had to use quoation marks around the entire subfolder name. Copy it to the folder where you app is and then go to that folder:Ĭd "/Users/duskosavic/Documents/apps/Cole/iMedic Flash Cards/imedicflashcards_iOS_BTv4.0.3" In the end of the day, if a subspec is so special that it has it’s own dependency, why not make it a separate pod? Why not have components like UtilityJailbreakDetector and UtilityLoggerAppDynamics as separated podspecs? Having multiple subspecs in the same repo is not the end of the world, and if you know how CocoaPods is implemented, you can set up your dependencies exactly as the way you want it to be.Īs a conclusion, I would just break down my podspec to solve this issue, even though I like the subspec based architecture design.To install a SendBird pod, go to here and download the pod. In the end, it is up to CocoaPods team to define how they want their product to be like, and in this case, one would argue that the intention of subspec might not mean to be used for this case. However, the more I think about it, I kind of have the classic “it’s not a bug but a feature” feeling. Practically, there will be quite a lot of dev/QA work involved for such a big change, but I don’t think it’s not doable. Such postfix should not be added if the dependencies are the same, because you don’t want to have amework and amework at the same time, if there contents are exactly the same. As discussed here, this problem may be resolved by adding postfix in the framework file when there are different framework versions for multiple targets, e.g. My first impression was that this was a design flaw of CocoaPods. ![]() Of course, when you try to run the project, it is fine because you can only run one target per each instance at a time. The reason is that for each target, the workspace CocoaPods generates tries to produce frameworks with the same name amework, which results the error above. The following error would occur when you try to archive the project: error: Multiple commands produce '/Users/xxx/Library/Developer/Xcode/DerivedData/MyProject-amarkglozepfmyeasvcmupnzoxzn/Build/Intermediates.noindex/ArchiveIntermediates/MyProject/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/amework':ġ) Target 'Utility-JailbreakDetector-Core has create directory command with output '/Users/xxx/Library/Developer/Xcode/DerivedData/MyProject-amarkglozepfmyeasvcmupnzoxzn/Build/Intermediates.noindex/ArchiveIntermediates/MyProject/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/amework'Ģ) Target 'Utility-CoreiOS' has create directory command with output '/Users/xxx/Library/Developer/Xcode/DerivedData/MyProject-amarkglozepfmyeasvcmupnzoxzn/Build/Intermediates.noindex/ArchiveIntermediates/MyProject/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/amework' iOS: Utility/JailbreakDetector + Utility/Core.Suppose we have the following setup (Core is a common component for all platforms): There is nothing wrong with this architecture design, but with CocoaPods’ current 1.9.3 implementation, there is a problem. ![]() Logger/AppDyanmicsLogger, which depends on AppDynamicsAgent, which requires iOS platform (it’s not open source so only God knows why).JailbreakDetector, which requires iOS platform for some openURL check, also its objc code cannot be bundled with Siri.For example, suppose we have a Utility pod that includes: Some iOS projects may have multiple targets, including iOS, watch extension, today extension, Siri extension, and so on.Īlso, some dependencies may require specific platforms. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |