SlideShare a Scribd company logo
a 5 minutes

CocoaTip by ♥

February 2016
CocoaPods 1.0.0 beta 4
Transitioning to new
CocoaPods
• Latest stable version is 0.39.0

You install it with `gem install cocoapods`

You use it with `pod _0.39.0_ <command>`
• Latest beta version is 1.0.0 beta 4

You install it with `gem install cocoapods --pre`

You use it with `pod <command>`

• .podspec stays the same
• Podfile introduces breaking changes:
• No more implicit target
• No more link_with
• No more :exclusive => true
• No more :head
• etc.
With Cocoapods 1.0.0
• This is an example of Podfile for 0.39.0
• It will not work for1.0.0
• This is the equivalent Podfile for 1.0.0, using abstract_target
• It will not work for 0.39.0
• This is an example of Podfile for 0.39.0
• It will not work for1.0.0
• This is the equivalent Podfile for 1.0.0, using a Ruby def
• It will work for 0.39.0 as well :)
• You will have to replace :exclusive => true
with inherit! :search_paths

Sadly, you can't have a Podfile compatible for both
versions for this feature.
• You will have to replace :head with an explicit
repository path using :git => '...'

This solution is compatible with both versions, but
requires that the repository has a .podspec inside.



-> so, please, if you have your own pod, always
include your .podspec inside your git repository :)
What else is new?

(many things, but I will only list two)

(full list at https://github.com/CocoaPods/CocoaPods/
releases)
• Root Options let you use install! in your Podfile
to configure how you integrate your pods. Example:

install! 'cocoapods', :clean => false
• "Allow deduplication to take effect even when the
same pod is used with different sets of subspecs
across different platforms." --Marius Rackwitz



[what is that? next slides will explain it]
To understand deduplication
xcworkspace...
• Well, it was lie, you will not get the explanation on deduplication on
this slide...
• First, lets review a typical .xcworkspace structure:
• 1 Workspace
• multiple Projects for the Workspace
• multiple Targets for each Project
• multiple Configurations for each Project
• many Schemes to link 1 Target with 1 Configuration

(well, it's more complicated, but I'm simplifying)
The debug issue
• If the classic setup is usually to have Debug & Release
configurations, I found it more convenient to have DEV,
QA, STAGE and LIVE configurations.
• And I find it more convenient to have Debug, Release and
Automation targets.
• Previously, with Cocoapods 0.39.0 and multiple targets in
your Podfile, all your pods would be, by default,
configured in a unique state: "release"
• Which means you were not easily able to properly debug
something happening in a pod
The deduplication solution with 1.0.0
beta 4 released 24th February 2016
• The solution is very new!

More Related Content

