From 9d281d69110193fb3e5932e73a107e8d1ef77110 Mon Sep 17 00:00:00 2001 From: "pengfei.zhou" Date: Thu, 5 Dec 2019 21:15:16 +0800 Subject: [PATCH] add init iOS --- scripts/init.js | 20 +- target/iOS/.gitignore | 3 + target/iOS/Example.xcodeproj/project.pbxproj | 438 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 24838 bytes .../xcschemes/xcschememanagement.plist | 14 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + target/iOS/Example/AppDelegate.h | 15 + target/iOS/Example/AppDelegate.m | 41 ++ .../AppIcon.appiconset/Contents.json | 98 ++++ .../iOS/Example/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + target/iOS/Example/Base.lproj/Main.storyboard | 24 + target/iOS/Example/Info.plist | 64 +++ target/iOS/Example/SceneDelegate.h | 16 + target/iOS/Example/SceneDelegate.m | 50 ++ target/iOS/Example/ViewController.h | 15 + target/iOS/Example/ViewController.m | 37 ++ target/iOS/Example/main.m | 19 + target/iOS/Podfile | 10 + 22 files changed, 927 insertions(+), 1 deletion(-) create mode 100644 target/iOS/.gitignore create mode 100644 target/iOS/Example.xcodeproj/project.pbxproj create mode 100644 target/iOS/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 target/iOS/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 target/iOS/Example.xcodeproj/project.xcworkspace/xcuserdata/pengfei.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 target/iOS/Example.xcodeproj/xcuserdata/pengfei.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 target/iOS/Example.xcworkspace/contents.xcworkspacedata create mode 100644 target/iOS/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 target/iOS/Example/AppDelegate.h create mode 100644 target/iOS/Example/AppDelegate.m create mode 100644 target/iOS/Example/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 target/iOS/Example/Assets.xcassets/Contents.json create mode 100644 target/iOS/Example/Base.lproj/LaunchScreen.storyboard create mode 100644 target/iOS/Example/Base.lproj/Main.storyboard create mode 100644 target/iOS/Example/Info.plist create mode 100644 target/iOS/Example/SceneDelegate.h create mode 100644 target/iOS/Example/SceneDelegate.m create mode 100644 target/iOS/Example/ViewController.h create mode 100644 target/iOS/Example/ViewController.m create mode 100644 target/iOS/Example/main.m create mode 100644 target/iOS/Podfile diff --git a/scripts/init.js b/scripts/init.js index d8099cb6..a085e83c 100644 --- a/scripts/init.js +++ b/scripts/init.js @@ -5,6 +5,7 @@ require('shelljs/global') const targetJSPath = `${__dirname}/../target/js` const targetAndroidPath = `${__dirname}/../target/android` +const targetiOSPath = `${__dirname}/../target/iOS` function copyFile(srcPath, tarPath, cb) { var rs = fs.createReadStream(srcPath) @@ -105,7 +106,23 @@ function initAndroid(path, name) { }) }) } - +function initiOS(path, name) { + if (fs.existsSync(path)) { + console.warn(`Dir:${process.cwd()}/${path} already exists`) + return; + } + console.log(`create dir ${path} success`); + fs.mkdir(path, function (err) { + if (err) { + return console.error(err); + } + copyFolder(`${targetiOSPath}`, `${path}`, () => { + const mainFiles = `Example/ViewController.m` + fs.writeFileSync(`${path}/${mainFiles}`, fs.readFileSync(`${targetiOSPath}/${mainFiles}`).toString().replace(/__\$__/g, name)) + console.log(`Create Doric Android Project Success`) + }) + }) +} module.exports = function (name) { if (fs.existsSync(name)) { console.warn(`Dir:${process.cwd()}/${name} already exists`) @@ -117,5 +134,6 @@ module.exports = function (name) { } initJS(`${process.cwd()}/${name}/js`, name) initAndroid(`${process.cwd()}/${name}/android`, name) + initiOS(`${process.cwd()}/${name}/iOS`, name) }) } \ No newline at end of file diff --git a/target/iOS/.gitignore b/target/iOS/.gitignore new file mode 100644 index 00000000..a63491b7 --- /dev/null +++ b/target/iOS/.gitignore @@ -0,0 +1,3 @@ +iOS/Example/Podfile.lock +iOS/Example/Example.xcworkspace/* +iOS/Example/Pods/* \ No newline at end of file diff --git a/target/iOS/Example.xcodeproj/project.pbxproj b/target/iOS/Example.xcodeproj/project.pbxproj new file mode 100644 index 00000000..ed7c2247 --- /dev/null +++ b/target/iOS/Example.xcodeproj/project.pbxproj @@ -0,0 +1,438 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 95EDDB7EAB47A65821DBC7EC /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB59FE64F1D814FD13C71BB2 /* Pods_Example.framework */; }; + E2F64CEF2399359C0006BD9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F64CEE2399359C0006BD9A /* AppDelegate.m */; }; + E2F64CF22399359C0006BD9A /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F64CF12399359C0006BD9A /* SceneDelegate.m */; }; + E2F64CF52399359C0006BD9A /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F64CF42399359C0006BD9A /* ViewController.m */; }; + E2F64CF82399359C0006BD9A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E2F64CF62399359C0006BD9A /* Main.storyboard */; }; + E2F64CFA2399359E0006BD9A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2F64CF92399359E0006BD9A /* Assets.xcassets */; }; + E2F64CFD2399359E0006BD9A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E2F64CFB2399359E0006BD9A /* LaunchScreen.storyboard */; }; + E2F64D002399359E0006BD9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E2F64CFF2399359E0006BD9A /* main.m */; }; + E2F64D07239936A70006BD9A /* src in Resources */ = {isa = PBXBuildFile; fileRef = E2F64D06239936A70006BD9A /* src */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 197D29BBE572343DDD72F8A6 /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.debug.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.debug.xcconfig"; sourceTree = ""; }; + 5D47A9D4EA2836D57373FDF6 /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example.release.xcconfig"; path = "Target Support Files/Pods-Example/Pods-Example.release.xcconfig"; sourceTree = ""; }; + AB59FE64F1D814FD13C71BB2 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E2F64CEA2399359C0006BD9A /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E2F64CED2399359C0006BD9A /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + E2F64CEE2399359C0006BD9A /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + E2F64CF02399359C0006BD9A /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; }; + E2F64CF12399359C0006BD9A /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; }; + E2F64CF32399359C0006BD9A /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + E2F64CF42399359C0006BD9A /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + E2F64CF72399359C0006BD9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + E2F64CF92399359E0006BD9A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + E2F64CFC2399359E0006BD9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + E2F64CFE2399359E0006BD9A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E2F64CFF2399359E0006BD9A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + E2F64D06239936A70006BD9A /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; name = src; path = ../js/bundle/src; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E2F64CE72399359C0006BD9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 95EDDB7EAB47A65821DBC7EC /* Pods_Example.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 875E7B19E6A1ABA3F802B6B5 /* Pods */ = { + isa = PBXGroup; + children = ( + 197D29BBE572343DDD72F8A6 /* Pods-Example.debug.xcconfig */, + 5D47A9D4EA2836D57373FDF6 /* Pods-Example.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + E2F64CE12399359C0006BD9A = { + isa = PBXGroup; + children = ( + E2F64D06239936A70006BD9A /* src */, + E2F64CEC2399359C0006BD9A /* Example */, + E2F64CEB2399359C0006BD9A /* Products */, + 875E7B19E6A1ABA3F802B6B5 /* Pods */, + F654B22175F1FDDC9AE817FA /* Frameworks */, + ); + sourceTree = ""; + }; + E2F64CEB2399359C0006BD9A /* Products */ = { + isa = PBXGroup; + children = ( + E2F64CEA2399359C0006BD9A /* Example.app */, + ); + name = Products; + sourceTree = ""; + }; + E2F64CEC2399359C0006BD9A /* Example */ = { + isa = PBXGroup; + children = ( + E2F64CED2399359C0006BD9A /* AppDelegate.h */, + E2F64CEE2399359C0006BD9A /* AppDelegate.m */, + E2F64CF02399359C0006BD9A /* SceneDelegate.h */, + E2F64CF12399359C0006BD9A /* SceneDelegate.m */, + E2F64CF32399359C0006BD9A /* ViewController.h */, + E2F64CF42399359C0006BD9A /* ViewController.m */, + E2F64CF62399359C0006BD9A /* Main.storyboard */, + E2F64CF92399359E0006BD9A /* Assets.xcassets */, + E2F64CFB2399359E0006BD9A /* LaunchScreen.storyboard */, + E2F64CFE2399359E0006BD9A /* Info.plist */, + E2F64CFF2399359E0006BD9A /* main.m */, + ); + path = Example; + sourceTree = ""; + }; + F654B22175F1FDDC9AE817FA /* Frameworks */ = { + isa = PBXGroup; + children = ( + AB59FE64F1D814FD13C71BB2 /* Pods_Example.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E2F64CE92399359C0006BD9A /* Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = E2F64D032399359E0006BD9A /* Build configuration list for PBXNativeTarget "Example" */; + buildPhases = ( + 8E2E7D30FF8381E7791EA41B /* [CP] Check Pods Manifest.lock */, + E2F64CE62399359C0006BD9A /* Sources */, + E2F64CE72399359C0006BD9A /* Frameworks */, + E2F64CE82399359C0006BD9A /* Resources */, + 489CC68D7F95811A10DFEC4E /* [CP] Embed Pods Frameworks */, + 825E7E0BA78A39B2E522054D /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Example; + productName = Example; + productReference = E2F64CEA2399359C0006BD9A /* Example.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E2F64CE22399359C0006BD9A /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1120; + ORGANIZATIONNAME = pengfei.zhou; + TargetAttributes = { + E2F64CE92399359C0006BD9A = { + CreatedOnToolsVersion = 11.2.1; + }; + }; + }; + buildConfigurationList = E2F64CE52399359C0006BD9A /* Build configuration list for PBXProject "Example" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = E2F64CE12399359C0006BD9A; + productRefGroup = E2F64CEB2399359C0006BD9A /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E2F64CE92399359C0006BD9A /* Example */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + E2F64CE82399359C0006BD9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E2F64D07239936A70006BD9A /* src in Resources */, + E2F64CFD2399359E0006BD9A /* LaunchScreen.storyboard in Resources */, + E2F64CFA2399359E0006BD9A /* Assets.xcassets in Resources */, + E2F64CF82399359C0006BD9A /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 489CC68D7F95811A10DFEC4E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 825E7E0BA78A39B2E522054D /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Example/Pods-Example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 8E2E7D30FF8381E7791EA41B /* [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-Example-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 */ + +/* Begin PBXSourcesBuildPhase section */ + E2F64CE62399359C0006BD9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E2F64CF52399359C0006BD9A /* ViewController.m in Sources */, + E2F64CEF2399359C0006BD9A /* AppDelegate.m in Sources */, + E2F64D002399359E0006BD9A /* main.m in Sources */, + E2F64CF22399359C0006BD9A /* SceneDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + E2F64CF62399359C0006BD9A /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + E2F64CF72399359C0006BD9A /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + E2F64CFB2399359E0006BD9A /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + E2F64CFC2399359E0006BD9A /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + E2F64D012399359E0006BD9A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + 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_IMPLICIT_RETAIN_SELF = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + 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 = 13.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + E2F64D022399359E0006BD9A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + 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_IMPLICIT_RETAIN_SELF = 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + 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 = 13.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + E2F64D042399359E0006BD9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 197D29BBE572343DDD72F8A6 /* Pods-Example.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 7EE2RX3L3P; + INFOPLIST_FILE = Example/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = pub.doric.Example; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + E2F64D052399359E0006BD9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5D47A9D4EA2836D57373FDF6 /* Pods-Example.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 7EE2RX3L3P; + INFOPLIST_FILE = Example/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = pub.doric.Example; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E2F64CE52399359C0006BD9A /* Build configuration list for PBXProject "Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E2F64D012399359E0006BD9A /* Debug */, + E2F64D022399359E0006BD9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E2F64D032399359E0006BD9A /* Build configuration list for PBXNativeTarget "Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E2F64D042399359E0006BD9A /* Debug */, + E2F64D052399359E0006BD9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E2F64CE22399359C0006BD9A /* Project object */; +} diff --git a/target/iOS/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/target/iOS/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..6d2a51bb --- /dev/null +++ b/target/iOS/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/target/iOS/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/target/iOS/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/target/iOS/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/target/iOS/Example.xcodeproj/project.xcworkspace/xcuserdata/pengfei.xcuserdatad/UserInterfaceState.xcuserstate b/target/iOS/Example.xcodeproj/project.xcworkspace/xcuserdata/pengfei.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..038bec89b0b84e91e99f68f24eae9a1494bd59b9 GIT binary patch literal 24838 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 literal 0 HcmV?d00001 diff --git a/target/iOS/Example.xcodeproj/xcuserdata/pengfei.xcuserdatad/xcschemes/xcschememanagement.plist b/target/iOS/Example.xcodeproj/xcuserdata/pengfei.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..7b7c1732 --- /dev/null +++ b/target/iOS/Example.xcodeproj/xcuserdata/pengfei.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Example.xcscheme_^#shared#^_ + + orderHint + 7 + + + + diff --git a/target/iOS/Example.xcworkspace/contents.xcworkspacedata b/target/iOS/Example.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..a37cf193 --- /dev/null +++ b/target/iOS/Example.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/target/iOS/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/target/iOS/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/target/iOS/Example.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/target/iOS/Example/AppDelegate.h b/target/iOS/Example/AppDelegate.h new file mode 100644 index 00000000..71de879b --- /dev/null +++ b/target/iOS/Example/AppDelegate.h @@ -0,0 +1,15 @@ +// +// AppDelegate.h +// Example +// +// Created by pengfei.zhou on 2019/12/5. +// Copyright © 2019 pengfei.zhou. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + + +@end + diff --git a/target/iOS/Example/AppDelegate.m b/target/iOS/Example/AppDelegate.m new file mode 100644 index 00000000..8c617bf6 --- /dev/null +++ b/target/iOS/Example/AppDelegate.m @@ -0,0 +1,41 @@ +// +// AppDelegate.m +// Example +// +// Created by pengfei.zhou on 2019/12/5. +// Copyright © 2019 pengfei.zhou. All rights reserved. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + + +#pragma mark - UISceneSession lifecycle + + +- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role]; +} + + +- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. +} + + +@end diff --git a/target/iOS/Example/Assets.xcassets/AppIcon.appiconset/Contents.json b/target/iOS/Example/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d8db8d65 --- /dev/null +++ b/target/iOS/Example/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/target/iOS/Example/Assets.xcassets/Contents.json b/target/iOS/Example/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/target/iOS/Example/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/target/iOS/Example/Base.lproj/LaunchScreen.storyboard b/target/iOS/Example/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..865e9329 --- /dev/null +++ b/target/iOS/Example/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/iOS/Example/Base.lproj/Main.storyboard b/target/iOS/Example/Base.lproj/Main.storyboard new file mode 100644 index 00000000..808a21ce --- /dev/null +++ b/target/iOS/Example/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/iOS/Example/Info.plist b/target/iOS/Example/Info.plist new file mode 100644 index 00000000..7b6037c2 --- /dev/null +++ b/target/iOS/Example/Info.plist @@ -0,0 +1,64 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + SceneDelegate + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/target/iOS/Example/SceneDelegate.h b/target/iOS/Example/SceneDelegate.h new file mode 100644 index 00000000..b6321f23 --- /dev/null +++ b/target/iOS/Example/SceneDelegate.h @@ -0,0 +1,16 @@ +// +// SceneDelegate.h +// Example +// +// Created by pengfei.zhou on 2019/12/5. +// Copyright © 2019 pengfei.zhou. All rights reserved. +// + +#import + +@interface SceneDelegate : UIResponder + +@property (strong, nonatomic) UIWindow * window; + +@end + diff --git a/target/iOS/Example/SceneDelegate.m b/target/iOS/Example/SceneDelegate.m new file mode 100644 index 00000000..d6698dd7 --- /dev/null +++ b/target/iOS/Example/SceneDelegate.m @@ -0,0 +1,50 @@ +#import "SceneDelegate.h" + +@interface SceneDelegate () + +@end + +@implementation SceneDelegate + + +- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). +} + + +- (void)sceneDidDisconnect:(UIScene *)scene { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). +} + + +- (void)sceneDidBecomeActive:(UIScene *)scene { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. +} + + +- (void)sceneWillResignActive:(UIScene *)scene { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). +} + + +- (void)sceneWillEnterForeground:(UIScene *)scene { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. +} + + +- (void)sceneDidEnterBackground:(UIScene *)scene { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. +} + + +@end diff --git a/target/iOS/Example/ViewController.h b/target/iOS/Example/ViewController.h new file mode 100644 index 00000000..131f2547 --- /dev/null +++ b/target/iOS/Example/ViewController.h @@ -0,0 +1,15 @@ +// +// ViewController.h +// Example +// +// Created by pengfei.zhou on 2019/12/5. +// Copyright © 2019 pengfei.zhou. All rights reserved. +// + +#import + +@interface ViewController : UIViewController + + +@end + diff --git a/target/iOS/Example/ViewController.m b/target/iOS/Example/ViewController.m new file mode 100644 index 00000000..87327211 --- /dev/null +++ b/target/iOS/Example/ViewController.m @@ -0,0 +1,37 @@ +// +// ViewController.m +// Example +// +// Created by pengfei.zhou on 2019/12/5. +// Copyright © 2019 pengfei.zhou. All rights reserved. +// + +#import "ViewController.h" +#import + +@interface ViewController () +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + NSString *bundleName = @"__$__"; + NSString *path = [[NSBundle mainBundle] bundlePath]; + NSString *demoPath = [path stringByAppendingPathComponent:@"src"]; + NSString *fullPath = [demoPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.js",bundleName]]; + NSString *jsContent = [NSString stringWithContentsOfFile:fullPath encoding:NSUTF8StringEncoding error:nil]; + DoricPanel *panel = [DoricPanel new]; + [panel.view also:^(UIView *it) { + it.width = self.view.width; + it.height = self.view.height - 88; + it.top = 88; + [self.view addSubview:it]; + }]; + [self addChildViewController:panel]; + [panel config:jsContent alias:bundleName]; +} + + +@end diff --git a/target/iOS/Example/main.m b/target/iOS/Example/main.m new file mode 100644 index 00000000..743b38cb --- /dev/null +++ b/target/iOS/Example/main.m @@ -0,0 +1,19 @@ +// +// main.m +// Example +// +// Created by pengfei.zhou on 2019/12/5. +// Copyright © 2019 pengfei.zhou. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + NSString * appDelegateClassName; + @autoreleasepool { + // Setup code that might create autoreleased objects goes here. + appDelegateClassName = NSStringFromClass([AppDelegate class]); + } + return UIApplicationMain(argc, argv, nil, appDelegateClassName); +} diff --git a/target/iOS/Podfile b/target/iOS/Podfile new file mode 100644 index 00000000..48b7b7ee --- /dev/null +++ b/target/iOS/Podfile @@ -0,0 +1,10 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'Example' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for Example + pod 'Doric-framework' +end