From 94b20d6fcc3ecee688f70d0f23499049e9433a89 Mon Sep 17 00:00:00 2001 From: CookieJ Date: Thu, 17 Nov 2016 15:43:30 +0800 Subject: [PATCH 1/9] update to 0.33 --- .flowconfig | 83 ++++--------- .gitignore | 1 + android/app/BUCK | 2 +- android/app/build.gradle | 8 +- android/app/proguard-rules.pro | 3 + .../main/java/com/ishiwupai/MainActivity.java | 27 ---- .../java/com/ishiwupai/MainApplication.java | 37 ++++++ android/app/src/main/res/values/strings.xml | 1 + android/build.gradle | 2 +- app/components/LoadMoreFooter.js | 4 +- app/components/Loading.js | 4 +- app/pages/Foods.js | 8 +- app/pages/Strolling.js | 2 +- ios/iShiWuPai.xcodeproj/project.pbxproj | 110 +++++++++-------- .../xcshareddata/xcschemes/iShiWuPai.xcscheme | 11 +- ios/iShiWuPai/AppDelegate.m | 27 +--- ios/iShiWuPai/Info.plist | 116 +++++++++--------- package.json | 4 +- 18 files changed, 209 insertions(+), 241 deletions(-) create mode 100644 android/app/src/main/java/com/ishiwupai/MainApplication.java diff --git a/.flowconfig b/.flowconfig index 45fd3cc..b69d071 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,71 +1,28 @@ [ignore] # We fork some components by platform. -.*/*.web.js .*/*.android.js -# Some modules have their own node_modules with overlap -.*/node_modules/node-haste/.* - -# Ugh -.*/node_modules/babel.* -.*/node_modules/babylon.* -.*/node_modules/invariant.* - -# Ignore react and fbjs where there are overlaps, but don't ignore -# anything that react-native relies on -.*/node_modules/fbjs/lib/Map.js -.*/node_modules/fbjs/lib/ErrorUtils.js - -# Flow has a built-in definition for the 'react' module which we prefer to use -# over the currently-untyped source -.*/node_modules/react/react.js -.*/node_modules/react/lib/React.js -.*/node_modules/react/lib/ReactDOM.js - -.*/__mocks__/.* -.*/__tests__/.* - -.*/commoner/test/source/widget/share.js - -# Ignore commoner tests -.*/node_modules/commoner/test/.* - -# See https://github.com/facebook/flow/issues/442 -.*/react-tools/node_modules/commoner/lib/reader.js - -# Ignore jest -.*/node_modules/jest-cli/.* - -# Ignore Website -.*/website/.* - -# Ignore generators +# Ignore templates with `@flow` in header .*/local-cli/generator.* -# Ignore BUCK generated folders -.*\.buckd/ +# Ignore malformed json +.*/node_modules/y18n/test/.*\.json -# Ignore RNPM -.*/local-cli/rnpm/.* +# Ignore the website subdir +/website/.* -.*/node_modules/is-my-json-valid/test/.*\.json -.*/node_modules/iconv-lite/encodings/tables/.*\.json -.*/node_modules/y18n/test/.*\.json -.*/node_modules/spdx-license-ids/spdx-license-ids.json -.*/node_modules/spdx-exceptions/index.json -.*/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json -.*/node_modules/resolve/lib/core.json -.*/node_modules/jsonparse/samplejson/.*\.json -.*/node_modules/json5/test/.*\.json -.*/node_modules/ua-parser-js/test/.*\.json -.*/node_modules/builtin-modules/builtin-modules.json -.*/node_modules/binary-extensions/binary-extensions.json -.*/node_modules/url-regex/tlds.json -.*/node_modules/joi/.*\.json -.*/node_modules/isemail/.*\.json -.*/node_modules/tr46/.*\.json +# Ignore BUCK generated dirs +/\.buckd/ +# Ignore unexpected extra @providesModule +.*/node_modules/commoner/test/source/widget/share.js + +# Ignore duplicate module providers +# For RN Apps installed via npm, "Libraries" folder is inside node_modules/react-native but in the source repo it is in the root +.*/Libraries/react-native/React.js +.*/Libraries/react-native/ReactNative.js +.*/node_modules/jest-runtime/build/__tests__/.* [include] @@ -80,6 +37,8 @@ module.system=haste esproposal.class_static_fields=enable esproposal.class_instance_fields=enable +experimental.strict_type_args=true + munge_underscores=true module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub' @@ -89,9 +48,11 @@ suppress_type=$FlowIssue suppress_type=$FlowFixMe suppress_type=$FixMe -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-5]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-5]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(30\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(30\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy +unsafe.enable_getters_and_setters=true + [version] -^0.25.0 +^0.30.0 diff --git a/.gitignore b/.gitignore index 42c9490..eb1535e 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ project.xcworkspace # Android/IJ # +*.iml .idea .gradle local.properties diff --git a/android/app/BUCK b/android/app/BUCK index 55a2344..fcb9ed7 100644 --- a/android/app/BUCK +++ b/android/app/BUCK @@ -5,7 +5,7 @@ import re # - install Buck # - `npm start` - to start the packager # - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US` +# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` # - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck # - `buck install -r android/app` - compile, install and run application # diff --git a/android/app/build.gradle b/android/app/build.gradle index af476c8..8db68d9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -55,7 +55,13 @@ import com.android.build.OutputFile * // date; if you have any other folders that you want to ignore for performance reasons (gradle * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ * // for example, you might want to remove it from here. - * inputExcludes: ["android/**", "ios/**"] + * inputExcludes: ["android/**", "ios/**"], + * + * // override which node gets called and with what additional arguments + * nodeExecutableAndArgs: ["node"] + * + * // supply additional arguments to the packager + * extraPackagerArgs: [] * ] */ diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 9852871..48361a9 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -26,11 +26,14 @@ # See http://sourceforge.net/p/proguard/bugs/466/ -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters +-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip # Do not strip any method/class that is annotated with @DoNotStrip -keep @com.facebook.proguard.annotations.DoNotStrip class * +-keep @com.facebook.common.internal.DoNotStrip class * -keepclassmembers class * { @com.facebook.proguard.annotations.DoNotStrip *; + @com.facebook.common.internal.DoNotStrip *; } -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { diff --git a/android/app/src/main/java/com/ishiwupai/MainActivity.java b/android/app/src/main/java/com/ishiwupai/MainActivity.java index ea620cf..7d0b67b 100644 --- a/android/app/src/main/java/com/ishiwupai/MainActivity.java +++ b/android/app/src/main/java/com/ishiwupai/MainActivity.java @@ -1,12 +1,6 @@ package com.ishiwupai; import com.facebook.react.ReactActivity; -import com.oblador.vectoricons.VectorIconsPackage; -import com.facebook.react.ReactPackage; -import com.facebook.react.shell.MainReactPackage; - -import java.util.Arrays; -import java.util.List; public class MainActivity extends ReactActivity { @@ -18,25 +12,4 @@ public class MainActivity extends ReactActivity { protected String getMainComponentName() { return "iShiWuPai"; } - - /** - * Returns whether dev mode should be enabled. - * This enables e.g. the dev menu. - */ - @Override - protected boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - /** - * A list of packages used by the app. If the app uses additional views - * or modules besides the default ones, add more packages here. - */ - @Override - protected List getPackages() { - return Arrays.asList( - new MainReactPackage(), - new VectorIconsPackage() - ); - } } diff --git a/android/app/src/main/java/com/ishiwupai/MainApplication.java b/android/app/src/main/java/com/ishiwupai/MainApplication.java new file mode 100644 index 0000000..d5c628b --- /dev/null +++ b/android/app/src/main/java/com/ishiwupai/MainApplication.java @@ -0,0 +1,37 @@ +package com.ishiwupai; + +import android.app.Application; +import android.util.Log; + +import com.facebook.react.ReactApplication; +import com.oblador.vectoricons.VectorIconsPackage; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactNativeHost; +import com.facebook.react.ReactPackage; +import com.facebook.react.shell.MainReactPackage; + +import java.util.Arrays; +import java.util.List; + +public class MainApplication extends Application implements ReactApplication { + + private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { + @Override + protected boolean getUseDeveloperSupport() { + return BuildConfig.DEBUG; + } + + @Override + protected List getPackages() { + return Arrays.asList( + new MainReactPackage(), + new VectorIconsPackage() + ); + } + }; + + @Override + public ReactNativeHost getReactNativeHost() { + return mReactNativeHost; + } +} diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 462d85d..a694517 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ + iShiWuPai diff --git a/android/build.gradle b/android/build.gradle index 403a007..fcba4c5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -18,7 +18,7 @@ allprojects { jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url "$projectDir/../../node_modules/react-native/android" + url "$rootDir/../node_modules/react-native/android" } } } diff --git a/app/components/LoadMoreFooter.js b/app/components/LoadMoreFooter.js index 09efc0a..fb6102d 100644 --- a/app/components/LoadMoreFooter.js +++ b/app/components/LoadMoreFooter.js @@ -3,7 +3,7 @@ */ import React from 'react'; import { - ActivityIndicatorIOS, + ActivityIndicator, View, Text, StyleSheet, @@ -13,7 +13,7 @@ export default class LoadMoreFooter extends React.Component { render() { return ( - + 正在加载更多…… ) diff --git a/app/components/Loading.js b/app/components/Loading.js index 421a86d..ea85dbb 100644 --- a/app/components/Loading.js +++ b/app/components/Loading.js @@ -6,7 +6,7 @@ import { StyleSheet, View, Text, - ActivityIndicatorIOS, + ActivityIndicator, } from 'react-native'; import Common from '../common/constants'; @@ -15,7 +15,7 @@ export default class Loading extends React.Component { render() { return ( - + 加载中…… ) diff --git a/app/pages/Foods.js b/app/pages/Foods.js index 5ec94ba..210c440 100644 --- a/app/pages/Foods.js +++ b/app/pages/Foods.js @@ -85,7 +85,7 @@ export default class Foods extends React.Component { _renderRow(group) { - let title = '食物分类' + let title = '食物分类'; if (group.kind == 'brand') { title = '热门品牌'; } else if (group.kind == 'restaurant') { @@ -93,7 +93,7 @@ export default class Foods extends React.Component { } return ( - + {title} @@ -121,6 +121,7 @@ export default class Foods extends React.Component { {category.name} @@ -203,7 +204,7 @@ const styles = StyleSheet.create({ }, groupCell: { - borderTopColor: 'rgb(241, 241, 241)', + borderColor: 'rgb(241, 241, 241)', borderTopWidth: 10, paddingTop: 10, }, @@ -227,6 +228,7 @@ const styles = StyleSheet.create({ category: { width: Common.window.width / 3, + height: 60, alignItems: 'center', marginBottom: 25, }, diff --git a/app/pages/Strolling.js b/app/pages/Strolling.js index 21c8f21..11292b3 100644 --- a/app/pages/Strolling.js +++ b/app/pages/Strolling.js @@ -98,7 +98,7 @@ export default class Main extends React.Component { enableEmptySections={true} onScroll={this._onScroll} onEndReached={this._onEndReach.bind(this)} - onEndReachedThreshold={10} + onEndReachedThreshold={20} renderFooter={this._renderFooter.bind(this)} style={{height: Common.window.height - 64}} refreshControl={ diff --git a/ios/iShiWuPai.xcodeproj/project.pbxproj b/ios/iShiWuPai.xcodeproj/project.pbxproj index 75fd189..f0ee10a 100644 --- a/ios/iShiWuPai.xcodeproj/project.pbxproj +++ b/ios/iShiWuPai.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; 00E356F31AD99517003FC87E /* iShiWuPaiTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* iShiWuPaiTests.m */; }; + 0AD03549CCB3452BAFE6DBF0 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AC44429E14E44CF0BE9E24B8 /* Foundation.ttf */; }; 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; @@ -20,17 +21,17 @@ 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 1701D1E646DE4708B4024AF5 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 8E6B3B44D192441CBE50B807 /* FontAwesome.ttf */; }; - 199A4888873B4942B4502299 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 49570613E80C4A4386C11C39 /* EvilIcons.ttf */; }; - 4D034ACF5883452494DDBEDB /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EA0511B668F45F484137B10 /* libRNVectorIcons.a */; }; - 5FAB46D4A2894B328C0BA162 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9DEECCBC62CA46A880865D31 /* Ionicons.ttf */; }; + 31E737E69EE1490D88036346 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61F4B993E6804CA683525BFA /* libRNVectorIcons.a */; }; + 32797E7F684C4DE6BBB18117 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 92B4846B96AC40A88C5D9BA3 /* EvilIcons.ttf */; }; + 7A3420E938E740A88DB30C52 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4597FAB9EA104D3EB365C02C /* Zocial.ttf */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - A9F22F5AED3E47568D8F11B2 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 77EC83889AB64819A4076E3D /* Foundation.ttf */; }; - C25D1D55F12C46C98726B302 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = C6FFE54ED52C4CBEB6DDBDF8 /* Octicons.ttf */; }; - C89D48099CA6426C91B33CA8 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B969BC81624B42FEA976B73A /* MaterialIcons.ttf */; }; - CB9596ED315A4FD0B0099C16 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0638212C40874F90A55298C4 /* Entypo.ttf */; }; - D5BA7F29A54941A5B504847E /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F861CF0394F54261849733ED /* Zocial.ttf */; }; + 8945650611714B8BB7D01C03 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4CAB813BF50D4C2AA8A39C47 /* FontAwesome.ttf */; }; + A1F6264ABAB34FB18062D788 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D0680D0C6200488A83B7A494 /* Ionicons.ttf */; }; + D979C78ED2E3475FA37918F6 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 03FA41F638884A5E9D9D6AEA /* Entypo.ttf */; }; + DC111B8D96A34F7FBB1F346E /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2EE1857B8ABB47CABAA4D9FC /* MaterialIcons.ttf */; }; + EB0E95783B0E47B9B5E5EC78 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 04D5A3D52A3C46D8986B7C28 /* Octicons.ttf */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -111,9 +112,9 @@ remoteGlobalIDString = 58B5119B1A9E6C1200147676; remoteInfo = RCTText; }; - EC77BC8E1D1631AC00D45B44 /* PBXContainerItemProxy */ = { + ECEA41891DDD922A00524036 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 31C9FF980E4D4B20AE18485E /* RNVectorIcons.xcodeproj */; + containerPortal = E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */; proxyType = 2; remoteGlobalIDString = 5DBEB1501B18CEA900B34395; remoteInfo = RNVectorIcons; @@ -130,7 +131,8 @@ 00E356EE1AD99517003FC87E /* iShiWuPaiTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iShiWuPaiTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* iShiWuPaiTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iShiWuPaiTests.m; sourceTree = ""; }; - 0638212C40874F90A55298C4 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; + 03FA41F638884A5E9D9D6AEA /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; + 04D5A3D52A3C46D8986B7C28 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* iShiWuPai.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iShiWuPai.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -141,17 +143,16 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iShiWuPai/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iShiWuPai/main.m; sourceTree = ""; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 1EA0511B668F45F484137B10 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; - 31C9FF980E4D4B20AE18485E /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; - 49570613E80C4A4386C11C39 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; - 77EC83889AB64819A4076E3D /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; + 2EE1857B8ABB47CABAA4D9FC /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + 4597FAB9EA104D3EB365C02C /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; + 4CAB813BF50D4C2AA8A39C47 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; + 61F4B993E6804CA683525BFA /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; - 8E6B3B44D192441CBE50B807 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; - 9DEECCBC62CA46A880865D31 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; - B969BC81624B42FEA976B73A /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; - C6FFE54ED52C4CBEB6DDBDF8 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; - F861CF0394F54261849733ED /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; + 92B4846B96AC40A88C5D9BA3 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; + AC44429E14E44CF0BE9E24B8 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; + D0680D0C6200488A83B7A494 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; + E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -159,6 +160,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -176,7 +178,7 @@ 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - 4D034ACF5883452494DDBEDB /* libRNVectorIcons.a in Frameworks */, + 31E737E69EE1490D88036346 /* libRNVectorIcons.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -240,6 +242,21 @@ name = "Supporting Files"; sourceTree = ""; }; + 0D6E157AFF5F499AA27C0E69 /* Resources */ = { + isa = PBXGroup; + children = ( + 03FA41F638884A5E9D9D6AEA /* Entypo.ttf */, + 92B4846B96AC40A88C5D9BA3 /* EvilIcons.ttf */, + 4CAB813BF50D4C2AA8A39C47 /* FontAwesome.ttf */, + AC44429E14E44CF0BE9E24B8 /* Foundation.ttf */, + D0680D0C6200488A83B7A494 /* Ionicons.ttf */, + 2EE1857B8ABB47CABAA4D9FC /* MaterialIcons.ttf */, + 04D5A3D52A3C46D8986B7C28 /* Octicons.ttf */, + 4597FAB9EA104D3EB365C02C /* Zocial.ttf */, + ); + name = Resources; + sourceTree = ""; + }; 139105B71AF99BAD00B5F7CC /* Products */ = { isa = PBXGroup; children = ( @@ -278,21 +295,6 @@ name = Products; sourceTree = ""; }; - 15322CBA368F45F1B5FE4318 /* Resources */ = { - isa = PBXGroup; - children = ( - 0638212C40874F90A55298C4 /* Entypo.ttf */, - 49570613E80C4A4386C11C39 /* EvilIcons.ttf */, - 8E6B3B44D192441CBE50B807 /* FontAwesome.ttf */, - 77EC83889AB64819A4076E3D /* Foundation.ttf */, - 9DEECCBC62CA46A880865D31 /* Ionicons.ttf */, - B969BC81624B42FEA976B73A /* MaterialIcons.ttf */, - C6FFE54ED52C4CBEB6DDBDF8 /* Octicons.ttf */, - F861CF0394F54261849733ED /* Zocial.ttf */, - ); - name = Resources; - sourceTree = ""; - }; 78C398B11ACF4ADC00677621 /* Products */ = { isa = PBXGroup; children = ( @@ -314,7 +316,7 @@ 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - 31C9FF980E4D4B20AE18485E /* RNVectorIcons.xcodeproj */, + E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -334,7 +336,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */, 00E356EF1AD99517003FC87E /* iShiWuPaiTests */, 83CBBA001A601CBA00E9B192 /* Products */, - 15322CBA368F45F1B5FE4318 /* Resources */, + 0D6E157AFF5F499AA27C0E69 /* Resources */, ); indentWidth = 2; sourceTree = ""; @@ -349,10 +351,10 @@ name = Products; sourceTree = ""; }; - EC77BC811D1631AC00D45B44 /* Products */ = { + ECEA417C1DDD922A00524036 /* Products */ = { isa = PBXGroup; children = ( - EC77BC8F1D1631AC00D45B44 /* libRNVectorIcons.a */, + ECEA418A1DDD922A00524036 /* libRNVectorIcons.a */, ); name = Products; sourceTree = ""; @@ -464,8 +466,8 @@ ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; }, { - ProductGroup = EC77BC811D1631AC00D45B44 /* Products */; - ProjectRef = 31C9FF980E4D4B20AE18485E /* RNVectorIcons.xcodeproj */; + ProductGroup = ECEA417C1DDD922A00524036 /* Products */; + ProjectRef = E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */; }, ); projectRoot = ""; @@ -547,11 +549,11 @@ remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - EC77BC8F1D1631AC00D45B44 /* libRNVectorIcons.a */ = { + ECEA418A1DDD922A00524036 /* libRNVectorIcons.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRNVectorIcons.a; - remoteRef = EC77BC8E1D1631AC00D45B44 /* PBXContainerItemProxy */; + remoteRef = ECEA41891DDD922A00524036 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXReferenceProxy section */ @@ -570,14 +572,14 @@ files = ( 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - CB9596ED315A4FD0B0099C16 /* Entypo.ttf in Resources */, - 199A4888873B4942B4502299 /* EvilIcons.ttf in Resources */, - 1701D1E646DE4708B4024AF5 /* FontAwesome.ttf in Resources */, - A9F22F5AED3E47568D8F11B2 /* Foundation.ttf in Resources */, - 5FAB46D4A2894B328C0BA162 /* Ionicons.ttf in Resources */, - C89D48099CA6426C91B33CA8 /* MaterialIcons.ttf in Resources */, - C25D1D55F12C46C98726B302 /* Octicons.ttf in Resources */, - D5BA7F29A54941A5B504847E /* Zocial.ttf in Resources */, + D979C78ED2E3475FA37918F6 /* Entypo.ttf in Resources */, + 32797E7F684C4DE6BBB18117 /* EvilIcons.ttf in Resources */, + 8945650611714B8BB7D01C03 /* FontAwesome.ttf in Resources */, + 0AD03549CCB3452BAFE6DBF0 /* Foundation.ttf in Resources */, + A1F6264ABAB34FB18062D788 /* Ionicons.ttf in Resources */, + DC111B8D96A34F7FBB1F346E /* MaterialIcons.ttf in Resources */, + EB0E95783B0E47B9B5E5EC78 /* Octicons.ttf in Resources */, + 7A3420E938E740A88DB30C52 /* Zocial.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -692,6 +694,7 @@ INFOPLIST_FILE = iShiWuPai/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( + "$(inherited)", "-ObjC", "-lc++", ); @@ -712,6 +715,7 @@ INFOPLIST_FILE = iShiWuPai/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( + "$(inherited)", "-ObjC", "-lc++", ); diff --git a/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme b/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme index 04f8d22..7554bca 100644 --- a/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme +++ b/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme @@ -37,10 +37,10 @@ + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> @@ -62,18 +62,15 @@ ReferencedContainer = "container:iShiWuPai.xcodeproj"> - - @@ -89,10 +86,10 @@ diff --git a/ios/iShiWuPai/AppDelegate.m b/ios/iShiWuPai/AppDelegate.m index dbf9541..6977111 100644 --- a/ios/iShiWuPai/AppDelegate.m +++ b/ios/iShiWuPai/AppDelegate.m @@ -9,6 +9,7 @@ #import "AppDelegate.h" +#import "RCTBundleURLProvider.h" #import "RCTRootView.h" @implementation AppDelegate @@ -17,31 +18,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( { NSURL *jsCodeLocation; - /** - * Loading JavaScript code - uncomment the one you want. - * - * OPTION 1 - * Load from development server. Start the server from the repository root: - * - * $ npm start - * - * To run on device, change `localhost` to the IP address of your computer - * (you can get this by typing `ifconfig` into the terminal and selecting the - * `inet` value under `en0:`) and make sure your computer and iOS device are - * on the same Wi-Fi network. - */ - - jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; - - /** - * OPTION 2 - * Load from pre-bundled file on disk. The static bundle is automatically - * generated by the "Bundle React Native code and images" build step when - * running the project on an actual device or running the project on the - * simulator in the "Release" build configuration. - */ - -// jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; + jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"iShiWuPai" diff --git a/ios/iShiWuPai/Info.plist b/ios/iShiWuPai/Info.plist index df389b1..605307f 100644 --- a/ios/iShiWuPai/Info.plist +++ b/ios/iShiWuPai/Info.plist @@ -1,58 +1,64 @@ - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - UIAppFonts - - Entypo.ttf - EvilIcons.ttf - FontAwesome.ttf - Foundation.ttf - Ionicons.ttf - MaterialIcons.ttf - Octicons.ttf - Zocial.ttf - - - \ No newline at end of file + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSTemporaryExceptionAllowsInsecureHTTPLoads + + + + NSAllowsArbitraryLoads + + + NSLocationWhenInUseUsageDescription + + UIAppFonts + + Entypo.ttf + EvilIcons.ttf + FontAwesome.ttf + Foundation.ttf + Ionicons.ttf + MaterialIcons.ttf + Octicons.ttf + Zocial.ttf + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/package.json b/package.json index a9b71f4..d04709a 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ "start": "node node_modules/react-native/local-cli/cli.js start" }, "dependencies": { - "react": "^15.1.0", - "react-native": "^0.27.2", + "react": "^15.3.1", + "react-native": "^0.33.1", "react-native-swiper": "^1.4.4", "react-native-vector-icons": "^2.0.2", "react-redux": "^4.4.5", From 25a79402dce80de37368010f939842d3d0440bb8 Mon Sep 17 00:00:00 2001 From: CookieJ Date: Tue, 29 Nov 2016 23:28:52 +0800 Subject: [PATCH 2/9] bugfix --- android/app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b02a2f1..6843a5d 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -11,6 +11,7 @@ android:targetSdkVersion="22" /> Date: Fri, 9 Dec 2016 17:55:08 +0800 Subject: [PATCH 3/9] update README.md --- README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d07aa9c..08a02ce 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ ## iShiWuPai -iShiWuPai是基于React Native和Redux实现的展示型美食类APP。持续更新中,欢迎一起讨论学习! +iShiWuPai是基于React Native和Redux实现的展示型美食类APP。该分支目前已不再更新,如有兴趣可移步[新的分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),新分支正在重构中,已适配iOS和Android两端。 ## 完成功能 -目前只针对iOS端,完成功能: +主分支只针对iOS端,完成功能: - [x] 逛吃界面,支持下拉刷新和上拖加载更多 - [x] 资讯详情界面 - [x] 食物百科界面 @@ -10,10 +10,6 @@ iShiWuPai是基于React Native和Redux实现的展示型美食类APP。持续更 - [x] 搜索历史记录、搜索结果功能及对应排序动画,支持上拖加载更多 - [x] 我的、食物对比基本界面 - [x] 食物对比 -- [ ] 食物详情 -- [ ] 我的页面功能 -- [ ] 分享&收藏 -- [ ] 性能优化 ## 部分功能演示 ![排序](https://github.com/ljunb/react-native-iShiWuPai/blob/master/screenshot/performance.gif) @@ -37,8 +33,8 @@ $ react-native run-ios ## 相关依赖 ``` "dependencies": { - "react": "^15.1.0", - "react-native": "^0.27.2", + "react": "^15.3.1", + "react-native": "^0.33.1", "react-native-swiper": "^1.4.4", "react-native-vector-icons": "^2.0.2", "react-redux": "^4.4.5", From 809dd32c07f52bbb9d5d0e8ee2d29e50ecc6d2c6 Mon Sep 17 00:00:00 2001 From: CookieJ Date: Thu, 5 Jan 2017 23:45:02 +0800 Subject: [PATCH 4/9] update to 0.39.2 && fix some ui issues --- .babelrc | 3 + .flowconfig | 35 +-- .gitattributes | 1 + .gitignore | 7 +- README.md | 14 +- android/app/build.gradle | 4 +- .../app/src/main/assets/fonts/FontAwesome.ttf | Bin 152796 -> 165548 bytes .../app/src/main/assets/fonts/Octicons.ttf | Bin 30680 -> 43920 bytes .../src/main/assets/fonts/SimpleLineIcons.ttf | Bin 0 -> 54056 bytes .../java/com/ishiwupai/MainApplication.java | 9 +- android/app/src/main/res/values/strings.xml | 3 - android/settings.gradle | 4 +- app/components/Header.js | 179 ++++++----- app/components/SearchHeader.js | 67 ++-- app/components/SearchInputBar.js | 47 ++- app/components/StatusBarIOS.js | 29 -- app/containers/app.js | 5 +- app/pages/FoodsList.js | 9 +- app/pages/Search.js | 3 +- app/pages/Strolling.js | 2 +- app/pages/User.js | 58 ++-- ios/iShiWuPai.xcodeproj/project.pbxproj | 289 +++++++++++++----- .../xcshareddata/xcschemes/iShiWuPai.xcscheme | 11 +- ios/iShiWuPai/Info.plist | 123 ++++---- package.json | 10 +- 25 files changed, 536 insertions(+), 376 deletions(-) create mode 100644 .babelrc create mode 100644 .gitattributes create mode 100644 android/app/src/main/assets/fonts/SimpleLineIcons.ttf delete mode 100644 app/components/StatusBarIOS.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..8df53fe --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ +"presets": ["react-native"] +} \ No newline at end of file diff --git a/.flowconfig b/.flowconfig index b69d071..5912f47 100644 --- a/.flowconfig +++ b/.flowconfig @@ -1,28 +1,18 @@ [ignore] +; We fork some components by platform +.*/*[.]android.js -# We fork some components by platform. -.*/*.android.js - -# Ignore templates with `@flow` in header -.*/local-cli/generator.* - -# Ignore malformed json -.*/node_modules/y18n/test/.*\.json - -# Ignore the website subdir -/website/.* - -# Ignore BUCK generated dirs +; Ignore "BUCK" generated dirs /\.buckd/ -# Ignore unexpected extra @providesModule -.*/node_modules/commoner/test/source/widget/share.js +; Ignore unexpected extra "@providesModule" +.*/node_modules/.*/node_modules/fbjs/.* -# Ignore duplicate module providers -# For RN Apps installed via npm, "Libraries" folder is inside node_modules/react-native but in the source repo it is in the root +; Ignore duplicate module providers +; For RN Apps installed via npm, "Libraries" folder is inside +; "node_modules/react-native" but in the source repo it is in the root .*/Libraries/react-native/React.js .*/Libraries/react-native/ReactNative.js -.*/node_modules/jest-runtime/build/__tests__/.* [include] @@ -34,9 +24,6 @@ flow/ [options] module.system=haste -esproposal.class_static_fields=enable -esproposal.class_instance_fields=enable - experimental.strict_type_args=true munge_underscores=true @@ -48,11 +35,11 @@ suppress_type=$FlowIssue suppress_type=$FlowFixMe suppress_type=$FixMe -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(30\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(30\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(3[0-5]\\|[1-2][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(3[0-5]\\|1[0-9]\\|[1-2][0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy unsafe.enable_getters_and_setters=true [version] -^0.30.0 +^0.35.0 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d42ff18 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.pbxproj -text diff --git a/.gitignore b/.gitignore index eb1535e..93fd764 100644 --- a/.gitignore +++ b/.gitignore @@ -22,12 +22,13 @@ DerivedData *.xcuserstate project.xcworkspace -# Android/IJ +# Android/IntelliJ # -*.iml +build/ .idea .gradle local.properties +*.iml # node.js # @@ -38,4 +39,4 @@ npm-debug.log buck-out/ \.buckd/ android/app/libs -android/keystores/debug.keystore +*.keystore diff --git a/README.md b/README.md index 08a02ce..fba5af5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## iShiWuPai -iShiWuPai是基于React Native和Redux实现的展示型美食类APP。该分支目前已不再更新,如有兴趣可移步[新的分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),新分支正在重构中,已适配iOS和Android两端。 +iShiWuPai是基于React Native实现的展示型美食类APP。主分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深入内容,方便新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 ## 完成功能 主分支只针对iOS端,完成功能: @@ -26,7 +26,7 @@ iShiWuPai是基于React Native和Redux实现的展示型美食类APP。该分支 ``` $ git clone https://github.com/ljunb/react-native-iShiWuPai.git $ cd react-native-iShiWuPai -$ npm install +$ npm install & react-native link $ react-native run-ios ``` @@ -34,11 +34,11 @@ $ react-native run-ios ``` "dependencies": { "react": "^15.3.1", - "react-native": "^0.33.1", - "react-native-swiper": "^1.4.4", - "react-native-vector-icons": "^2.0.2", - "react-redux": "^4.4.5", - "redux": "^3.5.2", + "react-native": "^0.39.2", + "react-native-swiper": "^1.5.4", + "react-native-vector-icons": "^3.0.0", + "react-redux": "^5.0.1", + "redux": "^3.6.0", "redux-thunk": "^2.1.0" }, ``` \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index 8db68d9..12b1909 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -135,6 +135,6 @@ dependencies { // Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { - from configurations.compile - into 'libs' + from configurations.compile + into 'libs' } diff --git a/android/app/src/main/assets/fonts/FontAwesome.ttf b/android/app/src/main/assets/fonts/FontAwesome.ttf index f221e50a2ef60738ba30932d834530cdfe55cb3e..35acda2fa1196aad98c2adf4378a7611dd713aa3 100644 GIT binary patch delta 20319 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 Kj_>Q2Zu>vsTUp2e literal 0 HcmV?d00001 diff --git a/android/app/src/main/java/com/ishiwupai/MainApplication.java b/android/app/src/main/java/com/ishiwupai/MainApplication.java index d5c628b..104104d 100644 --- a/android/app/src/main/java/com/ishiwupai/MainApplication.java +++ b/android/app/src/main/java/com/ishiwupai/MainApplication.java @@ -9,6 +9,7 @@ import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage; +import com.facebook.soloader.SoLoader; import java.util.Arrays; import java.util.List; @@ -32,6 +33,12 @@ protected List getPackages() { @Override public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; + return mReactNativeHost; + } + + @Override + public void onCreate() { + super.onCreate(); + SoLoader.init(this, /* native exopackage */ false); } } diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index a694517..329e39a 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,6 +1,3 @@ - - - iShiWuPai diff --git a/android/settings.gradle b/android/settings.gradle index 8a7993d..7f917f3 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,5 +1,5 @@ rootProject.name = 'iShiWuPai' - -include ':app' include ':react-native-vector-icons' project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') + +include ':app' diff --git a/app/components/Header.js b/app/components/Header.js index 4f17580..1a5fd58 100644 --- a/app/components/Header.js +++ b/app/components/Header.js @@ -9,129 +9,127 @@ import { Text, Image, TouchableOpacity, + PixelRatio, + Dimensions } from 'react-native'; import Icon from 'react-native-vector-icons/FontAwesome'; +import Common from '../common/constants' + +const NavigationBarItem = ({icon, onPress, type}) => { + const style = type == 'left' ? styles.leftIcon : styles.rightIcon + return ( + + + + ) +} -export default class Header extends React.Component { - - render() { - - let NavigationBar = []; - - // 左边图片按钮 - if (this.props.leftIcon != undefined) { - NavigationBar.push( - - - - ) - } - - // 标题 - if (this.props.title != undefined) { - NavigationBar.push( - {this.props.title} - ) - } - - // 自定义标题View - if (this.props.titleView != undefined) { - let Component = this.props.titleView; - - NavigationBar.push( - - ) - } - - // 右边图片按钮 - if (this.props.rightIcon != undefined) { +const TitleBarItem = ({title, onPress}) => { + return ( + + {title} + + ) +} - NavigationBar.push( - - - - ) - } +const MenuItem = ({title, onPress}) => { + return ( + + {title} + + + ) +} - // 右边文字按钮 - if (this.props.rightButton != undefined) { - NavigationBar.push( - - {this.props.rightButton} - - ) - } +export default class Header extends React.Component { - if (this.props.rightMenu != undefined) { - NavigationBar.push( - - {this.props.rightMenu} - - - ) - } + render() { + const { + title, titleView, + leftIcon, leftIconAction, + rightIcon, rightIconAction, + rightButton, rightButtonAction, + rightMenu, rightMenuAction + } = this.props + const TitleView = titleView return ( - {NavigationBar} + + {leftIcon && } + {title && {title}} + {titleView && } + {rightIcon && } + {rightButton && } + {rightMenu && } ) } } const styles = StyleSheet.create({ - navigationBarContainer: { - flexDirection: 'row', - height: 44, + height: 64, + paddingTop: 20, + justifyContent: 'center', alignItems: 'center', - borderBottomColor: '#ccc', - borderBottomWidth: 0.5, - backgroundColor: 'white' + borderBottomColor: '#e9e9e9', + borderBottomWidth: 1 / PixelRatio.get(), + backgroundColor: 'white', + }, + + statusBar: { + position: 'absolute', + top: 0, + height: 20, + width: Common.window.width, + backgroundColor: Common.colors.themeColor }, title: { fontSize: 15, - marginLeft: 15, }, leftIcon: { - marginLeft: 15, + position: 'absolute', + justifyContent: 'center', + alignItems: 'center', + width: 44, + height: 44, + left: 0, + top: 20 }, rightIcon: { position: 'absolute', - right: 10, - top: 7 + justifyContent: 'center', + alignItems: 'center', + width: 44, + height: 44, + right: 0, + top: 20 }, rightButton: { position: 'absolute', - right: 10, + right: 0, + width: 44, height: 44, justifyContent: 'center', - flexDirection: 'row', + alignItems: 'center' }, buttonTitleFont: { @@ -141,9 +139,10 @@ const styles = StyleSheet.create({ rightMenu: { position: 'absolute', - right: 10, + right: 15, + top: 20, height: 44, - justifyContent: 'center', + justifyContent: 'flex-end', flexDirection: 'row', alignItems: 'center' }, diff --git a/app/components/SearchHeader.js b/app/components/SearchHeader.js index 0cf570c..75d7cc4 100644 --- a/app/components/SearchHeader.js +++ b/app/components/SearchHeader.js @@ -8,46 +8,65 @@ import { Text, TouchableOpacity, Image, + PixelRatio } from 'react-native'; import Common from '../common/constants'; export default class SearchHeader extends React.Component { render() { + const {searchAction, scanAction} = this.props + return ( - - - - 请输入食物名称 - - - - + + + + + + 请输入食物名称 + + + + + ) } } const styles = StyleSheet.create({ - header: { - flexDirection: 'row', + navigationBar: { alignItems: 'center', justifyContent: 'center', backgroundColor: 'white', borderBottomColor: '#ccc', - borderBottomWidth: 0.5, + borderBottomWidth: 1 / PixelRatio.get(), + height: 64 + }, + + statusBar: { + height: 20, + width: Common.window.width, + backgroundColor: Common.colors.themeColor + }, + + header: { + alignItems: 'center', + justifyContent: 'center', + backgroundColor: 'white', + flexDirection: 'row' }, searchInput: { diff --git a/app/components/SearchInputBar.js b/app/components/SearchInputBar.js index 56f07bc..a2101d0 100644 --- a/app/components/SearchInputBar.js +++ b/app/components/SearchInputBar.js @@ -8,6 +8,7 @@ import { TextInput, TouchableOpacity, Image, + PixelRatio } from 'react-native'; import Icon from 'react-native-vector-icons/FontAwesome'; @@ -15,12 +16,14 @@ import Common from '../common/constants'; export default class SearchInputBar extends React.Component { render() { + const {backAction, searchAction} = this.props return ( - + + @@ -32,7 +35,7 @@ export default class SearchInputBar extends React.Component { @@ -42,17 +45,26 @@ export default class SearchInputBar extends React.Component { } const styles = StyleSheet.create({ - searchContainer: { - flexDirection: 'row', - height: 44, + navigationBar: { + height: 64, + paddingTop: 20, + justifyContent: 'space-between', alignItems: 'center', - borderBottomColor: '#ccc', - borderBottomWidth: 0.5, + borderBottomColor: '#e9e9e9', + borderBottomWidth: 1 / PixelRatio.get(), backgroundColor: 'white', + flexDirection: 'row' + }, + + leftIcon: { + justifyContent: 'center', + alignItems: 'center', + width: 44, + height: 44, }, textInput: { - width: Common.window.width - 15 - 30 - 20, + width: Common.window.width * 0.7, height: 30, marginTop: 9, paddingLeft: 5, @@ -60,8 +72,17 @@ const styles = StyleSheet.create({ }, searchIcon: { + width: 44, + height: 44, + justifyContent: 'center', + alignItems: 'center' + }, + + statusBar: { position: 'absolute', - right: 15, - top: 12 - } + top: 0, + height: 20, + width: Common.window.width, + backgroundColor: Common.colors.themeColor + }, }) \ No newline at end of file diff --git a/app/components/StatusBarIOS.js b/app/components/StatusBarIOS.js deleted file mode 100644 index 1039a6f..0000000 --- a/app/components/StatusBarIOS.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Created by ljunb on 16/5/26. - */ -import React from 'react'; -import { - StyleSheet, - View, - StatusBar, -} from 'react-native'; -import Constants from '../common/constants'; - -export default class StatusBarIOS extends React.Component { - render() { - return ( - - - - - ) - } -} - -const styles = StyleSheet.create({ - statusBar: { - flex: 1, - height: 20, - backgroundColor: Constants.colors.themeColor, - } -}) \ No newline at end of file diff --git a/app/containers/app.js b/app/containers/app.js index a1af904..5f33791 100644 --- a/app/containers/app.js +++ b/app/containers/app.js @@ -5,17 +5,16 @@ import React from 'react'; import { Navigator, View, + StatusBar } from 'react-native'; -import StatusBarIOS from '../components/StatusBarIOS'; import TabBarView from '../containers/TabBarView'; class App extends React.Component { render() { - return ( - + { diff --git a/app/pages/FoodsList.js b/app/pages/FoodsList.js index 3c203bc..d19b339 100644 --- a/app/pages/FoodsList.js +++ b/app/pages/FoodsList.js @@ -100,14 +100,14 @@ export default class FoodsList extends React.Component { renderCoverView() { return ( this.handleSortTypesViewAnimation()} > : - + {Search.searchText ? this.renderResultView() : + { InteractionManager.runAfterInteractions(()=>{ diff --git a/app/pages/User.js b/app/pages/User.js index 5c922e7..e22450f 100644 --- a/app/pages/User.js +++ b/app/pages/User.js @@ -9,6 +9,7 @@ import { Image, Switch, TouchableOpacity, + PixelRatio } from 'react-native'; import Common from '../common/constants'; @@ -18,8 +19,9 @@ export default class User extends React.Component { let titles = ['清除缓存', '关于我', '将iShiWuPai分享给朋友']; return ( - + + 我的 @@ -35,20 +37,17 @@ export default class User extends React.Component { // thumbTintColor="white" /> - { - titles.map((title) => { - return ( - - {title} - - - ) - }) - } - + {titles.map((title) => { + return ( + + {title} + + + ) + })} ) } @@ -58,14 +57,12 @@ class HeadView extends React.Component { render() { return ( - - - - - 点击登录 - - - + + + + 点击登录 + + ) } } @@ -97,15 +94,24 @@ class JurisdictionView extends React.Component { const styles = StyleSheet.create({ header: { + paddingTop: 20, justifyContent: 'center', alignItems: 'center', - height: 44, + height: 64, borderBottomColor: '#ccc', - borderBottomWidth: 0.5 + borderBottomWidth: 1/PixelRatio.get() + }, + + statusBar: { + position: 'absolute', + top: 0, + left: 0, + height: 20, + width: Common.window.width, + backgroundColor: Common.colors.themeColor }, myBgImage: { - flex: 1, height: 160, justifyContent: 'center', alignItems: 'center', diff --git a/ios/iShiWuPai.xcodeproj/project.pbxproj b/ios/iShiWuPai.xcodeproj/project.pbxproj index f0ee10a..596b9ab 100644 --- a/ios/iShiWuPai.xcodeproj/project.pbxproj +++ b/ios/iShiWuPai.xcodeproj/project.pbxproj @@ -13,7 +13,7 @@ 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; 00E356F31AD99517003FC87E /* iShiWuPaiTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* iShiWuPaiTests.m */; }; - 0AD03549CCB3452BAFE6DBF0 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AC44429E14E44CF0BE9E24B8 /* Foundation.ttf */; }; + 10D1174EBE624CCFBC5294FC /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5029C54721425D9471E4D5 /* libRNVectorIcons.a */; }; 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; @@ -23,15 +23,17 @@ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 31E737E69EE1490D88036346 /* libRNVectorIcons.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61F4B993E6804CA683525BFA /* libRNVectorIcons.a */; }; - 32797E7F684C4DE6BBB18117 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 92B4846B96AC40A88C5D9BA3 /* EvilIcons.ttf */; }; - 7A3420E938E740A88DB30C52 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4597FAB9EA104D3EB365C02C /* Zocial.ttf */; }; + 15445F2B0C5745AA89F833A6 /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B74D8E70D2484B8D8D35A3C4 /* MaterialIcons.ttf */; }; + 50F6DA7117B44DEBBF4889F0 /* Zocial.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 16DDCAD816B645A5B22C5DAE /* Zocial.ttf */; }; + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; + 7AAF7756DBE84F6AB9965662 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B28585121B754E98A3C78617 /* Octicons.ttf */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - 8945650611714B8BB7D01C03 /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4CAB813BF50D4C2AA8A39C47 /* FontAwesome.ttf */; }; - A1F6264ABAB34FB18062D788 /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = D0680D0C6200488A83B7A494 /* Ionicons.ttf */; }; - D979C78ED2E3475FA37918F6 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 03FA41F638884A5E9D9D6AEA /* Entypo.ttf */; }; - DC111B8D96A34F7FBB1F346E /* MaterialIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2EE1857B8ABB47CABAA4D9FC /* MaterialIcons.ttf */; }; - EB0E95783B0E47B9B5E5EC78 /* Octicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 04D5A3D52A3C46D8986B7C28 /* Octicons.ttf */; }; + 94A878ED2FA6450483D5CED9 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 13E98AFC33A9479B9BD01418 /* Entypo.ttf */; }; + A32E1E359858408AA47FAE06 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0D7F21F6A54C485C8FCFCB7A /* EvilIcons.ttf */; }; + B2EE6F4ADBDB46C78212591C /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2C7852F293784CAD9B5BB852 /* Ionicons.ttf */; }; + EEC1B9F7E364456085BC3163 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F309242C7D55418EAC6CE01A /* SimpleLineIcons.ttf */; }; + EF95F4A421C94F9AB6622769 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A989F40972D94575817A917A /* Foundation.ttf */; }; + F6A9CB085EBF43AFB4BAA2DF /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FC5806B73A314FBB9C0E607D /* FontAwesome.ttf */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -98,6 +100,20 @@ remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; remoteInfo = React; }; + 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 134814201AA4EA6300B7C361; + remoteInfo = RCTAnimation; + }; + 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28201D9B03D100D4039D; + remoteInfo = "RCTAnimation-tvOS"; + }; 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; @@ -112,9 +128,58 @@ remoteGlobalIDString = 58B5119B1A9E6C1200147676; remoteInfo = RCTText; }; - ECEA41891DDD922A00524036 /* PBXContainerItemProxy */ = { + EC20003A1E1E30CD0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; + remoteInfo = "RCTImage-tvOS"; + }; + EC20003E1E1E30CE0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28471D9B043800D4039D; + remoteInfo = "RCTLinking-tvOS"; + }; + EC2000421E1E30CE0024CEEF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */; + containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28541D9B044C00D4039D; + remoteInfo = "RCTNetwork-tvOS"; + }; + EC2000461E1E30CE0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28611D9B046600D4039D; + remoteInfo = "RCTSettings-tvOS"; + }; + EC20004A1E1E30CE0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A287B1D9B048500D4039D; + remoteInfo = "RCTText-tvOS"; + }; + EC20004F1E1E30CE0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28881D9B049200D4039D; + remoteInfo = "RCTWebSocket-tvOS"; + }; + EC2000531E1E30CE0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2D2A28131D9B038B00D4039D; + remoteInfo = "React-tvOS"; + }; + EC2000561E1E30CE0024CEEF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A702DCEAA0834335AC6C3136 /* RNVectorIcons.xcodeproj */; proxyType = 2; remoteGlobalIDString = 5DBEB1501B18CEA900B34395; remoteInfo = RNVectorIcons; @@ -131,8 +196,8 @@ 00E356EE1AD99517003FC87E /* iShiWuPaiTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = iShiWuPaiTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 00E356F21AD99517003FC87E /* iShiWuPaiTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = iShiWuPaiTests.m; sourceTree = ""; }; - 03FA41F638884A5E9D9D6AEA /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; - 04D5A3D52A3C46D8986B7C28 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; + 0C5029C54721425D9471E4D5 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; + 0D7F21F6A54C485C8FCFCB7A /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* iShiWuPai.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iShiWuPai.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -142,17 +207,19 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = iShiWuPai/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iShiWuPai/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iShiWuPai/main.m; sourceTree = ""; }; + 13E98AFC33A9479B9BD01418 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 2EE1857B8ABB47CABAA4D9FC /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; - 4597FAB9EA104D3EB365C02C /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; - 4CAB813BF50D4C2AA8A39C47 /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; - 61F4B993E6804CA683525BFA /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = ""; }; + 16DDCAD816B645A5B22C5DAE /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; + 2C7852F293784CAD9B5BB852 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; - 92B4846B96AC40A88C5D9BA3 /* EvilIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = EvilIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf"; sourceTree = ""; }; - AC44429E14E44CF0BE9E24B8 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; - D0680D0C6200488A83B7A494 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; - E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; + A702DCEAA0834335AC6C3136 /* RNVectorIcons.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNVectorIcons.xcodeproj; path = "../node_modules/react-native-vector-icons/RNVectorIcons.xcodeproj"; sourceTree = ""; }; + A989F40972D94575817A917A /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; + B28585121B754E98A3C78617 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; + B74D8E70D2484B8D8D35A3C4 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + F309242C7D55418EAC6CE01A /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; }; + FC5806B73A314FBB9C0E607D /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -168,6 +235,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, 146834051AC3E58100842450 /* libReact.a in Frameworks */, 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, @@ -178,7 +246,7 @@ 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - 31E737E69EE1490D88036346 /* libRNVectorIcons.a in Frameworks */, + 10D1174EBE624CCFBC5294FC /* libRNVectorIcons.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -205,6 +273,7 @@ isa = PBXGroup; children = ( 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, + EC20003B1E1E30CD0024CEEF /* libRCTImage-tvOS.a */, ); name = Products; sourceTree = ""; @@ -213,6 +282,7 @@ isa = PBXGroup; children = ( 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, + EC2000431E1E30CE0024CEEF /* libRCTNetwork-tvOS.a */, ); name = Products; sourceTree = ""; @@ -242,25 +312,11 @@ name = "Supporting Files"; sourceTree = ""; }; - 0D6E157AFF5F499AA27C0E69 /* Resources */ = { - isa = PBXGroup; - children = ( - 03FA41F638884A5E9D9D6AEA /* Entypo.ttf */, - 92B4846B96AC40A88C5D9BA3 /* EvilIcons.ttf */, - 4CAB813BF50D4C2AA8A39C47 /* FontAwesome.ttf */, - AC44429E14E44CF0BE9E24B8 /* Foundation.ttf */, - D0680D0C6200488A83B7A494 /* Ionicons.ttf */, - 2EE1857B8ABB47CABAA4D9FC /* MaterialIcons.ttf */, - 04D5A3D52A3C46D8986B7C28 /* Octicons.ttf */, - 4597FAB9EA104D3EB365C02C /* Zocial.ttf */, - ); - name = Resources; - sourceTree = ""; - }; 139105B71AF99BAD00B5F7CC /* Products */ = { isa = PBXGroup; children = ( 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, + EC2000471E1E30CE0024CEEF /* libRCTSettings-tvOS.a */, ); name = Products; sourceTree = ""; @@ -269,6 +325,7 @@ isa = PBXGroup; children = ( 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, + EC2000501E1E30CE0024CEEF /* libRCTWebSocket-tvOS.a */, ); name = Products; sourceTree = ""; @@ -291,6 +348,32 @@ isa = PBXGroup; children = ( 146834041AC3E56700842450 /* libReact.a */, + EC2000541E1E30CE0024CEEF /* libReact-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; + 5C2F2659878E458CBF0D8086 /* Resources */ = { + isa = PBXGroup; + children = ( + 13E98AFC33A9479B9BD01418 /* Entypo.ttf */, + 0D7F21F6A54C485C8FCFCB7A /* EvilIcons.ttf */, + FC5806B73A314FBB9C0E607D /* FontAwesome.ttf */, + A989F40972D94575817A917A /* Foundation.ttf */, + 2C7852F293784CAD9B5BB852 /* Ionicons.ttf */, + B74D8E70D2484B8D8D35A3C4 /* MaterialIcons.ttf */, + B28585121B754E98A3C78617 /* Octicons.ttf */, + 16DDCAD816B645A5B22C5DAE /* Zocial.ttf */, + F309242C7D55418EAC6CE01A /* SimpleLineIcons.ttf */, + ); + name = Resources; + sourceTree = ""; + }; + 5E91572E1DD0AC6500FF2AA8 /* Products */ = { + isa = PBXGroup; + children = ( + 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, + 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */, ); name = Products; sourceTree = ""; @@ -299,6 +382,7 @@ isa = PBXGroup; children = ( 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, + EC20003F1E1E30CE0024CEEF /* libRCTLinking-tvOS.a */, ); name = Products; sourceTree = ""; @@ -306,6 +390,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( + 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, 146833FF1AC3E56700842450 /* React.xcodeproj */, 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, @@ -316,7 +401,7 @@ 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */, + A702DCEAA0834335AC6C3136 /* RNVectorIcons.xcodeproj */, ); name = Libraries; sourceTree = ""; @@ -325,6 +410,7 @@ isa = PBXGroup; children = ( 832341B51AAA6A8300B99B32 /* libRCTText.a */, + EC20004B1E1E30CE0024CEEF /* libRCTText-tvOS.a */, ); name = Products; sourceTree = ""; @@ -336,7 +422,7 @@ 832341AE1AAA6A7D00B99B32 /* Libraries */, 00E356EF1AD99517003FC87E /* iShiWuPaiTests */, 83CBBA001A601CBA00E9B192 /* Products */, - 0D6E157AFF5F499AA27C0E69 /* Resources */, + 5C2F2659878E458CBF0D8086 /* Resources */, ); indentWidth = 2; sourceTree = ""; @@ -351,10 +437,10 @@ name = Products; sourceTree = ""; }; - ECEA417C1DDD922A00524036 /* Products */ = { + EC2000321E1E30CD0024CEEF /* Products */ = { isa = PBXGroup; children = ( - ECEA418A1DDD922A00524036 /* libRNVectorIcons.a */, + EC2000571E1E30CE0024CEEF /* libRNVectorIcons.a */, ); name = Products; sourceTree = ""; @@ -429,6 +515,10 @@ ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; }, + { + ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; + ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; + }, { ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; @@ -466,8 +556,8 @@ ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; }, { - ProductGroup = ECEA417C1DDD922A00524036 /* Products */; - ProjectRef = E80CF7AC3E904C7AB6E214C7 /* RNVectorIcons.xcodeproj */; + ProductGroup = EC2000321E1E30CD0024CEEF /* Products */; + ProjectRef = A702DCEAA0834335AC6C3136 /* RNVectorIcons.xcodeproj */; }, ); projectRoot = ""; @@ -535,6 +625,20 @@ remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libRCTAnimation.a; + remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTAnimation-tvOS.a"; + remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; @@ -549,11 +653,60 @@ remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - ECEA418A1DDD922A00524036 /* libRNVectorIcons.a */ = { + EC20003B1E1E30CD0024CEEF /* libRCTImage-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTImage-tvOS.a"; + remoteRef = EC20003A1E1E30CD0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC20003F1E1E30CE0024CEEF /* libRCTLinking-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTLinking-tvOS.a"; + remoteRef = EC20003E1E1E30CE0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC2000431E1E30CE0024CEEF /* libRCTNetwork-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTNetwork-tvOS.a"; + remoteRef = EC2000421E1E30CE0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC2000471E1E30CE0024CEEF /* libRCTSettings-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTSettings-tvOS.a"; + remoteRef = EC2000461E1E30CE0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC20004B1E1E30CE0024CEEF /* libRCTText-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTText-tvOS.a"; + remoteRef = EC20004A1E1E30CE0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC2000501E1E30CE0024CEEF /* libRCTWebSocket-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libRCTWebSocket-tvOS.a"; + remoteRef = EC20004F1E1E30CE0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC2000541E1E30CE0024CEEF /* libReact-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libReact-tvOS.a"; + remoteRef = EC2000531E1E30CE0024CEEF /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + EC2000571E1E30CE0024CEEF /* libRNVectorIcons.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; path = libRNVectorIcons.a; - remoteRef = ECEA41891DDD922A00524036 /* PBXContainerItemProxy */; + remoteRef = EC2000561E1E30CE0024CEEF /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXReferenceProxy section */ @@ -572,14 +725,15 @@ files = ( 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - D979C78ED2E3475FA37918F6 /* Entypo.ttf in Resources */, - 32797E7F684C4DE6BBB18117 /* EvilIcons.ttf in Resources */, - 8945650611714B8BB7D01C03 /* FontAwesome.ttf in Resources */, - 0AD03549CCB3452BAFE6DBF0 /* Foundation.ttf in Resources */, - A1F6264ABAB34FB18062D788 /* Ionicons.ttf in Resources */, - DC111B8D96A34F7FBB1F346E /* MaterialIcons.ttf in Resources */, - EB0E95783B0E47B9B5E5EC78 /* Octicons.ttf in Resources */, - 7A3420E938E740A88DB30C52 /* Zocial.ttf in Resources */, + 94A878ED2FA6450483D5CED9 /* Entypo.ttf in Resources */, + A32E1E359858408AA47FAE06 /* EvilIcons.ttf in Resources */, + F6A9CB085EBF43AFB4BAA2DF /* FontAwesome.ttf in Resources */, + EF95F4A421C94F9AB6622769 /* Foundation.ttf in Resources */, + B2EE6F4ADBDB46C78212591C /* Ionicons.ttf in Resources */, + 15445F2B0C5745AA89F833A6 /* MaterialIcons.ttf in Resources */, + 7AAF7756DBE84F6AB9965662 /* Octicons.ttf in Resources */, + 50F6DA7117B44DEBBF4889F0 /* Zocial.ttf in Resources */, + EEC1B9F7E364456085BC3163 /* SimpleLineIcons.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -652,7 +806,7 @@ "$(inherited)", ); INFOPLIST_FILE = iShiWuPaiTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.2; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", @@ -669,7 +823,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; COPY_PHASE_STRIP = NO; INFOPLIST_FILE = iShiWuPaiTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.2; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", @@ -684,13 +838,8 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(SRCROOT)/../node_modules/react-native/React/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - ); INFOPLIST_FILE = iShiWuPai/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_LDFLAGS = ( @@ -699,6 +848,7 @@ "-lc++", ); PRODUCT_NAME = iShiWuPai; + VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; @@ -706,20 +856,17 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(SRCROOT)/../node_modules/react-native/React/**", - "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", - ); + CURRENT_PROJECT_VERSION = 1; INFOPLIST_FILE = iShiWuPai/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-lc++", ); PRODUCT_NAME = iShiWuPai; + VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; @@ -759,11 +906,11 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ( "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native/ReactCommon/**", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", ); - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -800,11 +947,11 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ( "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, "$(SRCROOT)/../node_modules/react-native/React/**", + "$(SRCROOT)/../node_modules/react-native/ReactCommon/**", "$(SRCROOT)/../node_modules/react-native-vector-icons/RNVectorIconsManager", ); - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme b/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme index 7554bca..04f8d22 100644 --- a/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme +++ b/ios/iShiWuPai.xcodeproj/xcshareddata/xcschemes/iShiWuPai.xcscheme @@ -37,10 +37,10 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -62,15 +62,18 @@ ReferencedContainer = "container:iShiWuPai.xcodeproj"> + + @@ -86,10 +89,10 @@ diff --git a/ios/iShiWuPai/Info.plist b/ios/iShiWuPai/Info.plist index 605307f..00c4e51 100644 --- a/ios/iShiWuPai/Info.plist +++ b/ios/iShiWuPai/Info.plist @@ -1,64 +1,65 @@ - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSTemporaryExceptionAllowsInsecureHTTPLoads - - - - NSAllowsArbitraryLoads - - - NSLocationWhenInUseUsageDescription - - UIAppFonts - - Entypo.ttf - EvilIcons.ttf - FontAwesome.ttf - Foundation.ttf - Ionicons.ttf - MaterialIcons.ttf - Octicons.ttf - Zocial.ttf - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - UIViewControllerBasedStatusBarAppearance - - - + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSExceptionDomains + + localhost + + NSTemporaryExceptionAllowsInsecureHTTPLoads + + + + NSAllowsArbitraryLoads + + + NSLocationWhenInUseUsageDescription + + UIAppFonts + + Entypo.ttf + EvilIcons.ttf + FontAwesome.ttf + Foundation.ttf + Ionicons.ttf + MaterialIcons.ttf + Octicons.ttf + Zocial.ttf + SimpleLineIcons.ttf + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UIViewControllerBasedStatusBarAppearance + + + \ No newline at end of file diff --git a/package.json b/package.json index d04709a..2ea025d 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,11 @@ }, "dependencies": { "react": "^15.3.1", - "react-native": "^0.33.1", - "react-native-swiper": "^1.4.4", - "react-native-vector-icons": "^2.0.2", - "react-redux": "^4.4.5", - "redux": "^3.5.2", + "react-native": "^0.39.2", + "react-native-swiper": "^1.5.4", + "react-native-vector-icons": "^3.0.0", + "react-redux": "^5.0.1", + "redux": "^3.6.0", "redux-thunk": "^2.1.0" }, "devDependencies": { From e8d963b26e2db730582c108fa8aeca13f85d7057 Mon Sep 17 00:00:00 2001 From: CookieJ Date: Thu, 5 Jan 2017 23:48:33 +0800 Subject: [PATCH 5/9] update readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fba5af5..52c68fa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## iShiWuPai -iShiWuPai是基于React Native实现的展示型美食类APP。主分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深入内容,方便新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 +iShiWuPai是基于React Native实现的展示型美食类APP。主分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深层内容,适合新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 ## 完成功能 主分支只针对iOS端,完成功能: @@ -26,7 +26,7 @@ iShiWuPai是基于React Native实现的展示型美食类APP。主分支采用 ``` $ git clone https://github.com/ljunb/react-native-iShiWuPai.git $ cd react-native-iShiWuPai -$ npm install & react-native link +$ npm install && react-native link $ react-native run-ios ``` From 70c4f7ddc4676d9d05eaee9a141b0549ca126d9d Mon Sep 17 00:00:00 2001 From: CookieJ Date: Fri, 6 Jan 2017 22:53:05 +0800 Subject: [PATCH 6/9] remove cocoapods and add LaunchImage --- ios/Podfile | 0 ios/Podfile.lock | 1 - ios/Pods/Manifest.lock | 1 - ios/Pods/Pods.xcodeproj/project.pbxproj | 272 ------------------ ios/iShiWuPai.xcodeproj/project.pbxproj | 13 +- .../contents.xcworkspacedata | 10 - ios/iShiWuPai/Base.lproj/LaunchScreen.xib | 41 ++- .../AppIcon.appiconset/Contents.json | 10 + .../launch.imageset/Contents.json | 21 ++ .../launch.imageset/launch.png | Bin 0 -> 64188 bytes ios/iShiWuPai/Info.plist | 126 ++++---- 11 files changed, 119 insertions(+), 376 deletions(-) delete mode 100644 ios/Podfile delete mode 100644 ios/Podfile.lock delete mode 100644 ios/Pods/Manifest.lock delete mode 100644 ios/Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 ios/iShiWuPai.xcworkspace/contents.xcworkspacedata create mode 100644 ios/iShiWuPai/Images.xcassets/launch.imageset/Contents.json create mode 100644 ios/iShiWuPai/Images.xcassets/launch.imageset/launch.png diff --git a/ios/Podfile b/ios/Podfile deleted file mode 100644 index e69de29..0000000 diff --git a/ios/Podfile.lock b/ios/Podfile.lock deleted file mode 100644 index a8b2796..0000000 --- a/ios/Podfile.lock +++ /dev/null @@ -1 +0,0 @@ -COCOAPODS: 0.39.0 diff --git a/ios/Pods/Manifest.lock b/ios/Pods/Manifest.lock deleted file mode 100644 index a8b2796..0000000 --- a/ios/Pods/Manifest.lock +++ /dev/null @@ -1 +0,0 @@ -COCOAPODS: 0.39.0 diff --git a/ios/Pods/Pods.xcodeproj/project.pbxproj b/ios/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index 47569f6..0000000 --- a/ios/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,272 +0,0 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 052A17875CB827423D627183396CEB60 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES - CLANG_WARN_UNREACHABLE_CODE - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - YES - ENABLE_NS_ASSERTIONS - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PREPROCESSOR_DEFINITIONS - - RELEASE=1 - - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - STRIP_INSTALLED_PRODUCT - NO - SYMROOT - ${SRCROOT}/../build - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 09C5E90726D2521A760312DBF50D9358 - - children - - isa - PBXGroup - name - Products - sourceTree - <group> - - 0F8D2E47FE03D3B91B51069F7C273AF4 - - children - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - 2D8E8EC45A3A1A1D94AE762CB5028504 - - buildConfigurations - - B37F0F91F85060E28F1DAAB522DC7EC1 - 052A17875CB827423D627183396CEB60 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 7DB346D0F39D3F0E887471402A8071AB - - children - - BA6428E9F66FD5A23C0A2E06ED26CD2F - 0F8D2E47FE03D3B91B51069F7C273AF4 - 09C5E90726D2521A760312DBF50D9358 - F6CCA5D896907CE7506C37FD31FC265A - - isa - PBXGroup - sourceTree - <group> - - B37F0F91F85060E28F1DAAB522DC7EC1 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES - CLANG_WARN_UNREACHABLE_CODE - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 7.0 - ONLY_ACTIVE_ARCH - YES - STRIP_INSTALLED_PRODUCT - NO - SYMROOT - ${SRCROOT}/../build - - isa - XCBuildConfiguration - name - Debug - - BA6428E9F66FD5A23C0A2E06ED26CD2F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - name - Podfile - path - ../Podfile - sourceTree - SOURCE_ROOT - xcLanguageSpecificationIdentifier - xcode.lang.ruby - - D41D8CD98F00B204E9800998ECF8427E - - attributes - - LastSwiftUpdateCheck - 0700 - LastUpgradeCheck - 0700 - - buildConfigurationList - 2D8E8EC45A3A1A1D94AE762CB5028504 - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - - mainGroup - 7DB346D0F39D3F0E887471402A8071AB - productRefGroup - 09C5E90726D2521A760312DBF50D9358 - projectDirPath - - projectReferences - - projectRoot - - targets - - - F6CCA5D896907CE7506C37FD31FC265A - - children - - isa - PBXGroup - name - Targets Support Files - sourceTree - <group> - - - rootObject - D41D8CD98F00B204E9800998ECF8427E - - diff --git a/ios/iShiWuPai.xcodeproj/project.pbxproj b/ios/iShiWuPai.xcodeproj/project.pbxproj index 596b9ab..5145bb2 100644 --- a/ios/iShiWuPai.xcodeproj/project.pbxproj +++ b/ios/iShiWuPai.xcodeproj/project.pbxproj @@ -18,7 +18,6 @@ 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; @@ -31,6 +30,7 @@ 94A878ED2FA6450483D5CED9 /* Entypo.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 13E98AFC33A9479B9BD01418 /* Entypo.ttf */; }; A32E1E359858408AA47FAE06 /* EvilIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 0D7F21F6A54C485C8FCFCB7A /* EvilIcons.ttf */; }; B2EE6F4ADBDB46C78212591C /* Ionicons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 2C7852F293784CAD9B5BB852 /* Ionicons.ttf */; }; + EC0D42A41E1FE607008881AE /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = EC0D42A21E1FE607008881AE /* LaunchScreen.xib */; }; EEC1B9F7E364456085BC3163 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F309242C7D55418EAC6CE01A /* SimpleLineIcons.ttf */; }; EF95F4A421C94F9AB6622769 /* Foundation.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A989F40972D94575817A917A /* Foundation.ttf */; }; F6A9CB085EBF43AFB4BAA2DF /* FontAwesome.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FC5806B73A314FBB9C0E607D /* FontAwesome.ttf */; }; @@ -203,7 +203,6 @@ 13B07F961A680F5B00A75B9A /* iShiWuPai.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iShiWuPai.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = iShiWuPai/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = iShiWuPai/AppDelegate.m; sourceTree = ""; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = iShiWuPai/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iShiWuPai/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = iShiWuPai/main.m; sourceTree = ""; }; @@ -218,6 +217,7 @@ A989F40972D94575817A917A /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; B28585121B754E98A3C78617 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; B74D8E70D2484B8D8D35A3C4 /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; + EC0D42A31E1FE607008881AE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = iShiWuPai/Base.lproj/LaunchScreen.xib; sourceTree = ""; }; F309242C7D55418EAC6CE01A /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; }; FC5806B73A314FBB9C0E607D /* FontAwesome.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -338,8 +338,8 @@ 13B07FB01A68108700A75B9A /* AppDelegate.m */, 13B07FB51A68108700A75B9A /* Images.xcassets */, 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, 13B07FB71A68108700A75B9A /* main.m */, + EC0D42A21E1FE607008881AE /* LaunchScreen.xib */, ); name = iShiWuPai; sourceTree = ""; @@ -724,7 +724,6 @@ buildActionMask = 2147483647; files = ( 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, 94A878ED2FA6450483D5CED9 /* Entypo.ttf in Resources */, A32E1E359858408AA47FAE06 /* EvilIcons.ttf in Resources */, F6A9CB085EBF43AFB4BAA2DF /* FontAwesome.ttf in Resources */, @@ -733,6 +732,7 @@ 15445F2B0C5745AA89F833A6 /* MaterialIcons.ttf in Resources */, 7AAF7756DBE84F6AB9965662 /* Octicons.ttf in Resources */, 50F6DA7117B44DEBBF4889F0 /* Zocial.ttf in Resources */, + EC0D42A41E1FE607008881AE /* LaunchScreen.xib in Resources */, EEC1B9F7E364456085BC3163 /* SimpleLineIcons.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -785,13 +785,12 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { + EC0D42A21E1FE607008881AE /* LaunchScreen.xib */ = { isa = PBXVariantGroup; children = ( - 13B07FB21A68108700A75B9A /* Base */, + EC0D42A31E1FE607008881AE /* Base */, ); name = LaunchScreen.xib; - path = iShiWuPai; sourceTree = ""; }; /* End PBXVariantGroup section */ diff --git a/ios/iShiWuPai.xcworkspace/contents.xcworkspacedata b/ios/iShiWuPai.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index a18f0d8..0000000 --- a/ios/iShiWuPai.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/ios/iShiWuPai/Base.lproj/LaunchScreen.xib b/ios/iShiWuPai/Base.lproj/LaunchScreen.xib index b5ef772..032d867 100644 --- a/ios/iShiWuPai/Base.lproj/LaunchScreen.xib +++ b/ios/iShiWuPai/Base.lproj/LaunchScreen.xib @@ -1,9 +1,12 @@ - - + + + + + - - + + @@ -12,31 +15,23 @@ - - + + + - + - - - - - - + + + + + + + diff --git a/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/Contents.json index 1024a77..09e28ea 100644 --- a/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/iShiWuPai/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "size" : "29x29", "idiom" : "iphone", diff --git a/ios/iShiWuPai/Images.xcassets/launch.imageset/Contents.json b/ios/iShiWuPai/Images.xcassets/launch.imageset/Contents.json new file mode 100644 index 0000000..5989f83 --- /dev/null +++ b/ios/iShiWuPai/Images.xcassets/launch.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "launch.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ios/iShiWuPai/Images.xcassets/launch.imageset/launch.png b/ios/iShiWuPai/Images.xcassets/launch.imageset/launch.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5a47fbce4cd73f6767e9f29b88ebe16984ba6d GIT binary patch literal 64188 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 cBwwV!=`)w4@4P+J0J7)mMTcJ+F8HSY8 - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSTemporaryExceptionAllowsInsecureHTTPLoads - - - - NSAllowsArbitraryLoads - - - NSLocationWhenInUseUsageDescription - - UIAppFonts - - Entypo.ttf - EvilIcons.ttf - FontAwesome.ttf - Foundation.ttf - Ionicons.ttf - MaterialIcons.ttf - Octicons.ttf - Zocial.ttf - SimpleLineIcons.ttf - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - UIViewControllerBasedStatusBarAppearance - - - \ No newline at end of file + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + 食物派RN + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + localhost + + NSTemporaryExceptionAllowsInsecureHTTPLoads + + + + + NSLocationWhenInUseUsageDescription + + UIAppFonts + + Entypo.ttf + EvilIcons.ttf + FontAwesome.ttf + Foundation.ttf + Ionicons.ttf + MaterialIcons.ttf + Octicons.ttf + Zocial.ttf + SimpleLineIcons.ttf + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UIViewControllerBasedStatusBarAppearance + + + From 35c9263e5c65510af8a6bf2c0089b105a552731e Mon Sep 17 00:00:00 2001 From: CookieJ Date: Sat, 25 Feb 2017 23:56:58 +0800 Subject: [PATCH 7/9] master branch update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 52c68fa..6fc39d0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## iShiWuPai -iShiWuPai是基于React Native实现的展示型美食类APP。主分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深层内容,适合新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 +iShiWuPai是基于React Native实现的展示型美食类APP。master分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深层内容,适合新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 ## 完成功能 主分支只针对iOS端,完成功能: @@ -24,7 +24,7 @@ iShiWuPai是基于React Native实现的展示型美食类APP。主分支采用 ## 运行 ``` -$ git clone https://github.com/ljunb/react-native-iShiWuPai.git +$ git clone -b master https://github.com/ljunb/react-native-iShiWuPai.git $ cd react-native-iShiWuPai $ npm install && react-native link $ react-native run-ios From b92fcb064b2f65e65e430061d1650684ae5ec7c2 Mon Sep 17 00:00:00 2001 From: CookieJ Date: Mon, 10 Jul 2017 08:59:13 -0500 Subject: [PATCH 8/9] Set theme jekyll-theme-time-machine --- _config.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 _config.yml diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..ddeb671 --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-time-machine \ No newline at end of file From 805a863d041d73f846e3d2d331e6cfd884384c58 Mon Sep 17 00:00:00 2001 From: CookieJ Date: Fri, 11 Aug 2017 21:13:58 +0800 Subject: [PATCH 9/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6fc39d0..3005c9a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## iShiWuPai -iShiWuPai是基于React Native实现的展示型美食类APP。master分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深层内容,适合新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 +iShiWuPai是基于React Native实现的展示型美食类APP,数据来源于[【薄荷】](http://www.boohee.com/)。master分支采用了Redux数据流管理模式,基本为UI展示型APP,未涉及深层内容,适合新人入门和学习。另因个人学习Mobx,新的分支不定时更新中,如有兴趣可移步[alpha分支](https://github.com/ljunb/react-native-iShiWuPai/tree/alpha),已适配iOS和Android两端。 ## 完成功能 主分支只针对iOS端,完成功能: