I want use version '1.1.0' of `Alamofire-SwiftyJSON` - xcode

I want use version '1.1.0' of Alamofire-SwiftyJSON
My Podfile is:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :tag => '1.2.3'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :tag => '2.2.0'
pod 'Alamofire-SwiftyJSON', :git => "https://github.com/SwiftyJSON/Alamofire-SwiftyJSON.git", :tag => '1.1.0'
and I got follow error:
Analyzing dependencies
Pre-downloading: `Alamofire` from `https://github.com/Alamofire/Alamofire.git`, tag `1.2.3`
Pre-downloading: `Alamofire-SwiftyJSON` from `https://github.com/SwiftyJSON/Alamofire-SwiftyJSON.git`, tag `1.1.0`
[!] Unable to find a specification for 'Alamofire-SwiftyJSON'.

This is a normal situation. The Alamofire-SwiftyJSON repository does not have a podspec into its repo at the tag 1.1.0 and no pod has been push to the cocoapod trunk.
You will have to fork the project, and add the Alamofire-SwiftyJSON.podspec to the root by yourself. An example of what it should look like:
Pod::Spec.new do |s|
s.name = "Alamofire-SwiftyJSON"
s.version = "1.1.0"
s.summary = "Alamofire extension for serialize NSData to SwiftyJSON "
s.homepage = "https://github.com/[your github name]/Alamofire-SwiftyJSON"
s.license = { :type => "MIT" }
s.requires_arc = true
s.osx.deployment_target = "10.9"
s.ios.deployment_target = "8.0"
s.source = { :git => "https://github.com/[your github name]/Alamofire-SwiftyJSON.git", :tag => s.version }
s.source_files = "Source/*.swift"
s.dependency 'Alamofire', '1.3'
s.dependency 'SwiftyJSON', '2.2.0'
end

Related

Cocoa Pods: Local Pod install issue

I am trying to install a library through local podspec. This is how my podspec looks like
Pod::Spec.new do |s|
s.name = 'MI_SDK_DEVELOPMENT'
s.version = '1.0.0'
s.license = { :type => 'Unspecified' }
s.homepage = 'https://www.modirum.com'
s.authors = { 'Modirum Ou' => 'info#modirum.com' }
s.summary = 'Modirum 3DS SDK iOS framework (Development)'
s.platform = :ios
s.source = { :path => './LocalPods/MI_SDK_DEVELOPMENT.framework.zip' }
s.ios.deployment_target = '8.0'
s.ios.vendored_frameworks = 'MI_SDK_DEVELOPMENT.framework'
end
when I run the pod install pods installed successfully but it does not copy the 'MI_SDK_DEVELOPMENT.framework' in the XCode project. So I am having the following error
So don't know is there something wrong with the Pod itself or I am missing something in the installation. Any help will be highly appreciated. Thanks
EDIT:
Podfile
# Uncomment the next line to define a global platform for your project
platform :ios, '8.0'
target 'ModirumSDKExample' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for ModirumSDKExample
pod 'MI_SDK_DEVELOPMENT', :path => './LocalPods/MI_SDK_DEVELOPMENT.podspec'
end
By the Cocoapods Documentation, it seems that .zip files are only unarchivable via http resources:
Using HTTP to download a compressed file of the code. It supports zip, tgz, bz2, txz and tar.
So this would work:
s.source = { :http => 'https://example.com/MI_SDK_DEVELOPMENT.framework.zip' }
This would not:
s.source = { :path => './LocalPods/MI_SDK_DEVELOPMENT.framework.zip' }

Installing vendored_frameworks from private podspec fails with :git => url in Podfile

Here is what I am trying to do:
Installing private pod with vendored_frameworks.
MyFramework.podspec looks like
Pod::Spec.new do |spec|
spec.name = "MyFramework"
spec.summary = "My summary"
spec.version = "1.0.0"
spec.homepage = "https://www.google.com"
spec.authors = { "Me" => "me#gmail.com" }
spec.license = { :type => "MIT", :file => "LICENSE" }
spec.source = { :http => "url to my zip containing the three frameworks" }
spec.platform = :ios, "10.0"
spec.preserve_paths = 'MyFramework1.framework', 'MyFramework2.framework', 'MyFramework3.framework'
spec.ios.vendored_frameworks = 'MyFramework1.framework', 'MyFramework2.framework', 'MyFramework3.framework'
spec.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => "'${PODS_ROOT}/MyFramework1'"}
spec.frameworks = 'MyFramework1', 'MyFramework2', 'MyFramework3'
end
And my Podfile line looks like
pod 'MyFramework1', :git => 'myUrl.git'
The pod spec lint . is working well and also the pod repo push ....
Unfortunately, the three frameworks are not installed when I'm doing pod install.
However, I discovered that if I change my Podfile with
pod 'MyFramework1', :podspec => '/path/to/podspec'
everything is working fine and I got the three frameworks when I'm doing pod install.
Of course, I checked that the podspec is exactly the same as the one on my repo git.
What should I do to get it working with :git => url?
May be you need to do install_framework command

