Skip to content

Commit 23b6929

Browse files
committed
Fin CRUD con Fotos
1 parent 824a1de commit 23b6929

File tree

18 files changed

+715
-14
lines changed

18 files changed

+715
-14
lines changed

android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ android {
3434
defaultConfig {
3535
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
3636
applicationId "com.example.formvalidation"
37-
minSdkVersion 16
37+
minSdkVersion 21
3838
targetSdkVersion 28
3939
versionCode flutterVersionCode.toInteger()
4040
versionName flutterVersionName

assets/jar-loading.gif

16.9 KB
Loading

assets/no-image.png

1.2 KB
Loading

ios/Flutter/Debug.xcconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
12
#include "Generated.xcconfig"

ios/Flutter/Release.xcconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
12
#include "Generated.xcconfig"

ios/Podfile

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Uncomment this line to define a global platform for your project
2+
# platform :ios, '9.0'
3+
4+
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5+
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
6+
7+
project 'Runner', {
8+
'Debug' => :debug,
9+
'Profile' => :release,
10+
'Release' => :release,
11+
}
12+
13+
def parse_KV_file(file, separator='=')
14+
file_abs_path = File.expand_path(file)
15+
if !File.exists? file_abs_path
16+
return [];
17+
end
18+
pods_ary = []
19+
skip_line_start_symbols = ["#", "/"]
20+
File.foreach(file_abs_path) { |line|
21+
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
22+
plugin = line.split(pattern=separator)
23+
if plugin.length == 2
24+
podname = plugin[0].strip()
25+
path = plugin[1].strip()
26+
podpath = File.expand_path("#{path}", file_abs_path)
27+
pods_ary.push({:name => podname, :path => podpath});
28+
else
29+
puts "Invalid plugin specification: #{line}"
30+
end
31+
}
32+
return pods_ary
33+
end
34+
35+
target 'Runner' do
36+
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
37+
# referring to absolute paths on developers' machines.
38+
system('rm -rf .symlinks')
39+
system('mkdir -p .symlinks/plugins')
40+
41+
# Flutter Pods
42+
generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig')
43+
if generated_xcode_build_settings.empty?
44+
puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
45+
end
46+
generated_xcode_build_settings.map { |p|
47+
if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
48+
symlink = File.join('.symlinks', 'flutter')
49+
File.symlink(File.dirname(p[:path]), symlink)
50+
pod 'Flutter', :path => File.join(symlink, File.basename(p[:path]))
51+
end
52+
}
53+
54+
# Plugin Pods
55+
plugin_pods = parse_KV_file('../.flutter-plugins')
56+
plugin_pods.map { |p|
57+
symlink = File.join('.symlinks', 'plugins', p[:name])
58+
File.symlink(p[:path], symlink)
59+
pod p[:name], :path => File.join(symlink, 'ios')
60+
}
61+
end
62+
63+
post_install do |installer|
64+
installer.pods_project.targets.each do |target|
65+
target.build_configurations.each do |config|
66+
config.build_settings['ENABLE_BITCODE'] = 'NO'
67+
end
68+
end
69+
end

ios/Podfile.lock

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
PODS:
2+
- Flutter (1.0.0)
3+
- image_picker (0.0.1):
4+
- Flutter
5+
6+
DEPENDENCIES:
7+
- Flutter (from `.symlinks/flutter/ios`)
8+
- image_picker (from `.symlinks/plugins/image_picker/ios`)
9+
10+
EXTERNAL SOURCES:
11+
Flutter:
12+
:path: ".symlinks/flutter/ios"
13+
image_picker:
14+
:path: ".symlinks/plugins/image_picker/ios"
15+
16+
SPEC CHECKSUMS:
17+
Flutter: 58dd7d1b27887414a370fcccb9e645c08ffd7a6a
18+
image_picker: 16e5fec1fbc87fd3b297c53e4048521eaf17cd06
19+
20+
PODFILE CHECKSUM: aff02bfeed411c636180d6812254b2daeea14d09
21+
22+
COCOAPODS: 1.6.0

ios/Runner.xcodeproj/project.pbxproj

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
002DF601907DC46785A996B9 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D80E00F94D05E30871C017D1 /* libPods-Runner.a */; };
1011
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
1112
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
1213
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
@@ -41,9 +42,11 @@
4142
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
4243
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
4344
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
45+
5B2C7C563BC1FA27FAD2C7BA /* 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>"; };
4446
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
4547
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
4648
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
49+
8B0B68D9DA383C1FCAFCDB93 /* 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>"; };
4750
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
4851
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
4952
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
@@ -53,6 +56,8 @@
5356
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
5457
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
5558
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
59+
9A43B92A86282AE0DFE76390 /* 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>"; };
60+
D80E00F94D05E30871C017D1 /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
5661
/* End PBXFileReference section */
5762

5863
/* Begin PBXFrameworksBuildPhase section */
@@ -62,12 +67,21 @@
6267
files = (
6368
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
6469
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
70+
002DF601907DC46785A996B9 /* libPods-Runner.a in Frameworks */,
6571
);
6672
runOnlyForDeploymentPostprocessing = 0;
6773
};
6874
/* End PBXFrameworksBuildPhase section */
6975

7076
/* Begin PBXGroup section */
77+
1C75DB097A334F05A7B904B6 /* Frameworks */ = {
78+
isa = PBXGroup;
79+
children = (
80+
D80E00F94D05E30871C017D1 /* libPods-Runner.a */,
81+
);
82+
name = Frameworks;
83+
sourceTree = "<group>";
84+
};
7185
9740EEB11CF90186004384FC /* Flutter */ = {
7286
isa = PBXGroup;
7387
children = (
@@ -87,7 +101,8 @@
87101
9740EEB11CF90186004384FC /* Flutter */,
88102
97C146F01CF9000F007C117D /* Runner */,
89103
97C146EF1CF9000F007C117D /* Products */,
90-
CF3B75C9A7D2FA2A4C99F110 /* Frameworks */,
104+
A36F14260A34B08F51D674BB /* Pods */,
105+
1C75DB097A334F05A7B904B6 /* Frameworks */,
91106
);
92107
sourceTree = "<group>";
93108
};
@@ -123,19 +138,32 @@
123138
name = "Supporting Files";
124139
sourceTree = "<group>";
125140
};
141+
A36F14260A34B08F51D674BB /* Pods */ = {
142+
isa = PBXGroup;
143+
children = (
144+
8B0B68D9DA383C1FCAFCDB93 /* Pods-Runner.debug.xcconfig */,
145+
5B2C7C563BC1FA27FAD2C7BA /* Pods-Runner.release.xcconfig */,
146+
9A43B92A86282AE0DFE76390 /* Pods-Runner.profile.xcconfig */,
147+
);
148+
name = Pods;
149+
path = Pods;
150+
sourceTree = "<group>";
151+
};
126152
/* End PBXGroup section */
127153

128154
/* Begin PBXNativeTarget section */
129155
97C146ED1CF9000F007C117D /* Runner */ = {
130156
isa = PBXNativeTarget;
131157
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
132158
buildPhases = (
159+
84C62925D2F4A97CBFD49D6F /* [CP] Check Pods Manifest.lock */,
133160
9740EEB61CF901F6004384FC /* Run Script */,
134161
97C146EA1CF9000F007C117D /* Sources */,
135162
97C146EB1CF9000F007C117D /* Frameworks */,
136163
97C146EC1CF9000F007C117D /* Resources */,
137164
9705A1C41CF9048500538489 /* Embed Frameworks */,
138165
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
166+
5E3B87EC8EDA4FD5A0A2D3DD /* [CP] Embed Pods Frameworks */,
139167
);
140168
buildRules = (
141169
);
@@ -208,6 +236,50 @@
208236
shellPath = /bin/sh;
209237
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
210238
};
239+
5E3B87EC8EDA4FD5A0A2D3DD /* [CP] Embed Pods Frameworks */ = {
240+
isa = PBXShellScriptBuildPhase;
241+
buildActionMask = 2147483647;
242+
files = (
243+
);
244+
inputFileListPaths = (
245+
);
246+
inputPaths = (
247+
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
248+
"${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework",
249+
);
250+
name = "[CP] Embed Pods Frameworks";
251+
outputFileListPaths = (
252+
);
253+
outputPaths = (
254+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
255+
);
256+
runOnlyForDeploymentPostprocessing = 0;
257+
shellPath = /bin/sh;
258+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
259+
showEnvVarsInLog = 0;
260+
};
261+
84C62925D2F4A97CBFD49D6F /* [CP] Check Pods Manifest.lock */ = {
262+
isa = PBXShellScriptBuildPhase;
263+
buildActionMask = 2147483647;
264+
files = (
265+
);
266+
inputFileListPaths = (
267+
);
268+
inputPaths = (
269+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
270+
"${PODS_ROOT}/Manifest.lock",
271+
);
272+
name = "[CP] Check Pods Manifest.lock";
273+
outputFileListPaths = (
274+
);
275+
outputPaths = (
276+
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
277+
);
278+
runOnlyForDeploymentPostprocessing = 0;
279+
shellPath = /bin/sh;
280+
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";
281+
showEnvVarsInLog = 0;
282+
};
211283
9740EEB61CF901F6004384FC /* Run Script */ = {
212284
isa = PBXShellScriptBuildPhase;
213285
buildActionMask = 2147483647;

ios/Runner.xcworkspace/contents.xcworkspacedata

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ios/Runner/Info.plist

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
5+
6+
<key>NSPhotoLibraryUsageDescription</key>
7+
<string>Necesito acceso al carrete</string>
8+
9+
<key>NSCameraUsageDescription</key>
10+
<string>Necesito acceso a la cámara</string>
11+
12+
<key>NSMicrophoneUsageDescription</key>
13+
<string>Quiero escucharte</string>
14+
15+
516
<key>CFBundleDevelopmentRegion</key>
617
<string>en</string>
718
<key>CFBundleExecutable</key>

0 commit comments

Comments
 (0)