KEY
Avoiding surprises with Chef and Vagrant
PDF
Deploying PHP Applications with Ansible
PDF
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
PDF
Ansible Oxford - Cows & Containers
PDF
Ansible and AWS
PPTX
Ansible: How to Get More Sleep and Require Less Coffee
PDF
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
PDF
Drupal VM for Drupal 8 Dev - MidCamp 2017
Avoiding surprises with Chef and Vagrant
Deploying PHP Applications with Ansible
Ansible v2 and Beyond (Ansible Hawai'i Meetup)
Ansible Oxford - Cows & Containers
Ansible and AWS
Ansible: How to Get More Sleep and Require Less Coffee
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
Drupal VM for Drupal 8 Dev - MidCamp 2017

What's hot (20)

PDF
Docker in Continuous Integration
PPTX
Ansible Devops North East - slides
PDF
A quick intro to Ansible
PDF
Ansible + WordPress
PDF
How Ansible Makes Automation Easy
PPTX
Monitor-Driven Development Using Ansible
PDF
Fun with containers: Use Ansible to build Docker images
PDF
Chef Provisioning a Chef Server Cluster - ChefConf 2015
PDF
Testing Ansible with Jenkins and Docker
PDF
Apache Cassandra and Go
PDF
Mitchell Hashimoto, HashiCorp
PDF
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
PPTX
Vagrant to-aws-flow
PDF
Setup Kubernetes with flannel on ubuntu platform
PDF
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
PDF
Sw install with_without_docker
PDF
Ansible Case Studies
PPT
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
PDF
Ansible Intro - June 2015 / Ansible Barcelona User Group
Docker in Continuous Integration
Ansible Devops North East - slides
A quick intro to Ansible
Ansible + WordPress
How Ansible Makes Automation Easy
Monitor-Driven Development Using Ansible
Fun with containers: Use Ansible to build Docker images
Chef Provisioning a Chef Server Cluster - ChefConf 2015
Testing Ansible with Jenkins and Docker
Apache Cassandra and Go
Mitchell Hashimoto, HashiCorp
SaltConf14 - Anita Kuno, HP & OpenStack - Using SaltStack for event-driven or...
Vagrant to-aws-flow
Setup Kubernetes with flannel on ubuntu platform
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Sw install with_without_docker
Ansible Case Studies
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Ansible Intro - June 2015 / Ansible Barcelona User Group
Ad

Viewers also liked (6)

PDF
La empatía
PPTX
Andar com deus
DOCX
Arp rarp
PDF
When do you need home care?
PDF
¿Es el momento de contratar fondos mixtos y de rentabilidad objetivo?
La empatía
Andar com deus
Arp rarp
When do you need home care?
¿Es el momento de contratar fondos mixtos y de rentabilidad objetivo?
Ad

Similar to Cocoa tip for Cocoaheads Shanghai February 2016 (20)

PDF
Using Cocoapods
PDF
Cocoapods Overview - library dependency manager for iOS
PPTX
CocoaPods.pptx
PPTX
What is CocoaPods and how to setup?
PDF
CocoaPods Basic Usage
PDF
Денис Лебедев-Управление зависимостями с помощью CocoaPods
PPTX
Create Your First Cocoa pods
PDF
Cocoapods in action
PPTX
Private pod support using cocoa pods in ios
PDF
RubyMotion Inspect Conference - 2013. (Without speaker notes.)
PDF
RubyMotion Inspect Conference - 2013. (With speaker notes.)
PDF
Cocoapods多人協做
PDF
Cocoa pods iOSDevUK 14 talk: managing your libraries
PDF
Codemotion 2013 - presentación cocoa pods
PDF
Practical Cocoapods
KEY
CocoaPods
PDF
Manage your external libraries with CocoaPods
PDF
Building static libraries for iOS with CocoaPods
PDF
How cocoapods can enhance your iOS development - Amir Hayek, Toluna
PDF
Cocoapods sane library management for xcode
Using Cocoapods
Cocoapods Overview - library dependency manager for iOS
CocoaPods.pptx
What is CocoaPods and how to setup?
CocoaPods Basic Usage
Денис Лебедев-Управление зависимостями с помощью CocoaPods
Create Your First Cocoa pods
Cocoapods in action
Private pod support using cocoa pods in ios
RubyMotion Inspect Conference - 2013. (Without speaker notes.)
RubyMotion Inspect Conference - 2013. (With speaker notes.)
Cocoapods多人協做
Cocoa pods iOSDevUK 14 talk: managing your libraries
Codemotion 2013 - presentación cocoa pods
Practical Cocoapods
CocoaPods
Manage your external libraries with CocoaPods
Building static libraries for iOS with CocoaPods
How cocoapods can enhance your iOS development - Amir Hayek, Toluna
Cocoapods sane library management for xcode

Recently uploaded (20)

PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mushroom cultivation and it's methods.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
NewMind AI Weekly Chronicles - August'25-Week II
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A comparative analysis of optical character recognition models for extracting...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
TLE Review Electricity (Electricity).pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Mushroom cultivation and it's methods.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
A Presentation on Artificial Intelligence
Heart disease approach using modified random forest and particle swarm optimi...
OMC Textile Division Presentation 2021.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
A comparative study of natural language inference in Swahili using monolingua...
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Network Security Unit 5.pdf for BCA BBA.
Diabetes mellitus diagnosis method based random forest with bat algorithm
SOPHOS-XG Firewall Administrator PPT.pptx

Cocoa tip for Cocoaheads Shanghai February 2016

  • 1. a 5 minutes
 CocoaTip by ♥
 February 2016 CocoaPods 1.0.0 beta 4
  • 2. Transitioning to new CocoaPods • Latest stable version is 0.39.0
 You install it with `gem install cocoapods`
 You use it with `pod _0.39.0_ <command>` • Latest beta version is 1.0.0 beta 4
 You install it with `gem install cocoapods --pre`
 You use it with `pod <command>`

  • 3. • .podspec stays the same • Podfile introduces breaking changes: • No more implicit target • No more link_with • No more :exclusive => true • No more :head • etc. With Cocoapods 1.0.0
  • 4. • This is an example of Podfile for 0.39.0 • It will not work for1.0.0 • This is the equivalent Podfile for 1.0.0, using abstract_target • It will not work for 0.39.0
  • 5. • This is an example of Podfile for 0.39.0 • It will not work for1.0.0 • This is the equivalent Podfile for 1.0.0, using a Ruby def • It will work for 0.39.0 as well :)
  • 6. • You will have to replace :exclusive => true with inherit! :search_paths
 Sadly, you can't have a Podfile compatible for both versions for this feature. • You will have to replace :head with an explicit repository path using :git => '...'
 This solution is compatible with both versions, but requires that the repository has a .podspec inside.
 
 -> so, please, if you have your own pod, always include your .podspec inside your git repository :)
  • 7. What else is new?
 (many things, but I will only list two)
 (full list at https://github.com/CocoaPods/CocoaPods/ releases) • Root Options let you use install! in your Podfile to configure how you integrate your pods. Example:
 install! 'cocoapods', :clean => false • "Allow deduplication to take effect even when the same pod is used with different sets of subspecs across different platforms." --Marius Rackwitz
 
 [what is that? next slides will explain it]
  • 8. To understand deduplication xcworkspace... • Well, it was lie, you will not get the explanation on deduplication on this slide... • First, lets review a typical .xcworkspace structure: • 1 Workspace • multiple Projects for the Workspace • multiple Targets for each Project • multiple Configurations for each Project • many Schemes to link 1 Target with 1 Configuration
 (well, it's more complicated, but I'm simplifying)
  • 9. The debug issue • If the classic setup is usually to have Debug & Release configurations, I found it more convenient to have DEV, QA, STAGE and LIVE configurations. • And I find it more convenient to have Debug, Release and Automation targets. • Previously, with Cocoapods 0.39.0 and multiple targets in your Podfile, all your pods would be, by default, configured in a unique state: "release" • Which means you were not easily able to properly debug something happening in a pod
  • 10. The deduplication solution with 1.0.0 beta 4 released 24th February 2016 • The solution is very new!