Support Different Vendored Frameworks for Simulator vs iOS Device

I am trying to write a PodSpec that allows us to use one framework JellyFrameworkForDefice.framework when installing to a device and another framework JellyFrameworkForSimulator.framework when installing to a simulator via Xcode. Does anyone have any ideas around this or have examples they have seen where this has worked before?
Pod::Spec.new do |s|
s.name = 'Jelly'
s.module_name = 'Jelly'
s.version = '1.0.3'
s.summary = 'Jelly 4.1.2'
s.description = <<-DESC
TODO: Add long description of the pod here.
DESC
s.homepage = 'https://github.com/<GITHUB_USERNAME>/Jelly'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '' => '' }
s.source = { :git => 'https://github.com/<GITHUB_USERNAME>/Jelly', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'
s.source_files = 'Jelly/Classes/**/*.h', 'Jelly/Classes/**/*.m', 'Jelly/Classes/**/*.mm'
s.resources = 'Jelly/Assets/UX_Resources/*', 'Jelly/Classes/UX/Resources/*'
s.libraries = 'c++'
s.vendored_framework = 'Jelly/Libraries/JellyFrameworkForDefice.framework', 'Jelly/Libraries/JellyFrameworkForSimulator.framework'
s.dependency 'Cordova', '4.2.1'
s.dependency 'DependencyContainer'
s.dependency 'JellyService'
s.compiler_flags = '-lstdc++', '-lc++'
s.ios.framework = 'AudioToolbox', 'AVFoundation', 'CoreGraphics',
'CoreMedia', 'CoreVideo', 'MobileCoreServices', 'OpenGLES',
'QuartzCore', 'Security', 'ImageIO', 'Foundation', 'UIKit'
s.xcconfig = { 'OTHER_LDFLAGS[sdk=iphonesimulator*]' => '$(inherited) -framework "JellyFrameworkForSimulator"',
'OTHER_LDFLAGS[sdk=iphoneos*]' => '$(inherited) -framework "JellyFrameworkForDefice"' }
end

pod spec lint passes, but pod trunk push fails

I am trying to send a library to the CocoaPods repo, but it fails the push procedure.
However, it does not fail the lint check as we can see here:
$ pod spec lint GUIPlayerView.podspec
-> GUIPlayerView (0.0.1)
Analyzed 1 podspec.
GUIPlayerView.podspec passed validation.
$ pod trunk push GUIPlayerView.podspec
Validating podspec
-> GUIPlayerView (0.0.1)
[!] The Pod Specification did not pass validation.
There is no error or warning message. My local git repo is synced and up-to-date with the remote's master. What can I do?
Edit: here's the podspec file:
Pod::Spec.new do |s|
s.name = "GUIPlayerView"
s.version = "0.0.1"
s.summary = "GUIPlayerView is a simple video player embedded into a UIView."
s.homepage = "https://github.com/guilhermearaujo/GUIPlayerView"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Guilherme Araújo" => "me#mail.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/guilhermearaujo/GUIPlayerView.git", :tag => "0.0.1" }
s.source_files = "GUIPlayerView/Classes", "Classes/**/*.{h,m}"
s.exclude_files = "GUIPlayerView/Classes/Exclude"
s.resources = "GUIPlayerView/Resources/*.png"
s.framework = "AVFoundation"
end
I learned about the --verbose parameter and reading through the logs I saw that the key s.requires_arc = true was missing.
For some reason, this warning was not shown without the --verbose flag.

pod trunk push error

Here is my podspec:
Pod::Spec.new do |s|
s.name = "MXMarkdownKeyboard"
s.version = "0.0.3"
s.summary = "MarkdwonKeyboard for iOS"
s.homepage = "https://github.com/mexiQQ/MXMarkdownKeyboard"
s.license = { :type => "MIT", :file => "LICENSE.md" }
s.author = { "mexiqq" => "ljw040426#gmail.com" }
s.platform = :ios
s.source = { :git => "https://github.com/mexiQQ/MXMarkdownKeyboard.git",:tag => '0.0.3'}
s.source_files = "MXMarkdownKeyboard", "MXMarkdownKeyboard/*.{h,m}"
end
The repo is here: https://github.com/mexiQQ/MXMarkdownKeyboard
When I execute pod spec lint it returns:
MXMarkdownKeyboard.podspec passed validation.
But, when I execute pod trunk push I get this error:
[!] The Pod Specification did not pass validation.
How can I fix this and push my spec to trunk?
It's expecting a file called LICENSE in the root of your repo, but it can't find one.

Resources