Xcode 12, iOS 14, Pods - swift

After updating the iPhone to ios 14, xcode 11.5 stopped launching projects on the iPhone, I decided to upgrade xcode to version 12 and got a huge number of errors related to Pods for 60 of them ... Basically, everything is related to the fact that quotes cannot be used in Pods, and need to use <> to connect libraries. When I correct it with <>, I get errors that I need to use "", but this is all warning, namely error due to the fact that xCode stopped seeing one library. On the screen all the info.
Thank you in advance for your help)
How to fix it?

I had a similar issue and I fixed by changing the deployment target of all Pods. Most Pods were targeting iOS 8.0, which is no longer supported by Xcode 12.

Make Sure You have Same Version for your deployment target and podfile platform
Don't open your Project in XCode 12 after XCode Update
Open Your Project Podfile through terminal
Just remove all your lib and do pod install (Also remove that extra codein podfile if you have written anything regarding architecture of 86 or 64 which we have write for remove warnings)
Clear derive data by path without opening XCode (~/Library/Developer/Xcode/DerivedData)
After Removed all lib all other lib again and do pod install
Open Your Project and set Build System to New Build System (Default) in Shared Workspace Settings and Use Shared Setting in Build System in Pre-User WorkSpace Settings (You can found this settings while XCode Selected go to file menu and click on WorkSpace Settings)
Then Do Clean and build then run it you will not found things regarding module not found you will face some syntax updates or any lib updates fix those and go for run

Try to install pod again, remove all pod and install again.
pod deintegrate
pod install
or
sudo rm -fr ~/Library/Caches/CocoaPods/
pod install
clear DerivedData and run again.

Related

Xcode Swift target overrides the `SWIFT_INCLUDE_PATHS`

