mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-01-12 22:50:10 +08:00
Summary:
This PR implements the first part of [RFC0004: CocoaPods Support Improvements](353d44f649/proposals/0004-cocoapods-support-improvements.md), splitting the `React.podspec` into separate podspecs to more closely match the structure of Xcode projects.
The new structure aims to have one to one mapping between Xcode projects and podspecs. The only places where we differ from this mapping are:
* `React/React-DevSupport.podspec`: `DevSupport` is a part of `React.xcodeproj`, which corresponds to the `React-Core` pod. However, we can't include it in the `React-Core` pod because `DevSupport` depends on `React-RCTWebSocket`, which depends on `React-Core`. Pods may not have circular dependencies.
* The new pods under `ReactCommon/` don't have a corresponding `xcodeproj` because there are no `xcodproj` files in `ReactCommon/`. Those C++ modules are included in `React.xcodeproj`.
*Next steps (not in scope of this PR):*
- Start submitting the Podspecs to CocoaPods on a deploy (or turn the React Native repo into a spec repo): this is important in order to make the experience nicer for library consumers, so that it's not necessary to specify the local path of each Podspec in `Podfile`, you can just add `pod 'React', <version>`.
- Add `Podfile` to the default project template (I have a PR ready for this, but because of bugs related to subspecs, it's blocked on this PR)
[iOS] [Changed] - Split React.podspec into separate podspecs for each Xcode project
Pull Request resolved: https://github.com/facebook/react-native/pull/23559
Differential Revision: D14179326
Pulled By: cpojer
fbshipit-source-id: 397a9c30b6b5d24f86c790057c71f0d403f56c3d
59 lines
2.6 KiB
Ruby
59 lines
2.6 KiB
Ruby
# coding: utf-8
|
||
# Copyright (c) Facebook, Inc. and its affiliates.
|
||
#
|
||
# This source code is licensed under the MIT license found in the
|
||
# LICENSE file in the root directory of this source tree.
|
||
|
||
require "json"
|
||
|
||
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
||
version = package['version']
|
||
|
||
source = { :git => 'https://github.com/facebook/react-native.git' }
|
||
if version == '1000.0.0'
|
||
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
||
source[:commit] = `git rev-parse HEAD`.strip
|
||
else
|
||
source[:tag] = "v#{version}"
|
||
end
|
||
|
||
Pod::Spec.new do |s|
|
||
s.name = "React"
|
||
s.version = version
|
||
s.summary = package["description"]
|
||
s.description = <<-DESC
|
||
React Native apps are built using the React JS
|
||
framework, and render directly to native UIKit
|
||
elements using a fully asynchronous architecture.
|
||
There is no browser and no HTML. We have picked what
|
||
we think is the best set of features from these and
|
||
other technologies to build what we hope to become
|
||
the best product development framework available,
|
||
with an emphasis on iteration speed, developer
|
||
delight, continuity of technology, and absolutely
|
||
beautiful and fast products with no compromises in
|
||
quality or capability.
|
||
DESC
|
||
s.homepage = "http://facebook.github.io/react-native/"
|
||
s.license = package["license"]
|
||
s.author = "Facebook, Inc. and its affiliates"
|
||
s.platforms = { :ios => "9.0", :tvos => "9.2" }
|
||
s.source = source
|
||
s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
|
||
s.cocoapods_version = ">= 1.2.0"
|
||
|
||
s.dependency "React-Core", version
|
||
s.dependency "React-DevSupport", version
|
||
s.dependency "React-RCTActionSheet", version
|
||
s.dependency "React-RCTAnimation", version
|
||
s.dependency "React-RCTBlob", version
|
||
s.dependency "React-RCTGeolocation", version
|
||
s.dependency "React-RCTImage", version
|
||
s.dependency "React-RCTLinking", version
|
||
s.dependency "React-RCTNetwork", version
|
||
s.dependency "React-RCTSettings", version
|
||
s.dependency "React-RCTText", version
|
||
s.dependency "React-RCTVibration", version
|
||
s.dependency "React-RCTWebSocket", version
|
||
end
|