Skip to content

Commit

Permalink
ios: Start using CocoaPods again.
Browse files Browse the repository at this point in the history
There was an attempt to use CocoaPods in aded466, 2017-03-19.

That was removed in 4096e71, 2017-07-18.

Some cleanup was done in 861744b, 2020-02-05.

To paraphrase Greg on zulip#3983:

CocoaPods is a tool for managing iOS libraries. Many people use it
in their React Native apps, but there some tricky bits that have
impeded universal adoption.

RN v0.60 signals a full embrace of the use of CocoaPods by making it
work more smoothly with RN. CocoaPods becomes required in v0.61.

So, use CocoaPods, writing a Podfile based on the example Podfile
given for react-native v0.59, at
https://github.com/facebook/react-native-website/blob/ded79d2cf4456d8b1a4f67c2cdc1391789e70617/docs/integration-with-existing-apps.md.
(That doc isn't live on the react-native docs website because of
facebook/react-native-website#1603.)

Originally, we were going to start using CocoaPods as part of the RN
v0.60 upgrade, but we have a fresh reason to want to use CocoaPods,
with its own deadline: zulip#3964, Apple auth. Someone has made a handy
Expo package to handle Apple auth, but we can't use Expo packages
without either fully committing to using the Expo SDK (a dramatic
step) or using a package called react-native-unimodules, which lets
you select individual Expo packages. react-native-unimodules
requires the use of CocoaPods.

Fixes: zulip#3983
  • Loading branch information
Chris Bobbe committed Mar 23, 2020
1 parent 658003e commit 535f0f4
Show file tree
Hide file tree
Showing 6 changed files with 201 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# Suppress noisy generated files in diffs.
yarn.lock -diff
src/webview/js/generatedEs3.js -diff
ios/Podfile.lock

# The flow-typed files that aren't pure generated noise have names with at
# least a major version number -- like `redux_v4.x.x.js`.
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ npm-debug.log
# Test files
/pirlo-cli

# CocoaPods (not currently used)
# CocoaPods
/ios/Pods

# Transifex, for a maintainer syncing translations up and down
Expand Down
31 changes: 31 additions & 0 deletions ios/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This was the iOS Deployment Target (project > ZulipMobile > Info in Xcode)
# as of 2020-03.
platform :ios, '10.3'

# This list will need to change for RN > v0.59. If you're changing it
# for any other reason, first look at the official example Podfile at
# https://github.com/facebook/react-native-website/blob/ded79d2cf/docs/integration-with-existing-apps.md#configuring-cocoapods-dependencies.
target 'ZulipMobile' do
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge',
'DevSupport',
'RCTText',
'RCTNetwork',
'RCTWebSocket', # Needed for debugging
'RCTAnimation', # Needed for FlatList and animations running on native UI thread
# Add any other subspecs you want to use in your project
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

# Third party deps podspec link
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

target 'ZulipMobileTests' do
inherit! :search_paths
# Pods for testing
end

end
90 changes: 90 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
PODS:
- boost-for-react-native (1.63.0)
- DoubleConversion (1.1.6)
- Folly (2018.10.22.00):
- boost-for-react-native
- DoubleConversion
- glog
- glog (0.3.5)
- React/Core (0.59.10):
- yoga (= 0.59.10.React)
- React/CxxBridge (0.59.10):
- Folly (= 2018.10.22.00)
- React/Core
- React/cxxreact
- React/jsiexecutor
- React/cxxreact (0.59.10):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React/jsinspector
- React/DevSupport (0.59.10):
- React/Core
- React/RCTWebSocket
- React/fishhook (0.59.10)
- React/jsi (0.59.10):
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React/jsiexecutor (0.59.10):
- DoubleConversion
- Folly (= 2018.10.22.00)
- glog
- React/cxxreact
- React/jsi
- React/jsinspector (0.59.10)
- React/RCTAnimation (0.59.10):
- React/Core
- React/RCTBlob (0.59.10):
- React/Core
- React/RCTNetwork (0.59.10):
- React/Core
- React/RCTText (0.59.10):
- React/Core
- React/RCTWebSocket (0.59.10):
- React/Core
- React/fishhook
- React/RCTBlob
- yoga (0.59.10.React)

DEPENDENCIES:
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- React/Core (from `../node_modules/react-native`)
- React/CxxBridge (from `../node_modules/react-native`)
- React/DevSupport (from `../node_modules/react-native`)
- React/RCTAnimation (from `../node_modules/react-native`)
- React/RCTNetwork (from `../node_modules/react-native`)
- React/RCTText (from `../node_modules/react-native`)
- React/RCTWebSocket (from `../node_modules/react-native`)
- yoga (from `../node_modules/react-native/ReactCommon/yoga`)

SPEC REPOS:
trunk:
- boost-for-react-native

EXTERNAL SOURCES:
DoubleConversion:
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
glog:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
React:
:path: "../node_modules/react-native"
yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
Folly: de497beb10f102453a1afa9edbf8cf8a251890de
glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d
React: 36d0768f9e93be2473b37e7fa64f92c1d5341eef
yoga: 684513b14b03201579ba3cee20218c9d1298b0cc

PODFILE CHECKSUM: 854427a40221b5f8b4a3e91292534e551304eba0

COCOAPODS: 1.9.1
Loading

0 comments on commit 535f0f4

Please sign in to comment.