I just switched from Carthage to Cocapods for an older Swift project. When I run "pod install", I get a warning (one for Debug and one for Release):
[!] The 'POS Pad [Debug]' target overrides the SWIFT_INCLUDE_PATHS build setting defined in `Pods/Target Support Files/Pods-POS Pad/Pods-POS Pad.debug.xcconfig'. This can lead to problems with the CocoaPods installation
The problem is that I cannot find any "Swift Include Paths" setting anywhere under Build Settings. I am using Xcode 13.4.
Where can I find this setting and get rid of the warnings?
I took another stab at this and found a way to get rid of the warnings.
When looking at the project.pbxproj file directly, the setting SWIFT_INCLUDE_PATHS was actually present under release and debug. However, both were set to "$(default)", so they were not overriden like Cocoapods claimed they were.
To handle:
Edit the project.pbxproj file and delete the two lines (after making a copy of the file to be safe).
pod deintegrate
Delete derived data (rm -rf ~/Library/Developer/Xcode/DerivedData/*)
In Xcode, Clean Build Folder
After the above, pod install ran without warnings or errors.
Note: step 2-4 above might not have been needed.
Hopefully this helps somebody if they have a similar issue...

Installing Package with CocoaPods

I'm trying to install the Charts package to use with CocoaPods and it keeps saying "No such module 'Charts'".
If I added the pod 'Charts' in the podfile, and did a pod install and the files are there in Xcode, how come it still gives me an error when I try to import Charts?
Do I still need to do the steps below? Or does CocoaPods do it for me?
Drag the Charts.xcodeproj to your project
Go to your target's settings, hit the "+" under the "Embedded Binaries" section, and select the Charts.framework
My pods file looks like this now:
You just have to hit Command-b to build, then the error will go away. The other solution is to hit Product > Build.
I had a similar problem when I was developing an app for an older platform. The CocoaPod I sourced supported Swift 4 but I was developing for Swift 3. When I sourced the last Swift 3 version of the pod, the "No such module" error was no longer there. Try the following line in your Podfile:
pod 'Charts', '3.0.3'
instead of the latest version.
try installing it manually moving the complete charts folder to your project, or downloading using carthage, it's way more cleaner using carthage than cocoapods because it doesn't create you a .xcworkspace like cocoapods.

Cant import module to xcode

I have the same problem as described here: I cant add socket.io module to my project.
I've tried all ways of dragging and dropping as described in answer, I've tried adding files to project from File menu. No matter what I do I get compile error "SocketIO module not found" on string import SocketIO
Is there a regular way of adding modules? Command line? Sorry if question sounds dummy - Im new not only to swift but to mac also (bought it to learn swift).
If that´s an issue (which it seems to be for not only you) I would go with CocoaPods instead.
Start by:
Do this in your terminal: sudo gem install cocoapods
Go to your project folder and open the terminal in that folder (cd ...)
Do this in your terminal: pod init
Remove all content in your newly created pod file and add this instead:
use_frameworks!
target 'YourApp' do
pod 'Socket.IO-Client-Swift', '~> 12.0.0' # Or latest version
end
Do this in your terminal: pod install
Open your project, note that you need to open the .xcworkspace file to be able to access your pods
Import the module import SocketIO
I created a sample project for you with CocoaPods installed and I have added SocketIO for you. Remember to run the .xcworkspace file. You can download the project here.
Add the socketio swift client with CocoaPods , but after that set the source of the client to Swift 3.2 then try to build it. I’m assuming you’re using Xcode 9 . To set the source to swift 3 from Xcode : go to Frameworks, select the SocketIO and go build settings and set Swift version to Swift 3.2
I faced this problem and it killed my 4 hours time.
I did the steps given by #Rashwan L but it didn't solve my problem though.
I was set iOS Deployment Target to 10.0 that was my main problem.
When I changed my iOS Deployment Target to 11.1 it works for me.
Good luck.

Cocoa pods GLM Error

So today I've been trying to try out a new project using Swift, but I've arrived to an abrupt halt. I've been trying to run the VideoCore sample project found here: https://github.com/jgh-/VideoCore/tree/823ec7cac50e5a0b4457bd06dd95a50dca88d9c0/sample/SampleBroadcaster-Swift.
So during the initial setup I had to navigate to the directory and run pod install. pod install executed without any errors, and say I need to close Xcode, and reopen the new workspace, which I did. When I try to go and run the app for debugging (as according to the documentation I can run it right after pod install'ing, I get an error that says 'type_half.inl' file not found. A few screenshots are here to better explain/show: http://d.pr/i/14TqW, and http://d.pr/i/1aYSi.
I've tried reinstalling the pod multiple times, and I haven't been able to resolve this issue. Has anyone had a situation like this, or have any idea on how to get out of this blackhole?
Thanks!
This has been resolved by downgrading CocoaPods to version 0.38.2. Here's what I did:
gem install cocoapods -v 0.38.2
gem uninstall cocoapods -v 0.39.0
And that fixed my issues.
Instead of downgrading CocoaPods to version 0.38.2. This error can be resolved in other way as I have fixed recently on of my project.
STEP 1:- Search Header Search Paths under build setting on GLM target or target that uses GLM pod like in my project VideoCore cocoapods uses GLM
STEP 2:- make it recursive instead of non-recursive.
Build again error will be fixed.
NOTE:- if you update cocoapods that you have to redo the steps again. Also target will be in pod project.
Attached image for reference.

Module file's deployment target is ios9.0 v9.0 with Xcode 7 / Swift 2

I have a project using some modules that I have installed via cocoapods. One of them is Charts. In order to migrate my project from Swift 1.2 to Swift 2 I have gone through the wizard that comes up when first opening the project with Xcode 7. The Charts module is already available for Swift 2, and I have changed my Podfile to contain the following in order to upgrade to this newer and not yet officially released version:
pod 'Charts', :git => 'https://github.com/danielgindi/ios-charts.git'
Now the project workspace opens fine in Xcode except one error message that I can't get rid of myself, and I cannot find any helpful informations in the web:
At the place where I import my "Charts" module the above mentioned error message pops up. First, I made sure the whole project is set to deployment target IOS 9.0 as it was 8.0 before.
As this didn't solve the issue, I have done Product -> Clean, Product -> Clean Build Folder and finally deleted the "Derived Data" folder's contents. I also have re-started Xcode after all these steps but the error still appears.
Does anybody have a clue what I could have missed? Thank you very much!
Same, in my case
Selected TARGETS,
then go to "Build Settings"
Search for "iOS Deployment target” in search bar
Changed it from iOS 8.2 to 9.0 - in all
In case you have to support older versions and you don't have the option to just upgrade the deployment target of your project to required version, try downgrade it in a pod itself:
Select Pods project in Project Navigator
Go through every pod in TARGETS list and change its Deployment Target to the version you need
Clean and Build your project
Worked for me. show snapshot from Xcode
For me, wiping out DerivedData fixed the issue. It seems that clean does not wipe out swiftmodule files.
rm -rf ~/Library/Developer/Xcode/DerivedData
Just put "platform :ios, '8.0'" or whatever is your version in your Podfile and it will be solved.
You have to update podspec file to
s.ios.deployment_target = '9.0'
You need to go to Pods, and for every target inside that, set the same development target as you do for the main project, clean and build again.
In my case, where the imported module of Pod FOO was failing because it needed version X:
main app/project/targets were all set to minimum deployment target >= X [OK]
pod FOO itself had correct >= X minimum deployment target in its podspec [OK]
another pod, BAR, was using pod FOO, and BAR's minimum deployment target was less than X. [FIXED: edit BAR's podspec and increase min deployment target to at least X]
tl;dr; it could be that you're using pod 1 which is using another pod 2; the problem is in pod 1's podspec