mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-24 04:16:00 +08:00
Expose React Native version as a symbol rather than macro
Summary: Add RCTGetReactNativeVersion() to expose version in native code. Right now, version is exposed internally to RN using a MACRO constant. This exposes a symbol (function) that can be called to retrieve the React Native version in iOS. Also exposed RCTVersion.h as a public header in the React project so it is available to developers. The motivation behind this is for https://github.com/wix/detox —we need to know what RN version the user has, if any, so we can properly handle support and abstract differences. Ran bump-oss-version.js to ensure the template is applied properly. Also compiled the project to make sure nothing is broken. [IOS] [ENHANCEMENT] [RCTVersion.h] - Expose version as a compile-time symbol for native queries <!-- Help reviewers and the release process by writing your own release notes **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.** CATEGORY [----------] TYPE [ CLI ] [-------------] LOCATION [ DOCS ] [ BREAKING ] [-------------] [ GENERAL ] [ BUGFIX ] [-{Component}-] [ INTERNAL ] [ ENHANCEMENT ] [ {File} ] [ IOS ] [ FEATURE ] [ {Directory} ] |-----------| [ ANDROID ] [ MINOR ] [ {Framework} ] - | {Message} | [----------] [-------------] [-------------] |-----------| [CATEGORY] [TYPE] [LOCATION] - MESSAGE EXAMPLES: [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see --> Closes https://github.com/facebook/react-native/pull/18136 Differential Revision: D7141076 Pulled By: hramos fbshipit-source-id: 18a92b8c60d7b43fa0ed22597ea46a35cff73c56
This commit is contained in:
committed by
Facebook Github Bot
parent
7be3d1cbaf
commit
30469ed001
@@ -67,8 +67,8 @@ fs.writeFileSync(
|
||||
);
|
||||
|
||||
fs.writeFileSync(
|
||||
'React/Base/RCTVersion.h',
|
||||
cat('scripts/versiontemplates/RCTVersion.h.template')
|
||||
'React/Base/RCTVersion.m',
|
||||
cat('scripts/versiontemplates/RCTVersion.m.template')
|
||||
.replace('${major}', `@(${major})`)
|
||||
.replace('${minor}', `@(${minor})`)
|
||||
.replace('${patch}', `@(${patch})`)
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/**
|
||||
* @generated by scripts/bump-oss-version.js
|
||||
*
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#define RCT_REACT_NATIVE_VERSION @{ \
|
||||
@"major": ${major}, \
|
||||
@"minor": ${minor}, \
|
||||
@"patch": ${patch}, \
|
||||
@"prerelease": ${prerelease}, \
|
||||
}
|
||||
33
scripts/versiontemplates/RCTVersion.m.template
Normal file
33
scripts/versiontemplates/RCTVersion.m.template
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @generated by scripts/bump-oss-version.js
|
||||
*
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import "RCTVersion.h"
|
||||
|
||||
NSString* const RCTVersionMajor = @"major";
|
||||
NSString* const RCTVersionMinor = @"minor";
|
||||
NSString* const RCTVersionPatch = @"patch";
|
||||
NSString* const RCTVersionPrerelease = @"prerelease";
|
||||
|
||||
static NSDictionary* __rnVersion;
|
||||
|
||||
__attribute__((constructor))
|
||||
static void __makeVersion()
|
||||
{
|
||||
__rnVersion = @{
|
||||
RCTVersionMajor: ${major},
|
||||
RCTVersionMinor: ${minor},
|
||||
RCTVersionPatch: ${patch},
|
||||
RCTVersionPrerelease: ${prerelease},
|
||||
};
|
||||
}
|
||||
|
||||
NSDictionary* RCTGetReactNativeVersion(void)
|
||||
{
|
||||
return __rnVersion;
|
||||
}
|
||||
Reference in New Issue
Block a user