├── .DS_Store ├── .npmignore ├── README.md ├── RNAppInfo.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ ├── RNAppInfo.xccheckout │ │ └── RNI18n.xccheckout │ └── xcuserdata │ │ └── jean-alexandreiragne.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings └── xcuserdata │ └── jean-alexandreiragne.xcuserdatad │ └── xcschemes │ ├── RNI18n.xcscheme │ └── xcschememanagement.plist ├── RNAppInfo ├── RNAppInfo.h └── RNAppInfo.m ├── android ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── co │ └── instea │ └── RNAppInfo │ ├── RNAppInfo.java │ └── RNAppInfoPackage.java ├── index.js └── package.json /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Iragne/react-native-app-info/b265e9392d91eb3a0c2565a83a79b495e5881826/.DS_Store -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules/**/* 2 | 3 | # Xcode 4 | # 5 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 6 | 7 | ## Build generated 8 | build/ 9 | DerivedData 10 | 11 | ## Various settings 12 | *.pbxuser 13 | !default.pbxuser 14 | *.mode1v3 15 | !default.mode1v3 16 | *.mode2v3 17 | !default.mode2v3 18 | *.perspectivev3 19 | !default.perspectivev3 20 | xcuserdata 21 | 22 | ## Other 23 | *.xccheckout 24 | *.moved-aside 25 | *.xcuserstate 26 | 27 | ## Obj-C/Swift specific 28 | *.hmap 29 | *.ipa 30 | 31 | # CocoaPods 32 | # 33 | # We recommend against adding the Pods directory to your .gitignore. However 34 | # you should judge for yourself, the pros and cons are mentioned at: 35 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 36 | # 37 | #Pods/ 38 | 39 | # Carthage 40 | # 41 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 42 | # Carthage/Checkouts 43 | 44 | Carthage/Build -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-native-app-info 2 | 3 | 4 | 5 | ## Installation 6 | 7 | 1. `$ npm install react-native-app-info --save` 8 | 2. `$ rnpm link react-native-app-info` 9 | 10 | 11 | ## Usage 12 | 13 | ```js 14 | var AppInfo = require('react-native-app-info'); 15 | 16 | console.log("App Version Number",AppInfo.getInfoVersion()); 17 | console.log("App Short Version Number",AppInfo.getInfoShortVersion()); 18 | 19 | console.log("App Version Number",AppInfo.getInfoBundleIdentifier()); 20 | console.log("App Short Version Number",AppInfo.getInfoName()); 21 | 22 | 23 | console.log("App Version Number",AppInfo.getInfoDisplayName()); 24 | 25 | 26 | AppInfo.setNetworkActivityIndicatorVisible(true); 27 | 28 | AppInfo.setNetworkActivityIndicatorVisible(false); 29 | 30 | ``` 31 | 32 | **Notice:** `setNetworkActivityIndicatorVisible` function is not supported on Android. 33 | 34 | ## Licence 35 | MIT 36 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | CDD7BF841B2D5126006FDA75 /* libRNAppInfo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CDD7BF781B2D5125006FDA75 /* libRNAppInfo.a */; }; 11 | DBCB5CDE1B46E62D005CB38B /* RNAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DBCB5CDD1B46E62D005CB38B /* RNAppInfo.m */; }; 12 | /* End PBXBuildFile section */ 13 | 14 | /* Begin PBXContainerItemProxy section */ 15 | CDD7BF851B2D5126006FDA75 /* PBXContainerItemProxy */ = { 16 | isa = PBXContainerItemProxy; 17 | containerPortal = CDD7BF701B2D5125006FDA75 /* Project object */; 18 | proxyType = 1; 19 | remoteGlobalIDString = CDD7BF771B2D5125006FDA75; 20 | remoteInfo = RNI18n; 21 | }; 22 | /* End PBXContainerItemProxy section */ 23 | 24 | /* Begin PBXCopyFilesBuildPhase section */ 25 | CDD7BF761B2D5125006FDA75 /* CopyFiles */ = { 26 | isa = PBXCopyFilesBuildPhase; 27 | buildActionMask = 2147483647; 28 | dstPath = "include/$(PRODUCT_NAME)"; 29 | dstSubfolderSpec = 16; 30 | files = ( 31 | ); 32 | runOnlyForDeploymentPostprocessing = 0; 33 | }; 34 | /* End PBXCopyFilesBuildPhase section */ 35 | 36 | /* Begin PBXFileReference section */ 37 | CDD7BF781B2D5125006FDA75 /* libRNAppInfo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNAppInfo.a; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | CDD7BF831B2D5126006FDA75 /* RNAppInfoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNAppInfoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 39 | DBCB5CDC1B46E62D005CB38B /* RNAppInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNAppInfo.h; sourceTree = ""; }; 40 | DBCB5CDD1B46E62D005CB38B /* RNAppInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNAppInfo.m; sourceTree = ""; }; 41 | /* End PBXFileReference section */ 42 | 43 | /* Begin PBXFrameworksBuildPhase section */ 44 | CDD7BF751B2D5125006FDA75 /* Frameworks */ = { 45 | isa = PBXFrameworksBuildPhase; 46 | buildActionMask = 2147483647; 47 | files = ( 48 | ); 49 | runOnlyForDeploymentPostprocessing = 0; 50 | }; 51 | CDD7BF801B2D5126006FDA75 /* Frameworks */ = { 52 | isa = PBXFrameworksBuildPhase; 53 | buildActionMask = 2147483647; 54 | files = ( 55 | CDD7BF841B2D5126006FDA75 /* libRNAppInfo.a in Frameworks */, 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | /* End PBXFrameworksBuildPhase section */ 60 | 61 | /* Begin PBXGroup section */ 62 | CDD7BF6F1B2D5125006FDA75 = { 63 | isa = PBXGroup; 64 | children = ( 65 | DBCB5CDB1B46E62D005CB38B /* RNAppInfo */, 66 | CDD7BF791B2D5125006FDA75 /* Products */, 67 | ); 68 | sourceTree = ""; 69 | }; 70 | CDD7BF791B2D5125006FDA75 /* Products */ = { 71 | isa = PBXGroup; 72 | children = ( 73 | CDD7BF781B2D5125006FDA75 /* libRNAppInfo.a */, 74 | CDD7BF831B2D5126006FDA75 /* RNAppInfoTests.xctest */, 75 | ); 76 | name = Products; 77 | sourceTree = ""; 78 | }; 79 | DBCB5CDB1B46E62D005CB38B /* RNAppInfo */ = { 80 | isa = PBXGroup; 81 | children = ( 82 | DBCB5CDC1B46E62D005CB38B /* RNAppInfo.h */, 83 | DBCB5CDD1B46E62D005CB38B /* RNAppInfo.m */, 84 | ); 85 | path = RNAppInfo; 86 | sourceTree = ""; 87 | }; 88 | /* End PBXGroup section */ 89 | 90 | /* Begin PBXNativeTarget section */ 91 | CDD7BF771B2D5125006FDA75 /* RNAppInfo */ = { 92 | isa = PBXNativeTarget; 93 | buildConfigurationList = CDD7BF8C1B2D5126006FDA75 /* Build configuration list for PBXNativeTarget "RNAppInfo" */; 94 | buildPhases = ( 95 | CDD7BF741B2D5125006FDA75 /* Sources */, 96 | CDD7BF751B2D5125006FDA75 /* Frameworks */, 97 | CDD7BF761B2D5125006FDA75 /* CopyFiles */, 98 | ); 99 | buildRules = ( 100 | ); 101 | dependencies = ( 102 | ); 103 | name = RNAppInfo; 104 | productName = RNI18n; 105 | productReference = CDD7BF781B2D5125006FDA75 /* libRNAppInfo.a */; 106 | productType = "com.apple.product-type.library.static"; 107 | }; 108 | CDD7BF821B2D5126006FDA75 /* RNAppInfoTests */ = { 109 | isa = PBXNativeTarget; 110 | buildConfigurationList = CDD7BF8F1B2D5126006FDA75 /* Build configuration list for PBXNativeTarget "RNAppInfoTests" */; 111 | buildPhases = ( 112 | CDD7BF7F1B2D5126006FDA75 /* Sources */, 113 | CDD7BF801B2D5126006FDA75 /* Frameworks */, 114 | CDD7BF811B2D5126006FDA75 /* Resources */, 115 | ); 116 | buildRules = ( 117 | ); 118 | dependencies = ( 119 | CDD7BF861B2D5126006FDA75 /* PBXTargetDependency */, 120 | ); 121 | name = RNAppInfoTests; 122 | productName = RNI18nTests; 123 | productReference = CDD7BF831B2D5126006FDA75 /* RNAppInfoTests.xctest */; 124 | productType = "com.apple.product-type.bundle.unit-test"; 125 | }; 126 | /* End PBXNativeTarget section */ 127 | 128 | /* Begin PBXProject section */ 129 | CDD7BF701B2D5125006FDA75 /* Project object */ = { 130 | isa = PBXProject; 131 | attributes = { 132 | LastUpgradeCheck = 0630; 133 | ORGANIZATIONNAME = "Alexander Zaytsev"; 134 | TargetAttributes = { 135 | CDD7BF771B2D5125006FDA75 = { 136 | CreatedOnToolsVersion = 6.3.2; 137 | }; 138 | CDD7BF821B2D5126006FDA75 = { 139 | CreatedOnToolsVersion = 6.3.2; 140 | }; 141 | }; 142 | }; 143 | buildConfigurationList = CDD7BF731B2D5125006FDA75 /* Build configuration list for PBXProject "RNAppInfo" */; 144 | compatibilityVersion = "Xcode 3.2"; 145 | developmentRegion = English; 146 | hasScannedForEncodings = 0; 147 | knownRegions = ( 148 | en, 149 | ); 150 | mainGroup = CDD7BF6F1B2D5125006FDA75; 151 | productRefGroup = CDD7BF791B2D5125006FDA75 /* Products */; 152 | projectDirPath = ""; 153 | projectRoot = ""; 154 | targets = ( 155 | CDD7BF771B2D5125006FDA75 /* RNAppInfo */, 156 | CDD7BF821B2D5126006FDA75 /* RNAppInfoTests */, 157 | ); 158 | }; 159 | /* End PBXProject section */ 160 | 161 | /* Begin PBXResourcesBuildPhase section */ 162 | CDD7BF811B2D5126006FDA75 /* Resources */ = { 163 | isa = PBXResourcesBuildPhase; 164 | buildActionMask = 2147483647; 165 | files = ( 166 | ); 167 | runOnlyForDeploymentPostprocessing = 0; 168 | }; 169 | /* End PBXResourcesBuildPhase section */ 170 | 171 | /* Begin PBXSourcesBuildPhase section */ 172 | CDD7BF741B2D5125006FDA75 /* Sources */ = { 173 | isa = PBXSourcesBuildPhase; 174 | buildActionMask = 2147483647; 175 | files = ( 176 | DBCB5CDE1B46E62D005CB38B /* RNAppInfo.m in Sources */, 177 | ); 178 | runOnlyForDeploymentPostprocessing = 0; 179 | }; 180 | CDD7BF7F1B2D5126006FDA75 /* Sources */ = { 181 | isa = PBXSourcesBuildPhase; 182 | buildActionMask = 2147483647; 183 | files = ( 184 | ); 185 | runOnlyForDeploymentPostprocessing = 0; 186 | }; 187 | /* End PBXSourcesBuildPhase section */ 188 | 189 | /* Begin PBXTargetDependency section */ 190 | CDD7BF861B2D5126006FDA75 /* PBXTargetDependency */ = { 191 | isa = PBXTargetDependency; 192 | target = CDD7BF771B2D5125006FDA75 /* RNAppInfo */; 193 | targetProxy = CDD7BF851B2D5126006FDA75 /* PBXContainerItemProxy */; 194 | }; 195 | /* End PBXTargetDependency section */ 196 | 197 | /* Begin XCBuildConfiguration section */ 198 | CDD7BF8A1B2D5126006FDA75 /* Debug */ = { 199 | isa = XCBuildConfiguration; 200 | buildSettings = { 201 | ALWAYS_SEARCH_USER_PATHS = NO; 202 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 203 | CLANG_CXX_LIBRARY = "libc++"; 204 | CLANG_ENABLE_MODULES = YES; 205 | CLANG_ENABLE_OBJC_ARC = YES; 206 | CLANG_WARN_BOOL_CONVERSION = YES; 207 | CLANG_WARN_CONSTANT_CONVERSION = YES; 208 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 209 | CLANG_WARN_EMPTY_BODY = YES; 210 | CLANG_WARN_ENUM_CONVERSION = YES; 211 | CLANG_WARN_INT_CONVERSION = YES; 212 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 213 | CLANG_WARN_UNREACHABLE_CODE = YES; 214 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 215 | COPY_PHASE_STRIP = NO; 216 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 217 | ENABLE_STRICT_OBJC_MSGSEND = YES; 218 | GCC_C_LANGUAGE_STANDARD = gnu99; 219 | GCC_DYNAMIC_NO_PIC = NO; 220 | GCC_NO_COMMON_BLOCKS = YES; 221 | GCC_OPTIMIZATION_LEVEL = 0; 222 | GCC_PREPROCESSOR_DEFINITIONS = ( 223 | "DEBUG=1", 224 | "$(inherited)", 225 | ); 226 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 227 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 228 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 229 | GCC_WARN_UNDECLARED_SELECTOR = YES; 230 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 231 | GCC_WARN_UNUSED_FUNCTION = YES; 232 | GCC_WARN_UNUSED_VARIABLE = YES; 233 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 234 | MTL_ENABLE_DEBUG_INFO = YES; 235 | ONLY_ACTIVE_ARCH = YES; 236 | SDKROOT = iphoneos; 237 | }; 238 | name = Debug; 239 | }; 240 | CDD7BF8B1B2D5126006FDA75 /* Release */ = { 241 | isa = XCBuildConfiguration; 242 | buildSettings = { 243 | ALWAYS_SEARCH_USER_PATHS = NO; 244 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 245 | CLANG_CXX_LIBRARY = "libc++"; 246 | CLANG_ENABLE_MODULES = YES; 247 | CLANG_ENABLE_OBJC_ARC = YES; 248 | CLANG_WARN_BOOL_CONVERSION = YES; 249 | CLANG_WARN_CONSTANT_CONVERSION = YES; 250 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 251 | CLANG_WARN_EMPTY_BODY = YES; 252 | CLANG_WARN_ENUM_CONVERSION = YES; 253 | CLANG_WARN_INT_CONVERSION = YES; 254 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 255 | CLANG_WARN_UNREACHABLE_CODE = YES; 256 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 257 | COPY_PHASE_STRIP = NO; 258 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 259 | ENABLE_NS_ASSERTIONS = NO; 260 | ENABLE_STRICT_OBJC_MSGSEND = YES; 261 | GCC_C_LANGUAGE_STANDARD = gnu99; 262 | GCC_NO_COMMON_BLOCKS = YES; 263 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 264 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 265 | GCC_WARN_UNDECLARED_SELECTOR = YES; 266 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 267 | GCC_WARN_UNUSED_FUNCTION = YES; 268 | GCC_WARN_UNUSED_VARIABLE = YES; 269 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 270 | MTL_ENABLE_DEBUG_INFO = NO; 271 | SDKROOT = iphoneos; 272 | VALIDATE_PRODUCT = YES; 273 | }; 274 | name = Release; 275 | }; 276 | CDD7BF8D1B2D5126006FDA75 /* Debug */ = { 277 | isa = XCBuildConfiguration; 278 | buildSettings = { 279 | HEADER_SEARCH_PATHS = ( 280 | "$(inherited)", 281 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 282 | "$(SRCROOT)/node_modules/react-native/React/**", 283 | "$(SRCROOT)/../react-native/React/**", 284 | ); 285 | OTHER_LDFLAGS = "-ObjC"; 286 | PRODUCT_NAME = RNAppInfo; 287 | SKIP_INSTALL = YES; 288 | }; 289 | name = Debug; 290 | }; 291 | CDD7BF8E1B2D5126006FDA75 /* Release */ = { 292 | isa = XCBuildConfiguration; 293 | buildSettings = { 294 | HEADER_SEARCH_PATHS = ( 295 | "$(inherited)", 296 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, 297 | "$(SRCROOT)/node_modules/react-native/React/**", 298 | "$(SRCROOT)/../react-native/React/**", 299 | ); 300 | OTHER_LDFLAGS = "-ObjC"; 301 | PRODUCT_NAME = RNAppInfo; 302 | SKIP_INSTALL = YES; 303 | }; 304 | name = Release; 305 | }; 306 | CDD7BF901B2D5126006FDA75 /* Debug */ = { 307 | isa = XCBuildConfiguration; 308 | buildSettings = { 309 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 310 | FRAMEWORK_SEARCH_PATHS = ( 311 | "$(SDKROOT)/Developer/Library/Frameworks", 312 | "$(inherited)", 313 | ); 314 | GCC_PREPROCESSOR_DEFINITIONS = ( 315 | "DEBUG=1", 316 | "$(inherited)", 317 | ); 318 | INFOPLIST_FILE = RNI18nTests/Info.plist; 319 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 320 | PRODUCT_NAME = RNAppInfoTests; 321 | }; 322 | name = Debug; 323 | }; 324 | CDD7BF911B2D5126006FDA75 /* Release */ = { 325 | isa = XCBuildConfiguration; 326 | buildSettings = { 327 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 328 | FRAMEWORK_SEARCH_PATHS = ( 329 | "$(SDKROOT)/Developer/Library/Frameworks", 330 | "$(inherited)", 331 | ); 332 | INFOPLIST_FILE = RNI18nTests/Info.plist; 333 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 334 | PRODUCT_NAME = RNAppInfoTests; 335 | }; 336 | name = Release; 337 | }; 338 | /* End XCBuildConfiguration section */ 339 | 340 | /* Begin XCConfigurationList section */ 341 | CDD7BF731B2D5125006FDA75 /* Build configuration list for PBXProject "RNAppInfo" */ = { 342 | isa = XCConfigurationList; 343 | buildConfigurations = ( 344 | CDD7BF8A1B2D5126006FDA75 /* Debug */, 345 | CDD7BF8B1B2D5126006FDA75 /* Release */, 346 | ); 347 | defaultConfigurationIsVisible = 0; 348 | defaultConfigurationName = Release; 349 | }; 350 | CDD7BF8C1B2D5126006FDA75 /* Build configuration list for PBXNativeTarget "RNAppInfo" */ = { 351 | isa = XCConfigurationList; 352 | buildConfigurations = ( 353 | CDD7BF8D1B2D5126006FDA75 /* Debug */, 354 | CDD7BF8E1B2D5126006FDA75 /* Release */, 355 | ); 356 | defaultConfigurationIsVisible = 0; 357 | defaultConfigurationName = Release; 358 | }; 359 | CDD7BF8F1B2D5126006FDA75 /* Build configuration list for PBXNativeTarget "RNAppInfoTests" */ = { 360 | isa = XCConfigurationList; 361 | buildConfigurations = ( 362 | CDD7BF901B2D5126006FDA75 /* Debug */, 363 | CDD7BF911B2D5126006FDA75 /* Release */, 364 | ); 365 | defaultConfigurationIsVisible = 0; 366 | defaultConfigurationName = Release; 367 | }; 368 | /* End XCConfigurationList section */ 369 | }; 370 | rootObject = CDD7BF701B2D5125006FDA75 /* Project object */; 371 | } 372 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/project.xcworkspace/xcshareddata/RNAppInfo.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 88D67FBB-D330-4F9C-9264-209F418C4A7D 9 | IDESourceControlProjectName 10 | RNAppInfo 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 009E78C49B15DB17A11678E0C9617BA080901240 14 | github.com:Grapy/iosapp.git 15 | 16 | IDESourceControlProjectPath 17 | node_modules/react-native-app-info/RNAppInfo.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 009E78C49B15DB17A11678E0C9617BA080901240 21 | ../../../.. 22 | 23 | IDESourceControlProjectURL 24 | github.com:Grapy/iosapp.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 009E78C49B15DB17A11678E0C9617BA080901240 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 009E78C49B15DB17A11678E0C9617BA080901240 36 | IDESourceControlWCCName 37 | Grapy 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/project.xcworkspace/xcshareddata/RNI18n.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | B9125646-6B9D-4901-AB39-796DE4EA3F33 9 | IDESourceControlProjectName 10 | RNI18n 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 009E78C49B15DB17A11678E0C9617BA080901240 14 | github.com:Grapy/iosapp.git 15 | 16 | IDESourceControlProjectPath 17 | node_modules/react-native-app-info/RNI18n.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 009E78C49B15DB17A11678E0C9617BA080901240 21 | ../../../.. 22 | 23 | IDESourceControlProjectURL 24 | github.com:Grapy/iosapp.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 009E78C49B15DB17A11678E0C9617BA080901240 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 009E78C49B15DB17A11678E0C9617BA080901240 36 | IDESourceControlWCCName 37 | Grapy 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/project.xcworkspace/xcuserdata/jean-alexandreiragne.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Iragne/react-native-app-info/b265e9392d91eb3a0c2565a83a79b495e5881826/RNAppInfo.xcodeproj/project.xcworkspace/xcuserdata/jean-alexandreiragne.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/project.xcworkspace/xcuserdata/jean-alexandreiragne.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/xcuserdata/jean-alexandreiragne.xcuserdatad/xcschemes/RNI18n.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 75 | 76 | 82 | 83 | 84 | 85 | 86 | 87 | 93 | 94 | 100 | 101 | 102 | 103 | 105 | 106 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /RNAppInfo.xcodeproj/xcuserdata/jean-alexandreiragne.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RNI18n.xcscheme 8 | 9 | orderHint 10 | 10 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | CDD7BF771B2D5125006FDA75 16 | 17 | primary 18 | 19 | 20 | CDD7BF821B2D5126006FDA75 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /RNAppInfo/RNAppInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // RNAppInfo.h 3 | // RNAppInfo 4 | // 5 | // 6 | 7 | #import 8 | #if __has_include("RCTBridgeModule.h") 9 | #import "RCTBridgeModule.h" 10 | #else 11 | #import 12 | #endif 13 | #if __has_include("RCTLog.h") 14 | #import "RCTLog.h" 15 | #else 16 | #import 17 | #endif 18 | 19 | @interface RNAppInfo : NSObject 20 | @end 21 | -------------------------------------------------------------------------------- /RNAppInfo/RNAppInfo.m: -------------------------------------------------------------------------------- 1 | // 2 | // RNAppInfo.m 3 | // RNAppInfo 4 | // 5 | // 6 | 7 | #import "RNAppInfo.h" 8 | #if __has_include("RCTBridge.h") 9 | #import "RCTBridge.h" 10 | #else 11 | #import 12 | #endif 13 | 14 | @implementation RNAppInfo 15 | RCT_EXPORT_MODULE(); 16 | 17 | 18 | 19 | - (NSDictionary *)constantsToExport 20 | { 21 | NSString *displayName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]; 22 | if(displayName == nil) 23 | displayName = @""; 24 | 25 | NSString *iosVersion = [[UIDevice currentDevice] systemVersion]; 26 | NSString *infoDeviceName = [[UIDevice currentDevice] name]; 27 | 28 | return @{ 29 | @"version": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"], 30 | @"shortVersion": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"], 31 | @"bundleIdentifier": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"], 32 | @"name": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"], 33 | @"displayName": displayName, 34 | @"getInfoiOS":iosVersion, 35 | @"getInfoDeviceName":infoDeviceName, 36 | 37 | }; 38 | } 39 | RCT_EXPORT_METHOD(setNetworkActivityIndicatorVisible:(BOOL)active) { 40 | [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:active]; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.1" 6 | 7 | defaultConfig { 8 | minSdkVersion 16 9 | targetSdkVersion 22 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | } 14 | 15 | dependencies { 16 | compile 'com.facebook.react:react-native:0.18.+' 17 | } 18 | -------------------------------------------------------------------------------- /android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /android/src/main/java/co/instea/RNAppInfo/RNAppInfo.java: -------------------------------------------------------------------------------- 1 | package co.instea.RNAppInfo; 2 | 3 | import com.facebook.react.bridge.ReactApplicationContext; 4 | import com.facebook.react.bridge.ReactContextBaseJavaModule; 5 | 6 | import android.content.pm.PackageManager; 7 | import android.content.pm.PackageInfo; 8 | import android.content.pm.ApplicationInfo; 9 | import android.content.pm.PackageManager.NameNotFoundException; 10 | 11 | import java.util.HashMap; 12 | import java.util.Map; 13 | 14 | public class RNAppInfo extends ReactContextBaseJavaModule { 15 | 16 | private String packageName = null; 17 | private String displayName = null; 18 | private String version = null; 19 | private String versionCode = null; 20 | 21 | public RNAppInfo(ReactApplicationContext reactContext) { 22 | super(reactContext); 23 | try { 24 | PackageManager pManager = reactContext.getPackageManager(); 25 | packageName = reactContext.getPackageName(); 26 | PackageInfo pInfo = pManager.getPackageInfo(packageName, 0); 27 | ApplicationInfo aInfo = pManager.getApplicationInfo(packageName, 0); 28 | displayName = pManager.getApplicationLabel(aInfo).toString(); 29 | version = pInfo.versionName; 30 | versionCode = String.valueOf(pInfo.versionCode); 31 | } catch (NameNotFoundException nnfe) { 32 | System.out.println("RNAppInfo: package name not found"); 33 | } 34 | } 35 | 36 | @Override 37 | public String getName() { 38 | return "RNAppInfo"; 39 | } 40 | 41 | @Override 42 | public Map getConstants() { 43 | final Map constants = new HashMap<>(); 44 | constants.put("version", versionCode); 45 | constants.put("shortVersion", version); 46 | constants.put("bundleIdentifier", packageName); 47 | constants.put("name", packageName); 48 | constants.put("displayName", displayName); 49 | return constants; 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /android/src/main/java/co/instea/RNAppInfo/RNAppInfoPackage.java: -------------------------------------------------------------------------------- 1 | package co.instea.RNAppInfo; 2 | 3 | import com.facebook.react.ReactPackage; 4 | import com.facebook.react.bridge.JavaScriptModule; 5 | import com.facebook.react.bridge.NativeModule; 6 | import com.facebook.react.bridge.ReactApplicationContext; 7 | import com.facebook.react.uimanager.ViewManager; 8 | import java.util.ArrayList; 9 | import java.util.Arrays; 10 | import java.util.Collections; 11 | import java.util.List; 12 | 13 | public class RNAppInfoPackage implements ReactPackage { 14 | 15 | @Override 16 | public List createNativeModules(ReactApplicationContext reactContext) { 17 | List modules = new ArrayList<>(); 18 | modules.add(new RNAppInfo(reactContext)); 19 | return modules; 20 | } 21 | 22 | @Override 23 | public List> createJSModules() { 24 | return Collections.emptyList(); 25 | } 26 | 27 | @Override 28 | public List createViewManagers(ReactApplicationContext reactContext) { 29 | return Arrays.asList(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | 4 | var { RNAppInfo } = require('react-native').NativeModules; 5 | 6 | var AppInfo = { 7 | getInfoVersion: function (){ 8 | return RNAppInfo.version; 9 | }, 10 | getInfoShortVersion: function (){ 11 | return RNAppInfo.shortVersion; 12 | }, 13 | getInfoBundleIdentifier: function (){ 14 | return RNAppInfo.bundleIdentifier; 15 | }, 16 | getInfoName: function (){ 17 | return RNAppInfo.name; 18 | }, 19 | getInfoDisplayName: function (){ 20 | return RNAppInfo.displayName; 21 | }, 22 | setNetworkActivityIndicatorVisible: function (visible) { 23 | if (Platform.OS === 'ios') { 24 | var appInfo = require('react-native').NativeModules.RNAppInfo; 25 | appInfo.setNetworkActivityIndicatorVisible(visible); 26 | } else { 27 | console.warn('setNetworkActivityIndicatorVisible function not supported by Android'); 28 | } 29 | } 30 | }; 31 | 32 | 33 | module.exports = AppInfo; 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-app-info", 3 | "version": "0.0.4", 4 | "description": "React Native app info and version", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/Iragne/react-native-app-info" 12 | }, 13 | "keywords": [ 14 | "react-native", 15 | "react-component", 16 | "ios", 17 | "version", 18 | "NSBundle" 19 | ], 20 | "author": "Jean-Alexandre Iragne", 21 | "contributors": [{ 22 | "name": "instea", 23 | "email": "instea@instea.co" 24 | }], 25 | "license": "MIT", 26 | "devDependencies": { 27 | "react-native": "^0.6.0" 28 | }, 29 | "peerDependencies": { 30 | "react-native": ">=0.6 <1.0.0" 31 | }, 32 | "_from": "react-native-app-info@*" 33 | } 34 | --------------------------------------------------------------------------------