Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
8cbeb2e9
Commit
8cbeb2e9
authored
Mar 25, 2016
by
Chinmay Garde
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2916 from chinmaygarde/master
Add: flutter build ios [--[no-]simulator]
parents
9802ee18
66e10061
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
2 deletions
+90
-2
build.dart
packages/flutter_tools/lib/src/commands/build.dart
+2
-0
build_ios.dart
packages/flutter_tools/lib/src/commands/build_ios.dart
+71
-0
mac.dart
packages/flutter_tools/lib/src/ios/mac.dart
+17
-2
No files found.
packages/flutter_tools/lib/src/commands/build.dart
View file @
8cbeb2e9
...
...
@@ -8,12 +8,14 @@ import 'dart:io';
import
'../globals.dart'
;
import
'../runner/flutter_command.dart'
;
import
'build_apk.dart'
;
import
'build_ios.dart'
;
import
'build_flx.dart'
;
class
BuildCommand
extends
FlutterCommand
{
BuildCommand
()
{
addSubcommand
(
new
BuildApkCommand
());
addSubcommand
(
new
BuildCleanCommand
());
addSubcommand
(
new
BuildIOSCommand
());
addSubcommand
(
new
BuildFlxCommand
());
}
...
...
packages/flutter_tools/lib/src/commands/build_ios.dart
0 → 100644
View file @
8cbeb2e9
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'dart:io'
;
import
'../application_package.dart'
;
import
'../build_configuration.dart'
;
import
'../globals.dart'
;
import
'../ios/mac.dart'
;
import
'../runner/flutter_command.dart'
;
import
'package:path/path.dart'
as
path
;
class
BuildIOSCommand
extends
FlutterCommand
{
BuildIOSCommand
()
{
argParser
.
addFlag
(
'simulator'
,
help:
'Build for the iOS simulator instead of the device'
);
}
@override
final
String
name
=
'ios'
;
@override
final
String
description
=
'Build an iOS application bundle (Mac OSX host only).'
;
@override
Future
<
int
>
runInProject
()
async
{
if
(
getCurrentHostPlatform
()
!=
HostPlatform
.
mac
)
{
printError
(
'Building for iOS is only supported on the Mac.'
);
return
1
;
}
printTrace
(
'Ensuring toolchains are up to date.'
);
await
Future
.
wait
([
downloadToolchain
(),
downloadApplicationPackages
(),
],
eagerError:
true
);
IOSApp
app
=
applicationPackages
.
iOS
;
if
(
app
==
null
)
{
printError
(
'Application not configured for iOS'
);
return
1
;
}
bool
forSimulator
=
argResults
[
'simulator'
];
String
logTarget
=
forSimulator
?
"simulator"
:
"device"
;
printStatus
(
'Building the application for
$logTarget
.'
);
Directory
buildDir
=
new
Directory
(
path
.
join
(
'build'
,
'ios_
$logTarget
'
));
if
(!
buildDir
.
existsSync
())
await
buildDir
.
create
();
bool
result
=
await
buildIOSXcodeProject
(
app
,
buildForDevice:
!
forSimulator
,
buildDirectory:
buildDir
);
if
(!
result
)
{
printError
(
'Encountered error while building for
$logTarget
.'
);
return
1
;
}
printStatus
(
'Built in
${buildDir.path}
.'
);
return
0
;
}
}
packages/flutter_tools/lib/src/ios/mac.dart
View file @
8cbeb2e9
...
...
@@ -89,7 +89,8 @@ bool _xcodeVersionCheckValid(int major, int minor) {
return
false
;
}
Future
<
bool
>
buildIOSXcodeProject
(
ApplicationPackage
app
,
{
bool
buildForDevice
})
async
{
Future
<
bool
>
buildIOSXcodeProject
(
ApplicationPackage
app
,
{
bool
buildForDevice
,
Directory
buildDirectory
})
async
{
String
flutterProjectPath
=
Directory
.
current
.
path
;
if
(
xcodeProjectRequiresUpdate
())
{
...
...
@@ -114,9 +115,23 @@ Future<bool> buildIOSXcodeProject(ApplicationPackage app, { bool buildForDevice
await
_addServicesToBundle
(
new
Directory
(
app
.
localPath
));
List
<
String
>
commands
=
<
String
>[
'/usr/bin/env'
,
'xcrun'
,
'xcodebuild'
,
'-target'
,
'Runner'
,
'-configuration'
,
'Release'
'/usr/bin/env'
,
'xcrun'
,
'xcodebuild'
,
'-target'
,
'Runner'
,
'-configuration'
,
'Release'
,
'ONLY_ACTIVE_ARCH=YES'
,
];
if
(
buildDirectory
!=
null
)
{
if
(!
buildDirectory
.
existsSync
())
{
printError
(
'The specified build directory
${buildDirectory.path}
does not exist'
);
return
false
;
}
commands
.
add
(
'TARGET_BUILD_DIR=
${buildDirectory.absolute.path}
'
);
}
if
(
buildForDevice
)
{
commands
.
addAll
(<
String
>[
'-sdk'
,
'iphoneos'
,
'-arch'
,
'arm64'
]);
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment