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
628e8ec0
Unverified
Commit
628e8ec0
authored
Oct 25, 2018
by
Dan Field
Committed by
GitHub
Oct 25, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Xcode backend refactor (#23387)" (#23528)
This reverts commit
def1d805
.
parent
def1d805
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
39 additions
and
585 deletions
+39
-585
xcode_backend.sh
packages/flutter_tools/bin/xcode_backend.sh
+20
-53
mac.dart
packages/flutter_tools/lib/src/ios/mac.dart
+0
-29
xcodeproj.dart
packages/flutter_tools/lib/src/ios/xcodeproj.dart
+11
-18
project.pbxproj.tmpl
...s/app/ios-objc.tmpl/Runner.xcodeproj/project.pbxproj.tmpl
+0
-74
Runner.xcscheme
...l/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+0
-93
project.pbxproj.tmpl
.../app/ios-swift.tmpl/Runner.xcodeproj/project.pbxproj.tmpl
+0
-75
Runner.xcscheme
...l/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+0
-93
Runner.xcscheme
...l/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+1
-1
project.pbxproj.tmpl
..._app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl
+0
-75
create_test.dart
packages/flutter_tools/test/commands/create_test.dart
+1
-0
xcode_backend_test.dart
packages/flutter_tools/test/ios/xcode_backend_test.dart
+0
-68
xcodeproj_test.dart
packages/flutter_tools/test/ios/xcodeproj_test.dart
+6
-6
No files found.
packages/flutter_tools/bin/xcode_backend.sh
View file @
628e8ec0
...
...
@@ -46,35 +46,12 @@ BuildApp() {
target_path
=
"
${
FLUTTER_TARGET
}
"
fi
# Use FLUTTER_BUILD_MODE if it's set, otherwise use the Xcode build configuration name
# This means that if someone wants to use an Xcode build config other than Debug/Profile/Release,
# they _must_ set FLUTTER_BUILD_MODE so we know what type of artifact to build.
local
build_mode
=
"
$(
echo
"
${
FLUTTER_BUILD_MODE
:-${
CONFIGURATION
}}
"
|
tr
"[:upper:]"
"[:lower:]"
)
"
local
artifact_variant
=
"unknown"
case
"
$build_mode
"
in
release
)
artifact_variant
=
"ios-release"
;;
profile
)
artifact_variant
=
"ios-profile"
;;
debug
)
artifact_variant
=
"ios"
;;
*
)
EchoError
"========================================================================"
EchoError
"ERROR: Unknown FLUTTER_BUILD_MODE:
${
build_mode
}
."
EchoError
"Valid values are 'Debug', 'Profile', or 'Release' (case insensitive)."
EchoError
"This is controlled by the FLUTTER_BUILD_MODE environment varaible."
EchoError
"If that is not set, the CONFIGURATION environment variable is used."
EchoError
""
EchoError
"You can fix this by either adding an appropriately named build"
EchoError
"configuration, or adding an appriate value for FLUTTER_BUILD_MODE to the"
EchoError
".xcconfig file for the current build configuration (
${
CONFIGURATION
}
)."
EchoError
"========================================================================"
exit
-1
;;
esac
# Archive builds (ACTION=install) should always run in release mode.
if
[[
"
$ACTION
"
==
"install"
&&
"
$
build_mode
"
!=
"release"
]]
;
then
if
[[
"
$ACTION
"
==
"install"
&&
"
$
FLUTTER_BUILD_MODE
"
!=
"release"
]]
;
then
EchoError
"========================================================================"
EchoError
"ERROR: Flutter archive builds must be run in Release mode."
EchoError
""
EchoError
"To correct,
ensure FLUTTER_BUILD_MODE is set to release or
run:"
EchoError
"To correct, run:"
EchoError
"flutter build ios --release"
EchoError
""
EchoError
"then re-run Archive from Xcode."
...
...
@@ -82,9 +59,24 @@ BuildApp() {
exit
-1
fi
local
build_mode
=
"release"
if
[[
-n
"
$FLUTTER_BUILD_MODE
"
]]
;
then
build_mode
=
"
${
FLUTTER_BUILD_MODE
}
"
fi
local
artifact_variant
=
"unknown"
case
"
$build_mode
"
in
release
)
artifact_variant
=
"ios-release"
;;
profile
)
artifact_variant
=
"ios-profile"
;;
debug
)
artifact_variant
=
"ios"
;;
*
)
echo
"Unknown FLUTTER_BUILD_MODE:
$FLUTTER_BUILD_MODE
"
;;
esac
local
framework_path
=
"
${
FLUTTER_ROOT
}
/bin/cache/artifacts/engine/
${
artifact_variant
}
"
AssertExists
"
${
framework_path
}
"
if
[[
-n
"
$FLUTTER_FRAMEWORK_DIR
"
]]
;
then
framework_path
=
"
${
FLUTTER_FRAMEWORK_DIR
}
"
fi
AssertExists
"
${
project_path
}
"
local
derived_dir
=
"
${
SOURCE_ROOT
}
/Flutter"
...
...
@@ -99,20 +91,7 @@ BuildApp() {
local
local_engine_flag
=
""
local
flutter_framework
=
"
${
framework_path
}
/Flutter.framework"
local
flutter_podspec
=
"
${
framework_path
}
/Flutter.podspec"
if
[[
-n
"
$LOCAL_ENGINE
"
]]
;
then
if
[[
$(
echo
"
$LOCAL_ENGINE
"
|
tr
"[:upper:]"
"[:lower:]"
)
!=
*
"
$build_mode
"
*
]]
;
then
EchoError
"========================================================================"
EchoError
"ERROR: Requested build with Flutter local engine at '
${
LOCAL_ENGINE
}
'"
EchoError
"This engine is not compatible with FLUTTER_BUILD_MODE: '
${
build_mode
}
'."
EchoError
"You can fix this by updating the LOCAL_ENGINE environment variable, or"
EchoError
"by running:"
EchoError
" flutter build ios --local-engine=ios_
${
build_mode
}
"
EchoError
"or"
EchoError
" flutter build ios --local-engine=ios_
${
build_mode
}
_unopt"
EchoError
"========================================================================"
exit
-1
fi
local_engine_flag
=
"--local-engine=
${
LOCAL_ENGINE
}
"
flutter_framework
=
"
${
LOCAL_ENGINE
}
/Flutter.framework"
flutter_podspec
=
"
${
LOCAL_ENGINE
}
/Flutter.podspec"
...
...
@@ -150,16 +129,6 @@ BuildApp() {
StreamOutput
" ├─Building Dart code..."
# Transform ARCHS to comma-separated list of target architectures.
local
archs
=
"
${
ARCHS
// /,
}
"
if
[[
$archs
=
~ .
*
i386.
*
||
$archs
=
~ .
*
x86_64.
*
]]
;
then
EchoError
"========================================================================"
EchoError
"ERROR: Flutter does not support running in profile or release mode on"
EchoError
"the Simulator (this build was: '
$build_mode
')."
EchoError
"You can ensure Flutter runs in Debug mode with your host app in release"
EchoError
"mode by setting FLUTTER_BUILD_MODE=debug in the .xcconfig associated"
EchoError
"with the
${
CONFIGURATION
}
build configuration."
EchoError
"========================================================================"
exit
-1
fi
RunCommand
"
${
FLUTTER_ROOT
}
/bin/flutter"
--suppress-analytics
\
${
verbose_flag
}
\
build aot
\
...
...
@@ -340,10 +309,8 @@ EmbedFlutterFrameworks() {
# Prefer the hidden .ios folder, but fallback to a visible ios folder if .ios
# doesn't exist.
local
flutter_ios_out_folder
=
"
${
FLUTTER_APPLICATION_PATH
}
/.ios/Flutter"
local
flutter_ios_engine_folder
=
"
${
FLUTTER_APPLICATION_PATH
}
/.ios/Flutter/engine"
if
[[
!
-d
${
flutter_ios_out_folder
}
]]
;
then
flutter_ios_out_folder
=
"
${
FLUTTER_APPLICATION_PATH
}
/ios/Flutter"
flutter_ios_engine_folder
=
"
${
FLUTTER_APPLICATION_PATH
}
/ios/Flutter"
fi
AssertExists
"
${
flutter_ios_out_folder
}
"
...
...
@@ -363,7 +330,7 @@ EmbedFlutterFrameworks() {
# Remove it first since Xcode might be trying to hold some of these files - this way we're
# sure to get a clean copy.
RunCommand
rm
-rf
--
"
${
xcode_frameworks_dir
}
/Flutter.framework"
RunCommand
cp
-Rv
--
"
${
flutter_ios_
engine_folder
}
/Flutter.framework"
"
${
xcode_frameworks_dir
}
/"
RunCommand
cp
-Rv
--
"
${
flutter_ios_
out_folder
}
/engine
/Flutter.framework"
"
${
xcode_frameworks_dir
}
/"
# Sign the binaries we moved.
local
identity
=
"
${
EXPANDED_CODE_SIGN_IDENTITY_NAME
:-
$CODE_SIGN_IDENTITY
}
"
...
...
packages/flutter_tools/lib/src/ios/mac.dart
View file @
628e8ec0
...
...
@@ -298,35 +298,6 @@ Future<XcodeBuildResult> buildXcodeProject({
printError
(
' open ios/Runner.xcworkspace'
);
return
XcodeBuildResult
(
success:
false
);
}
if
(!
projectInfo
.
hasBuildConfiguratinForBuildMode
(
buildInfo
.
modeName
))
{
// This error will occur with previous versions of the generated Xcode project, where a "Profile"
// build configuration did not exist. It may also occur if a user manually removes or renames
// configurations from Runner.xcodeproj.
printError
(
'The Xcode project does not define a build configuration "
${buildInfo.modeName}
",'
);
printError
(
'which is needed by Flutter tooling to run "--
${buildInfo.modeName}
" from the command line.'
);
printError
(
''
);
printError
(
'Open Xcode to fix the problem:'
);
printError
(
' open ios/Runner.xcodeproj'
);
printError
(
''
);
printError
(
'1. Click on "Runner" in the project navigator.'
);
printError
(
'2. Ensure the Runner PROJECT is selected, not the Runner TARGET.'
);
if
(
buildInfo
.
isDebug
)
{
printError
(
'3. Click the Editor->Add Configuration->Duplicate "Debug" Configuration.'
);
}
else
{
printError
(
'3. Click the Editor->Add Configuration->Duplicate "Release" Configuration.'
);
}
printError
(
''
);
printError
(
' If this option is disabled, it is likely you have the target selected instead'
);
printError
(
' of the project; see:'
);
printError
(
' https://stackoverflow.com/questions/19842746/adding-a-build-configuration-in-xcode'
);
printError
(
''
);
printError
(
' If you have created a completely custom set of build configurations,'
);
printError
(
' you can set the FLUTTER_BUILD_MODE=
${buildInfo.modeName.toLowerCase()}
'
);
printError
(
' in the .xcconfig file for that configuration and run from Xcode.'
);
printError
(
''
);
printError
(
'4. If you are not using completely custom build configurations, name the newly created configuration
${buildInfo.modeName}
.'
);
return
XcodeBuildResult
(
success:
false
);
}
final
String
scheme
=
projectInfo
.
schemeFor
(
buildInfo
);
if
(
scheme
==
null
)
{
printError
(
''
);
...
...
packages/flutter_tools/lib/src/ios/xcodeproj.dart
View file @
628e8ec0
...
...
@@ -49,11 +49,21 @@ Future<void> updateGeneratedXcodeProperties({
if
(
targetOverride
!=
null
)
localsBuffer
.
writeln
(
'FLUTTER_TARGET=
$targetOverride
'
);
// The runtime mode for the current build.
localsBuffer
.
writeln
(
'FLUTTER_BUILD_MODE=
${buildInfo.modeName}
'
);
// The build outputs directory, relative to FLUTTER_APPLICATION_PATH.
localsBuffer
.
writeln
(
'FLUTTER_BUILD_DIR=
${getBuildDirectory()}
'
);
localsBuffer
.
writeln
(
'SYMROOT=
\
${SOURCE_ROOT}
/../
${getIosBuildDirectory()}
'
);
if
(!
project
.
isModule
)
{
// For module projects we do not want to write the FLUTTER_FRAMEWORK_DIR
// explicitly. Rather we rely on the xcode backend script and the Podfile
// logic to derive it from FLUTTER_ROOT and FLUTTER_BUILD_MODE.
localsBuffer
.
writeln
(
'FLUTTER_FRAMEWORK_DIR=
${flutterFrameworkDir(buildInfo.mode)}
'
);
}
final
String
buildName
=
buildInfo
?.
buildName
??
project
.
manifest
.
buildName
;
if
(
buildName
!=
null
)
{
localsBuffer
.
writeln
(
'FLUTTER_BUILD_NAME=
$buildName
'
);
...
...
@@ -237,17 +247,6 @@ class XcodeProjectInfo {
return
baseConfiguration
+
'-
$scheme
'
;
}
/// Checks whether the [buildConfigurations] contains the specified string, without
/// regard to case.
bool
hasBuildConfiguratinForBuildMode
(
String
buildMode
)
{
buildMode
=
buildMode
.
toLowerCase
();
for
(
String
name
in
buildConfigurations
)
{
if
(
name
.
toLowerCase
()
==
buildMode
)
{
return
true
;
}
}
return
false
;
}
/// Returns unique scheme matching [buildInfo], or null, if there is no unique
/// best match.
String
schemeFor
(
BuildInfo
buildInfo
)
{
...
...
@@ -275,13 +274,7 @@ class XcodeProjectInfo {
});
}
static
String
_baseConfigurationFor
(
BuildInfo
buildInfo
)
{
if
(
buildInfo
.
isDebug
)
return
'Debug'
;
if
(
buildInfo
.
isProfile
)
return
'Profile'
;
return
'Release'
;
}
static
String
_baseConfigurationFor
(
BuildInfo
buildInfo
)
=>
buildInfo
.
isDebug
?
'Debug'
:
'Release'
;
static
String
_uniqueMatch
(
Iterable
<
String
>
strings
,
bool
matches
(
String
s
))
{
final
List
<
String
>
options
=
strings
.
where
(
matches
).
toList
();
...
...
packages/flutter_tools/templates/app/ios-objc.tmpl/Runner.xcodeproj/project.pbxproj.tmpl
View file @
628e8ec0
...
...
@@ -261,78 +261,6 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = S8QB4VV633;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
...
...
@@ -489,7 +417,6 @@
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
...
...
@@ -499,7 +426,6 @@
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
...
...
packages/flutter_tools/templates/app/ios-objc.tmpl/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted
100644 → 0
View file @
def1d805
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"0910"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
language =
""
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
language =
""
launchStyle =
"0"
useCustomWorkingDirectory =
"NO"
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
allowLocationSimulation =
"YES"
>
<BuildableProductRunnable
runnableDebuggingMode =
"0"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Profile"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
<BuildableProductRunnable
runnableDebuggingMode =
"0"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
</AnalyzeAction>
<ArchiveAction
buildConfiguration =
"Release"
revealArchiveInOrganizer =
"YES"
>
</ArchiveAction>
</Scheme>
packages/flutter_tools/templates/app/ios-swift.tmpl/Runner.xcodeproj/project.pbxproj.tmpl
View file @
628e8ec0
...
...
@@ -257,78 +257,6 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = S8QB4VV633;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
...
...
@@ -495,7 +423,6 @@
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
...
...
@@ -505,13 +432,11 @@
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}
packages/flutter_tools/templates/app/ios-swift.tmpl/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
deleted
100644 → 0
View file @
def1d805
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"0910"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
language =
""
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
language =
""
launchStyle =
"0"
useCustomWorkingDirectory =
"NO"
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
allowLocationSimulation =
"YES"
>
<BuildableProductRunnable
runnableDebuggingMode =
"0"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Profile"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
<BuildableProductRunnable
runnableDebuggingMode =
"0"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"97C146ED1CF9000F007C117D"
BuildableName =
"Runner.app"
BlueprintName =
"Runner"
ReferencedContainer =
"container:Runner.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
</AnalyzeAction>
<ArchiveAction
buildConfiguration =
"Release"
revealArchiveInOrganizer =
"YES"
>
</ArchiveAction>
</Scheme>
packages/flutter_tools/templates/app/ios.tmpl/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
View file @
628e8ec0
...
...
@@ -67,7 +67,7 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"
Profil
e"
buildConfiguration =
"
Releas
e"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
...
...
packages/flutter_tools/templates/module/ios/host_app_ephemeral/Runner.xcodeproj.tmpl/project.pbxproj.tmpl
View file @
628e8ec0
...
...
@@ -260,78 +260,6 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = S8QB4VV633;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = {{iosIdentifier}};
PRODUCT_NAME = "$(TARGET_NAME)";
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
...
...
@@ -488,7 +416,6 @@
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
...
...
@@ -498,13 +425,11 @@
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}
packages/flutter_tools/test/commands/create_test.dart
View file @
628e8ec0
...
...
@@ -479,6 +479,7 @@ void main() {
final
String
xcodeConfig
=
xcodeConfigFile
.
readAsStringSync
();
expect
(
xcodeConfig
,
contains
(
'FLUTTER_ROOT='
));
expect
(
xcodeConfig
,
contains
(
'FLUTTER_APPLICATION_PATH='
));
expect
(
xcodeConfig
,
contains
(
'FLUTTER_FRAMEWORK_DIR='
));
// App identification
final
String
xcodeProjectPath
=
fs
.
path
.
join
(
'ios'
,
'Runner.xcodeproj'
,
'project.pbxproj'
);
expectExists
(
xcodeProjectPath
);
...
...
packages/flutter_tools/test/ios/xcode_backend_test.dart
deleted
100644 → 0
View file @
def1d805
// Copyright 2018 The Flutter 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
'package:flutter_tools/src/base/io.dart'
;
import
'package:flutter_tools/src/base/platform.dart'
;
import
'../src/common.dart'
;
const
String
xcodeBackendPath
=
'bin/xcode_backend.sh'
;
const
String
xcodeBackendErrorHeader
=
'========================================================================'
;
// Acceptable $CONFIGURATION/$FLUTTER_BUILD_MODE values should be debug, profile, or release
const
Map
<
String
,
String
>
unknownConfiguration
=
<
String
,
String
>{
'CONFIGURATION'
:
'Custom'
,
};
// $FLUTTER_BUILD_MODE will override $CONFIGURATION
const
Map
<
String
,
String
>
unknownFlutterBuildMode
=
<
String
,
String
>{
'FLUTTER_BUILD_MODE'
:
'Custom'
,
'CONFIGURATION'
:
'Debug'
,
};
// Can't archive a non-release build.
const
Map
<
String
,
String
>
installWithoutRelease
=
<
String
,
String
>{
'CONFIGURATION'
:
'Debug'
,
'ACTION'
:
'install'
,
};
// Can't use a debug engine build with a release build.
const
Map
<
String
,
String
>
localEngineDebugBuildModeRelease
=
<
String
,
String
>{
'SOURCE_ROOT'
:
'../../examples/hello_world'
,
'FLUTTER_ROOT'
:
'../..'
,
'LOCAL_ENGINE'
:
'/engine/src/out/ios_debug_unopt'
,
'CONFIGURATION'
:
'Release'
};
// Can't use a debug build with a profile engine.
const
Map
<
String
,
String
>
localEngineProfileBuildeModeRelease
=
<
String
,
String
>{
'SOURCE_ROOT'
:
'../../examples/hello_world'
,
'FLUTTER_ROOT'
:
'../..'
,
'LOCAL_ENGINE'
:
'/engine/src/out/ios_profile'
,
'CONFIGURATION'
:
'Debug'
,
'FLUTTER_BUILD_MODE'
:
'Debug'
,
};
void
main
(
)
{
Future
<
void
>
expectXcodeBackendFails
(
Map
<
String
,
String
>
environment
)
async
{
final
ProcessResult
result
=
await
Process
.
run
(
xcodeBackendPath
,
<
String
>[
'build'
],
environment:
environment
,
);
expect
(
result
.
stderr
,
startsWith
(
xcodeBackendErrorHeader
));
expect
(
result
.
exitCode
,
isNot
(
0
));
}
test
(
'Xcode backend fails for on unsupported configuration combinations'
,
()
async
{
await
expectXcodeBackendFails
(
unknownConfiguration
);
await
expectXcodeBackendFails
(
unknownFlutterBuildMode
);
await
expectXcodeBackendFails
(
installWithoutRelease
);
await
expectXcodeBackendFails
(
localEngineDebugBuildModeRelease
);
await
expectXcodeBackendFails
(
localEngineProfileBuildeModeRelease
);
},
skip:
!
platform
.
isMacOS
);
}
packages/flutter_tools/test/ios/xcodeproj_test.dart
View file @
628e8ec0
...
...
@@ -197,7 +197,7 @@ Information about project "Runner":
});
test
(
'expected build configuration for non-flavored build is derived from BuildMode'
,
()
{
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
BuildInfo
.
debug
,
'Runner'
),
'Debug'
);
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
BuildInfo
.
profile
,
'Runner'
),
'
Profil
e'
);
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
BuildInfo
.
profile
,
'Runner'
),
'
Releas
e'
);
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
BuildInfo
.
release
,
'Runner'
),
'Release'
);
});
test
(
'expected scheme for flavored build is the title-cased flavor'
,
()
{
...
...
@@ -207,7 +207,7 @@ Information about project "Runner":
});
test
(
'expected build configuration for flavored build is Mode-Flavor'
,
()
{
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
debug
,
'hello'
),
'Hello'
),
'Debug-Hello'
);
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
profile
,
'HELLO'
),
'Hello'
),
'
Profil
e-Hello'
);
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
profile
,
'HELLO'
),
'Hello'
),
'
Releas
e-Hello'
);
expect
(
XcodeProjectInfo
.
expectedBuildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
release
,
'Hello'
),
'Hello'
),
'Release-Hello'
);
});
test
(
'scheme for default project is Runner'
,
()
{
...
...
@@ -218,9 +218,9 @@ Information about project "Runner":
expect
(
info
.
schemeFor
(
const
BuildInfo
(
BuildMode
.
debug
,
'unknown'
)),
isNull
);
});
test
(
'build configuration for default project is matched against BuildMode'
,
()
{
final
XcodeProjectInfo
info
=
XcodeProjectInfo
(<
String
>[
'Runner'
],
<
String
>[
'Debug'
,
'
Profile'
,
'
Release'
],
<
String
>[
'Runner'
]);
final
XcodeProjectInfo
info
=
XcodeProjectInfo
(<
String
>[
'Runner'
],
<
String
>[
'Debug'
,
'Release'
],
<
String
>[
'Runner'
]);
expect
(
info
.
buildConfigurationFor
(
BuildInfo
.
debug
,
'Runner'
),
'Debug'
);
expect
(
info
.
buildConfigurationFor
(
BuildInfo
.
profile
,
'Runner'
),
'
Profil
e'
);
expect
(
info
.
buildConfigurationFor
(
BuildInfo
.
profile
,
'Runner'
),
'
Releas
e'
);
expect
(
info
.
buildConfigurationFor
(
BuildInfo
.
release
,
'Runner'
),
'Release'
);
});
test
(
'scheme for project with custom schemes is matched against flavor'
,
()
{
...
...
@@ -238,12 +238,12 @@ Information about project "Runner":
test
(
'build configuration for project with custom schemes is matched against BuildMode and flavor'
,
()
{
final
XcodeProjectInfo
info
=
XcodeProjectInfo
(
<
String
>[
'Runner'
],
<
String
>[
'debug (free)'
,
'Debug paid'
,
'
profile - Free'
,
'Profile-Paid'
,
'
release - Free'
,
'Release-Paid'
],
<
String
>[
'debug (free)'
,
'Debug paid'
,
'release - Free'
,
'Release-Paid'
],
<
String
>[
'Free'
,
'Paid'
],
);
expect
(
info
.
buildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
debug
,
'free'
),
'Free'
),
'debug (free)'
);
expect
(
info
.
buildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
debug
,
'Paid'
),
'Paid'
),
'Debug paid'
);
expect
(
info
.
buildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
profile
,
'FREE'
),
'Free'
),
'
profil
e - Free'
);
expect
(
info
.
buildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
profile
,
'FREE'
),
'Free'
),
'
releas
e - Free'
);
expect
(
info
.
buildConfigurationFor
(
const
BuildInfo
(
BuildMode
.
release
,
'paid'
),
'Paid'
),
'Release-Paid'
);
});
test
(
'build configuration for project with inconsistent naming is null'
,
()
{
...
...
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