@@ -6,7 +6,7 @@ | |||||
"configurations": [ | "configurations": [ | ||||
{ | { | ||||
"name": "Flutter", | "name": "Flutter", | ||||
"program": "lib/main.dart", | |||||
"program": "example/lib/main.dart", | |||||
"request": "launch", | "request": "launch", | ||||
"type": "dart" | "type": "dart" | ||||
} | } | ||||
@@ -0,0 +1,103 @@ | |||||
PODS: | |||||
- device_info (0.0.1): | |||||
- Flutter | |||||
- Flutter (1.0.0) | |||||
- flutter_native_image (0.0.1): | |||||
- Flutter | |||||
- fluttertoast (0.0.2): | |||||
- Flutter | |||||
- FMDB (2.7.5): | |||||
- FMDB/standard (= 2.7.5) | |||||
- FMDB/standard (2.7.5) | |||||
- package_info (0.0.1): | |||||
- Flutter | |||||
- path_provider (0.0.1): | |||||
- Flutter | |||||
- path_provider_linux (0.0.1): | |||||
- Flutter | |||||
- path_provider_macos (0.0.1): | |||||
- Flutter | |||||
- shared_preferences (0.0.1): | |||||
- Flutter | |||||
- shared_preferences_linux (0.0.1): | |||||
- Flutter | |||||
- shared_preferences_macos (0.0.1): | |||||
- Flutter | |||||
- shared_preferences_web (0.0.1): | |||||
- Flutter | |||||
- sqflite (0.0.1): | |||||
- Flutter | |||||
- FMDB (~> 2.7.2) | |||||
- zhiying_comm (0.0.1): | |||||
- Flutter | |||||
DEPENDENCIES: | |||||
- device_info (from `.symlinks/plugins/device_info/ios`) | |||||
- Flutter (from `Flutter`) | |||||
- flutter_native_image (from `.symlinks/plugins/flutter_native_image/ios`) | |||||
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) | |||||
- package_info (from `.symlinks/plugins/package_info/ios`) | |||||
- path_provider (from `.symlinks/plugins/path_provider/ios`) | |||||
- path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`) | |||||
- path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) | |||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) | |||||
- shared_preferences_linux (from `.symlinks/plugins/shared_preferences_linux/ios`) | |||||
- shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) | |||||
- shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) | |||||
- sqflite (from `.symlinks/plugins/sqflite/ios`) | |||||
- zhiying_comm (from `.symlinks/plugins/zhiying_comm/ios`) | |||||
SPEC REPOS: | |||||
trunk: | |||||
- FMDB | |||||
EXTERNAL SOURCES: | |||||
device_info: | |||||
:path: ".symlinks/plugins/device_info/ios" | |||||
Flutter: | |||||
:path: Flutter | |||||
flutter_native_image: | |||||
:path: ".symlinks/plugins/flutter_native_image/ios" | |||||
fluttertoast: | |||||
:path: ".symlinks/plugins/fluttertoast/ios" | |||||
package_info: | |||||
:path: ".symlinks/plugins/package_info/ios" | |||||
path_provider: | |||||
:path: ".symlinks/plugins/path_provider/ios" | |||||
path_provider_linux: | |||||
:path: ".symlinks/plugins/path_provider_linux/ios" | |||||
path_provider_macos: | |||||
:path: ".symlinks/plugins/path_provider_macos/ios" | |||||
shared_preferences: | |||||
:path: ".symlinks/plugins/shared_preferences/ios" | |||||
shared_preferences_linux: | |||||
:path: ".symlinks/plugins/shared_preferences_linux/ios" | |||||
shared_preferences_macos: | |||||
:path: ".symlinks/plugins/shared_preferences_macos/ios" | |||||
shared_preferences_web: | |||||
:path: ".symlinks/plugins/shared_preferences_web/ios" | |||||
sqflite: | |||||
:path: ".symlinks/plugins/sqflite/ios" | |||||
zhiying_comm: | |||||
:path: ".symlinks/plugins/zhiying_comm/ios" | |||||
SPEC CHECKSUMS: | |||||
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 | |||||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec | |||||
flutter_native_image: 9c0b7451838484458e5b0fae007b86a4c2d4bdfe | |||||
fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b | |||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a | |||||
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 | |||||
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c | |||||
path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4 | |||||
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 | |||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d | |||||
shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78 | |||||
shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 | |||||
shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 | |||||
sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0 | |||||
zhiying_comm: 0daef4a480f4f4dbea3e11b615f3264aafea924b | |||||
PODFILE CHECKSUM: 3dbe063e9c90a5d7c9e4e76e70a821b9e2c1d271 | |||||
COCOAPODS: 1.9.3 |
@@ -11,6 +11,7 @@ | |||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | ||||
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; | ||||
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; | ||||
8392C03FA6C72CAB4F5C4CC3 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A1B7C2B50097C8170B71A96 /* libPods-Runner.a */; }; | |||||
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; | ||||
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; | ||||
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; | ||||
@@ -38,11 +39,14 @@ | |||||
/* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; | ||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; | ||||
3AE46CA1A9766F14895E9A3C /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; | |||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | ||||
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; }; | 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; }; | ||||
6A1B7C2B50097C8170B71A96 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; | ||||
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; | ||||
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; | ||||
81DAE47BE752C6766DCC2F7E /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; | |||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; | ||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; | ||||
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; }; | 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; }; | ||||
@@ -52,6 +56,7 @@ | |||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | ||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; | ||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||||
F1628CBC8D15F3FA852FDD72 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; }; | |||||
/* End PBXFileReference section */ | /* End PBXFileReference section */ | ||||
/* Begin PBXFrameworksBuildPhase section */ | /* Begin PBXFrameworksBuildPhase section */ | ||||
@@ -61,12 +66,24 @@ | |||||
files = ( | files = ( | ||||
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, | ||||
3B80C3941E831B6300D905FE /* App.framework in Frameworks */, | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, | ||||
8392C03FA6C72CAB4F5C4CC3 /* libPods-Runner.a in Frameworks */, | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
/* End PBXFrameworksBuildPhase section */ | /* End PBXFrameworksBuildPhase section */ | ||||
/* Begin PBXGroup section */ | /* Begin PBXGroup section */ | ||||
797CB0D7220BB44A3506E52E /* Pods */ = { | |||||
isa = PBXGroup; | |||||
children = ( | |||||
3AE46CA1A9766F14895E9A3C /* Pods-Runner.debug.xcconfig */, | |||||
81DAE47BE752C6766DCC2F7E /* Pods-Runner.release.xcconfig */, | |||||
F1628CBC8D15F3FA852FDD72 /* Pods-Runner.profile.xcconfig */, | |||||
); | |||||
name = Pods; | |||||
path = Pods; | |||||
sourceTree = "<group>"; | |||||
}; | |||||
9740EEB11CF90186004384FC /* Flutter */ = { | 9740EEB11CF90186004384FC /* Flutter */ = { | ||||
isa = PBXGroup; | isa = PBXGroup; | ||||
children = ( | children = ( | ||||
@@ -86,7 +103,8 @@ | |||||
9740EEB11CF90186004384FC /* Flutter */, | 9740EEB11CF90186004384FC /* Flutter */, | ||||
97C146F01CF9000F007C117D /* Runner */, | 97C146F01CF9000F007C117D /* Runner */, | ||||
97C146EF1CF9000F007C117D /* Products */, | 97C146EF1CF9000F007C117D /* Products */, | ||||
CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, | |||||
797CB0D7220BB44A3506E52E /* Pods */, | |||||
C515045CAD881A02B77DBC01 /* Frameworks */, | |||||
); | ); | ||||
sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
}; | }; | ||||
@@ -122,6 +140,14 @@ | |||||
name = "Supporting Files"; | name = "Supporting Files"; | ||||
sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
}; | }; | ||||
C515045CAD881A02B77DBC01 /* Frameworks */ = { | |||||
isa = PBXGroup; | |||||
children = ( | |||||
6A1B7C2B50097C8170B71A96 /* libPods-Runner.a */, | |||||
); | |||||
name = Frameworks; | |||||
sourceTree = "<group>"; | |||||
}; | |||||
/* End PBXGroup section */ | /* End PBXGroup section */ | ||||
/* Begin PBXNativeTarget section */ | /* Begin PBXNativeTarget section */ | ||||
@@ -129,12 +155,14 @@ | |||||
isa = PBXNativeTarget; | isa = PBXNativeTarget; | ||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; | ||||
buildPhases = ( | buildPhases = ( | ||||
FC27367DF1001F558C953AB1 /* [CP] Check Pods Manifest.lock */, | |||||
9740EEB61CF901F6004384FC /* Run Script */, | 9740EEB61CF901F6004384FC /* Run Script */, | ||||
97C146EA1CF9000F007C117D /* Sources */, | 97C146EA1CF9000F007C117D /* Sources */, | ||||
97C146EB1CF9000F007C117D /* Frameworks */, | 97C146EB1CF9000F007C117D /* Frameworks */, | ||||
97C146EC1CF9000F007C117D /* Resources */, | 97C146EC1CF9000F007C117D /* Resources */, | ||||
9705A1C41CF9048500538489 /* Embed Frameworks */, | 9705A1C41CF9048500538489 /* Embed Frameworks */, | ||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */, | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, | ||||
59F5B2BD0CC9263415C8DC83 /* [CP] Embed Pods Frameworks */, | |||||
); | ); | ||||
buildRules = ( | buildRules = ( | ||||
); | ); | ||||
@@ -206,6 +234,21 @@ | |||||
shellPath = /bin/sh; | shellPath = /bin/sh; | ||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; | ||||
}; | }; | ||||
59F5B2BD0CC9263415C8DC83 /* [CP] Embed Pods Frameworks */ = { | |||||
isa = PBXShellScriptBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
inputPaths = ( | |||||
); | |||||
name = "[CP] Embed Pods Frameworks"; | |||||
outputPaths = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
shellPath = /bin/sh; | |||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; | |||||
showEnvVarsInLog = 0; | |||||
}; | |||||
9740EEB61CF901F6004384FC /* Run Script */ = { | 9740EEB61CF901F6004384FC /* Run Script */ = { | ||||
isa = PBXShellScriptBuildPhase; | isa = PBXShellScriptBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -220,6 +263,28 @@ | |||||
shellPath = /bin/sh; | shellPath = /bin/sh; | ||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; | ||||
}; | }; | ||||
FC27367DF1001F558C953AB1 /* [CP] Check Pods Manifest.lock */ = { | |||||
isa = PBXShellScriptBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
inputFileListPaths = ( | |||||
); | |||||
inputPaths = ( | |||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |||||
"${PODS_ROOT}/Manifest.lock", | |||||
); | |||||
name = "[CP] Check Pods Manifest.lock"; | |||||
outputFileListPaths = ( | |||||
); | |||||
outputPaths = ( | |||||
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
shellPath = /bin/sh; | |||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |||||
showEnvVarsInLog = 0; | |||||
}; | |||||
/* End PBXShellScriptBuildPhase section */ | /* End PBXShellScriptBuildPhase section */ | ||||
/* Begin PBXSourcesBuildPhase section */ | /* Begin PBXSourcesBuildPhase section */ | ||||
@@ -4,4 +4,7 @@ | |||||
<FileRef | <FileRef | ||||
location = "group:Runner.xcodeproj"> | location = "group:Runner.xcodeproj"> | ||||
</FileRef> | </FileRef> | ||||
<FileRef | |||||
location = "group:Pods/Pods.xcodeproj"> | |||||
</FileRef> | |||||
</Workspace> | </Workspace> |
@@ -1,13 +1,34 @@ | |||||
#import "AppDelegate.h" | #import "AppDelegate.h" | ||||
#import "GeneratedPluginRegistrant.h" | #import "GeneratedPluginRegistrant.h" | ||||
#import <zhiying_comm/ZhiyingCommNative.h> | |||||
@implementation AppDelegate | @implementation AppDelegate | ||||
- (BOOL)application:(UIApplication *)application | - (BOOL)application:(UIApplication *)application | ||||
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { | ||||
[ZhiyingCommNative regist: self]; | |||||
[GeneratedPluginRegistrant registerWithRegistry:self]; | [GeneratedPluginRegistrant registerWithRegistry:self]; | ||||
// Override point for customization after application launch. | |||||
return [super application:application didFinishLaunchingWithOptions:launchOptions]; | return [super application:application didFinishLaunchingWithOptions:launchOptions]; | ||||
} | } | ||||
// 公共跳转方法 | |||||
- (void)openPage: (NSDictionary*)params { | |||||
} | |||||
- (void)openNativePage: (NSDictionary*)params { | |||||
NSString *method = [params valueForKey:@"method"]; | |||||
if ([method isEqualToString: @""]) { | |||||
} | |||||
} | |||||
// 获取设置 | |||||
- (NSDictionary*)getSetting { | |||||
return @{ | |||||
// @"domain": @"http://120.76.175.204:8989" | |||||
@"domain": @"http://192.168.0.113:5000" | |||||
}; | |||||
} | |||||
@end | @end |
@@ -36,6 +36,19 @@ class _MyAppState extends State<MyApp> { | |||||
}); | }); | ||||
}, | }, | ||||
child: Text('登录请求'), | child: Text('登录请求'), | ||||
), | |||||
RaisedButton( | |||||
onPressed: () { | |||||
NetUtil.request('/api/v1/rec/featured?page=1', | |||||
method: NetMethod.GET, params: {}); | |||||
}, | |||||
child: Text('页面请求'), | |||||
), | |||||
RaisedButton( | |||||
onPressed: () { | |||||
NetUtil.request('/api/v1/config.json', params: {}); | |||||
}, | |||||
child: Text('基础配置'), | |||||
) | ) | ||||
], | ], | ||||
)), | )), | ||||
@@ -125,6 +125,13 @@ packages: | |||||
url: "https://pub.flutter-io.cn" | url: "https://pub.flutter-io.cn" | ||||
source: hosted | source: hosted | ||||
version: "0.0.5+2" | version: "0.0.5+2" | ||||
flutter_screenutil: | |||||
dependency: transitive | |||||
description: | |||||
name: flutter_screenutil | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "1.1.0" | |||||
flutter_test: | flutter_test: | ||||
dependency: "direct dev" | dependency: "direct dev" | ||||
description: flutter | description: flutter | ||||
@@ -275,6 +282,41 @@ packages: | |||||
url: "https://pub.flutter-io.cn" | url: "https://pub.flutter-io.cn" | ||||
source: hosted | source: hosted | ||||
version: "0.24.1" | version: "0.24.1" | ||||
shared_preferences: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.5.10" | |||||
shared_preferences_linux: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_linux | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.0.2+2" | |||||
shared_preferences_macos: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_macos | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.0.1+10" | |||||
shared_preferences_platform_interface: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_platform_interface | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "1.0.4" | |||||
shared_preferences_web: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_web | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.1.2+7" | |||||
sky_engine: | sky_engine: | ||||
dependency: transitive | dependency: transitive | ||||
description: flutter | description: flutter | ||||
@@ -1,20 +1,10 @@ | |||||
#import "ZhiyingCommPlugin.h" | #import "ZhiyingCommPlugin.h" | ||||
#import "ZhiyingCommNative.h" | |||||
@implementation ZhiyingCommPlugin | @implementation ZhiyingCommPlugin | ||||
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar { | + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar { | ||||
FlutterMethodChannel* channel = [FlutterMethodChannel | |||||
methodChannelWithName:@"zhiying_comm" | |||||
binaryMessenger:[registrar messenger]]; | |||||
ZhiyingCommPlugin* instance = [[ZhiyingCommPlugin alloc] init]; | |||||
[registrar addMethodCallDelegate:instance channel:channel]; | |||||
[ZhiyingCommNative registerWithRegistrar:registrar]; | |||||
} | } | ||||
- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { | |||||
if ([@"getPlatformVersion" isEqualToString:call.method]) { | |||||
result([@"iOS " stringByAppendingString:[[UIDevice currentDevice] systemVersion]]); | |||||
} else { | |||||
result(FlutterMethodNotImplemented); | |||||
} | |||||
} | |||||
@end | @end |
@@ -17,6 +17,17 @@ typedef OnSuccess = dynamic Function(dynamic data); | |||||
typedef OnError = dynamic Function(String e); | typedef OnError = dynamic Function(String e); | ||||
typedef OnCache = dynamic Function(dynamic data); | typedef OnCache = dynamic Function(dynamic data); | ||||
enum NetMethod { | |||||
GET, | |||||
POST, | |||||
PUT, | |||||
DELETE, | |||||
OPTIONS, | |||||
PATCH, | |||||
UPDATE, | |||||
HEAD, | |||||
} | |||||
class NetUtil { | class NetUtil { | ||||
Dio _dio; | Dio _dio; | ||||
@@ -35,7 +46,7 @@ class NetUtil { | |||||
if (_dio == null) { | if (_dio == null) { | ||||
var setting = await NativeUtil.getSetting(); | var setting = await NativeUtil.getSetting(); | ||||
String domain = setting['domain']; //'http://www.hairuyi.com/'; | String domain = setting['domain']; //'http://www.hairuyi.com/'; | ||||
_config(domain); | |||||
_config(domain, proxyUrl: '192.168.0.112:8888'); | |||||
} | } | ||||
return _dio; | return _dio; | ||||
} | } | ||||
@@ -44,12 +55,14 @@ class NetUtil { | |||||
/// apiVersion 接口版本 | /// apiVersion 接口版本 | ||||
void _config(String baseUrl, {String proxyUrl}) { | void _config(String baseUrl, {String proxyUrl}) { | ||||
_dio = Dio(BaseOptions( | _dio = Dio(BaseOptions( | ||||
method: "post", | |||||
baseUrl: baseUrl, | |||||
connectTimeout: 15000, | |||||
receiveTimeout: 15000, | |||||
contentType: Headers.jsonContentType, | |||||
followRedirects: true)); | |||||
method: "post", | |||||
baseUrl: baseUrl, | |||||
connectTimeout: 15000, | |||||
receiveTimeout: 15000, | |||||
contentType: Headers.jsonContentType, | |||||
followRedirects: true, | |||||
headers: {'device': 'wx_applet'}, | |||||
)); | |||||
_dio.interceptors.add(_NetInterceptors()); | _dio.interceptors.add(_NetInterceptors()); | ||||
_dio.interceptors.add(LogInterceptor()); | _dio.interceptors.add(LogInterceptor()); | ||||
@@ -107,7 +120,6 @@ class NetUtil { | |||||
GlobalConfig.RESPONSE_SUCCESS_CODE || | GlobalConfig.RESPONSE_SUCCESS_CODE || | ||||
result[GlobalConfig.HTTP_RESPONSE_KEY_CODE] == | result[GlobalConfig.HTTP_RESPONSE_KEY_CODE] == | ||||
'${GlobalConfig.RESPONSE_SUCCESS_CODE}') { | '${GlobalConfig.RESPONSE_SUCCESS_CODE}') { | ||||
Logger.error(result[GlobalConfig.HTTP_RESPONSE_KEY_MSG]); | Logger.error(result[GlobalConfig.HTTP_RESPONSE_KEY_MSG]); | ||||
Fluttertoast.showToast( | Fluttertoast.showToast( | ||||
@@ -121,7 +133,7 @@ class NetUtil { | |||||
/// 异步请求 | /// 异步请求 | ||||
static void request(String path, | static void request(String path, | ||||
{String method = 'POST', | |||||
{NetMethod method = NetMethod.GET, | |||||
Map<String, dynamic> params, | Map<String, dynamic> params, | ||||
Map<String, File> multiFiles, | Map<String, File> multiFiles, | ||||
OnSuccess onSuccess, | OnSuccess onSuccess, | ||||
@@ -141,16 +153,8 @@ class NetUtil { | |||||
Response response; | Response response; | ||||
try { | try { | ||||
Dio dio = await NetUtil.getInstance().dio; | Dio dio = await NetUtil.getInstance().dio; | ||||
// 文件 | |||||
if (multiFiles != null && multiFiles.length > 0) { | |||||
for (String key in multiFiles.keys) { | |||||
var file = await MultipartFile.fromFile(multiFiles[key].path); | |||||
sign[key] = file; | |||||
} | |||||
} | |||||
FormData formData = FormData.fromMap(sign); | |||||
response = await dio.request(path, | |||||
data: formData, options: Options(method: method)); | |||||
dio.request(path, | |||||
data: sign, options: Options(method: enumToString(method))); | |||||
} on DioError catch (e) { | } on DioError catch (e) { | ||||
_formatError(e); | _formatError(e); | ||||
} | } | ||||
@@ -172,7 +176,7 @@ class NetUtil { | |||||
} | } | ||||
return; | return; | ||||
} | } | ||||
Logger.error('error: ' + result[GlobalConfig.HTTP_RESPONSE_KEY_MSG]); | Logger.error('error: ' + result[GlobalConfig.HTTP_RESPONSE_KEY_MSG]); | ||||
Fluttertoast.showToast( | Fluttertoast.showToast( | ||||
msg: result[GlobalConfig.HTTP_RESPONSE_KEY_MSG], | msg: result[GlobalConfig.HTTP_RESPONSE_KEY_MSG], | ||||
@@ -264,9 +268,11 @@ class NetUtil { | |||||
} | } | ||||
/// 获取请求缓存成功的数据 | /// 获取请求缓存成功的数据 | ||||
static Future<void> _onCallBackCacheData(OnCache onCache, String cacheKey) async { | |||||
static Future<void> _onCallBackCacheData( | |||||
OnCache onCache, String cacheKey) async { | |||||
// 读取缓存 | // 读取缓存 | ||||
Map<String, dynamic> cacheMap = await SharedPreferencesUtil.getNetCacheResult(cacheKey); | |||||
Map<String, dynamic> cacheMap = | |||||
await SharedPreferencesUtil.getNetCacheResult(cacheKey); | |||||
if (!EmptyUtil.isEmpty(cacheMap) && | if (!EmptyUtil.isEmpty(cacheMap) && | ||||
cacheMap.containsKey(GlobalConfig.RESPONSE_SUCCESS_CODE) && | cacheMap.containsKey(GlobalConfig.RESPONSE_SUCCESS_CODE) && | ||||
(cacheMap[GlobalConfig.RESPONSE_SUCCESS_CODE] == | (cacheMap[GlobalConfig.RESPONSE_SUCCESS_CODE] == | ||||
@@ -342,7 +348,8 @@ class _NetInterceptors extends InterceptorsWrapper { | |||||
@override | @override | ||||
Future onResponse(Response response) { | Future onResponse(Response response) { | ||||
Logger.endNet(response.realUri.toString(), data: response?.data?.toString() ?? ''); | |||||
Logger.endNet(response?.statusCode?.toString(), | |||||
data: response?.data?.toString() ?? ''); | |||||
// TODO 解密? | // TODO 解密? | ||||
return super.onResponse(response); | return super.onResponse(response); | ||||
} | } | ||||
@@ -118,6 +118,13 @@ packages: | |||||
url: "https://pub.flutter-io.cn" | url: "https://pub.flutter-io.cn" | ||||
source: hosted | source: hosted | ||||
version: "0.0.5+2" | version: "0.0.5+2" | ||||
flutter_screenutil: | |||||
dependency: "direct main" | |||||
description: | |||||
name: flutter_screenutil | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "1.1.0" | |||||
flutter_test: | flutter_test: | ||||
dependency: "direct dev" | dependency: "direct dev" | ||||
description: flutter | description: flutter | ||||
@@ -268,6 +275,41 @@ packages: | |||||
url: "https://pub.flutter-io.cn" | url: "https://pub.flutter-io.cn" | ||||
source: hosted | source: hosted | ||||
version: "0.24.1" | version: "0.24.1" | ||||
shared_preferences: | |||||
dependency: "direct main" | |||||
description: | |||||
name: shared_preferences | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.5.10" | |||||
shared_preferences_linux: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_linux | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.0.2+2" | |||||
shared_preferences_macos: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_macos | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.0.1+10" | |||||
shared_preferences_platform_interface: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_platform_interface | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "1.0.4" | |||||
shared_preferences_web: | |||||
dependency: transitive | |||||
description: | |||||
name: shared_preferences_web | |||||
url: "https://pub.flutter-io.cn" | |||||
source: hosted | |||||
version: "0.1.2+7" | |||||
sky_engine: | sky_engine: | ||||
dependency: transitive | dependency: transitive | ||||
description: flutter | description: flutter | ||||