From e96f33b61e09cdf6aa4887db1db73dd2633e7d4b Mon Sep 17 00:00:00 2001 From: William Entriken Date: Thu, 24 Dec 2020 15:33:07 -0500 Subject: [PATCH] Update for Xcode Version 12.3 (12C33), fixes #47 and #46 --- README.md | 19 +- Recipe.md | 97 +++++----- .../contents.xcworkspacedata | 2 +- xxPROJECTxNAMExx/Package.swift | 6 +- .../iOS Example/Sources/AppDelegate.swift | 37 ---- .../AccentColor.colorset/Contents.json | 11 ++ .../AppIcon.appiconset/Contents.json | 78 ++++---- .../Sources/Assets.xcassets/Contents.json | 6 +- .../Base.lproj/LaunchScreen.storyboard | 25 --- .../Sources/Base.lproj/Main.storyboard | 26 --- .../iOS Example/Sources/ContentView.swift | 32 ++++ .../iOS Example/Sources/Info.plist | 24 +-- .../Preview Assets.xcassets/Contents.json | 6 + .../iOS Example/Sources/SceneDelegate.swift | 53 ------ .../iOS Example/Sources/ViewController.swift | 20 --- .../iOS Example/Sources/iOS_ExampleApp.swift | 17 ++ .../iOS Example.xcodeproj/project.pbxproj | 170 ++++++++---------- .../contents.xcworkspacedata | 2 +- 18 files changed, 262 insertions(+), 369 deletions(-) delete mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/AppDelegate.swift create mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AccentColor.colorset/Contents.json delete mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/LaunchScreen.storyboard delete mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/Main.storyboard create mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/ContentView.swift create mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/Preview Content/Preview Assets.xcassets/Contents.json delete mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/SceneDelegate.swift delete mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/ViewController.swift create mode 100644 xxPROJECTxNAMExx/iOS Example/Sources/iOS_ExampleApp.swift diff --git a/README.md b/README.md index 93ec25b..886c118 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # Swift 5 Module Template Use this template as a starting point for any Swift 5 module that you want other people to include in their projects. -**STATUS: This template is ready and works in production code, compatible with Xcode 11.1 (11A1027)** +**STATUS: This template is ready and works in production code, compatible with Xcode 12.3 (12C33)** ![Swift 5 Module directory layout](https://user-images.githubusercontent.com/382183/66881876-63cca680-ef96-11e9-9dde-ae9d5c35350c.png) @@ -16,7 +16,7 @@ Your new Swift 5 module will immediately have working, compilable code, and all - Testing as a standard - Turnkey access to Travis CI - Semantic versioning and a CHANGELOG -- Included example/demo app +- Included example/demo app using SwiftUI We make the assumption you are using an Xcode project to manage your code. @@ -53,6 +53,19 @@ To skip interactive prompts in the `./configure` script, use these environment v For example, you may use: `export SMT_ORGANIZATION_NAME='Awesome Org'` before running `./configure`. +## How it works + +``` +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ Use │ │ Save │ │Use your own │ +│ Xcode │─Save recipe─▶│ template │─./configure─▶│ module │ +└─────────────┘ └─────────────┘ └─────────────┘ + ▲ ▲ ▲ ▲ ▲ + + │ │ │ │ │ + Contributors to this project End users of this project +``` + ## Contributing -See the file [`Recipe.md`](Recipe.md) for the complete steps (e.g. Open Xcode, make new project, click here, type that, …) of how we made the template. +See the file [Recipe.md](Recipe.md) for the complete steps (e.g. Open Xcode, make new project, click here, type that, …) of how we made the template. diff --git a/Recipe.md b/Recipe.md index c90bd0b..bfae676 100644 --- a/Recipe.md +++ b/Recipe.md @@ -2,10 +2,12 @@ This recipe documents exactly how we created the Swift 5 Module Template. Please follow along and you should create a template that is identical to the one we provided. If this recipe is not perfect (or your result is different from our template in any way) then please submit an issue or pull request. +This recipe may also be useful for other scenarios, for example maybe you want to make a project that has the iOS example app using storyboards instead of SwiftUI. + ## Ingredients -During the steps of this recipe we enter specific values where needed. These are chosen carefully so that they can be found and replaced in the template to create your project. +During the steps of this recipe we enter specific values where needed. These are chosen carefully so that the `./configure` script can later find and replace these values in the template to create your project. Some variables have spaces in them. That is intentional because it causes Xcode to use double quotes around them in its project configuration files. @@ -35,14 +37,15 @@ Some variables have spaces in them. That is intentional because it causes Xcode Complete all these instructions on the same calendar day. -Use Xcode Version 11.1 (11A1027). *This is the latest publicly released or Gold Master version.* +Use Xcode Version 12.3 (12C33). *This is the latest publicly released or Gold Master version.* ### I. Create a package for your module 1. In Xcode, choose File > New > Swift Package… 1. Navigate to your Desktop folder 2. Type the name `xxPROJECTxNAMExx` - 3. Click “Create" + 3. Ensure "Create Git repository on my Mac" is unchecked + 4. Click “Create" ### II. Add some functionality to the module @@ -52,45 +55,44 @@ Use Xcode Version 11.1 (11A1027). *This is the latest publicly released or Gold ```sh cd ~/Desktop/xxPROJECTxNAMExx/Sources/xxPROJECTxNAMExx/ curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/Sources/xxPROJECTxNAMExx/xxPROJECTxNAMExx.swift' -o xxPROJECTxNAMExx.swift - curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/Sources/xxPROJECTxNAMExx/White King.swift' -o White\ King.swift + curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/Sources/xxPROJECTxNAMExx/White%20King.swift' -o White\ King.swift ``` ### III. Create a Swift project for your iOS Example application 1. In Xcode, choose File > New > Project… 1. *Choose a template* - 1. Click "iOS" then "Single View App" + 1. Click "iOS" then "App" 2. Click "Next" 2. *Set the project options* 1. Set Product Name to "iOS Example" - 2. Set Organization Name to `__ORGANIZATION NAME__` + 2. Set Team to "NONE" 3. Set Organization Identifier to `com.AN.ORGANIZATION.IDENTIFIER` - 4. Set Language to "Swift" - 5. Set User Interface to "Storyboard" - 6. Ensure "Include Unit Tests" is not selected - 7. Ensure "Include UI Tests" is not selected + 4. Set User Interface to "SwiftUI" + 5. Set Life Cycle to "SwiftUI App" + 6. Set Language to "Swift" + 7. Ensure "Include Tests" is not selected 8. Click “Next" 3. *Create the project* - 1. Ensure “Create Git Repository" is not selected - 2. Ensure the 'add to' function is “Don’t add to any project or workspace" - 3. Select the folder `xxPROJECTxNAMExx` on the desktop + 1. Ensure “Create Git Repository on my Mac" is not selected + 2. Ensure "Add to" is “Don’t add to any project or workspace" + 3. Select the folder `xxPROJECTxNAMExx` on the desktop (don't double click it) 4. Click “Create" ### IV. Use the directory layout structure like Alamofire 1. *Move iOS Example source code to a folder named "Sources"* 1. Open the file iOS Example.xcodeproj in Xcode - 2. Enable the Project navigator on the left + 2. Enable the Project navigator on the left (folder icon) 3. Use the Project navigator to select the "iOS Example" folder (yellow icon) 4. From the Project navigator, rename this folder as "Sources" - * :warning: Using the File inspector to rename a folder would result in the change being reverted. This is an Xcode bug that we work around. - * :information_source: The Alamofire project uses the folder name "Source" but we choose "Sources" here to be consistent with the default of Swift Package Manager + * :information_source: The Alamofire project uses [the folder name "Source"](https://github.com/Alamofire/Alamofire/tree/master/Example/Source) but we choose "Sources" here to be consistent with [the default of Swift Package Manager](https://github.com/apple/swift-package-manager/blob/b1a6f45aa9daed0c8a609d34af8f71cf4282ddd4/Sources/Workspace/InitPackage.swift#L256) 2. *Fix the Info.plist file configuration and preview content folder (Xcode makes renaming folders a pain)* 1. Click "iOS Example" on the left (the blue icon) 2. Click the target "iOS Example" in the middle (app icon) - 3. Click 'Build Settings' on the top of the middle + 3. Click "Build Settings" on the top of the middle 4. Enter "/Info" in the search box 5. Edit the "Info.plist File" from "iOS Example/Info.plist" to be "Sources/Info.plist" @@ -100,16 +102,12 @@ Use Xcode Version 11.1 (11A1027). *This is the latest publicly released or Gold ```sh cd ~/Desktop/xxPROJECTxNAMExx/iOS\ Example/Sources - curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/Main.storyboard' -o Base.lproj/Main.storyboard + curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/iOS Example/Sources/ContentView.swift' -o ContentView.swift ``` ### VI. Make your iOS Example application depend on your module -1. Close everything that is open in Xcode - - - ⚠️ This is a workaround an Xcode bug where adding a Swift package to a workspace, when that Swift package is open in a separate window, will improperly load the package as ".." instead of the correct package name. - -2. Open iOS Example.xcodeproj in Xcode +1. Open iOS Example.xcodeproj in Xcode 3. Drag the `xxPROJECTxNAMExx` folder on your desktop into the Xcode Project navigator at the bottom, be sure it is subordinated under iOS Example :x:: ![bad](Recipe.assets/bad.png) @@ -121,15 +119,17 @@ Use Xcode Version 11.1 (11A1027). *This is the latest publicly released or Gold 3. Set the name as "iOS Example.xcworkspace" 4. Click Save - ⚠️ Xcode will also show the iOS Example folder inside the `xxPROJECTxNAMExx` module. Swift packages are unable to specify excluded files. You can safely ignore that folder. - + - :warning: Xcode has an error where this added dependency will show as ".." instead of the correct name. This discrepency can be safely ignored and it will show correctly the next time you open this workspace. + 4. *Add a build dependency* 1. Click "iOS Example" on the left (the blue icon) 2. Click the target "iOS Example" in the middle (app icon) - 3. Click 'Build Phases' on the top of the middle + 3. Click "Build Phases" on the top 4. Open the section Link Binary With Libraries 5. Click the plus (+) button - 6. Select xxPROJECTxNAMExx (the building icon) + 6. Select `xxPROJECTxNAMExx` (the building icon) + 7. Click "Add" ### VII. Add additional project management files to the module @@ -138,7 +138,7 @@ These files represent best practices which every Swift module author should adop 1. Use Terminal.app to add additional files to the project 2. ```sh - cd ~/Desktop/xxPROJECTxNAMExx/ + cd ~/Desktop/xxPROJECTxNAMExx/ curl 'https://raw.githubusercontent.com/github/gitignore/master/Swift.gitignore' -o .gitignore curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/.travis.yml' -o .travis.yml curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/LICENSE' -o LICENSE @@ -148,19 +148,18 @@ These files represent best practices which every Swift module author should adop echo 'xxPROJECTxNAMExx.framework.zip' >> .gitignore curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/master/xxPROJECTxNAMExx/Tests/CheckCocoaPodsQualityIndexes.rb' -o Tests/CheckCocoaPodsQualityIndexes.rb ``` - ### VIII. Remove identifying parts of your project -This step allows everybody to achieve byte-for-byte consistency with the published Swift 5 Module Template but otherwise provides no value to you. +This step allows everybody to achieve byte-for-byte consistency with [the published Swift 5 Module Template](https://github.com/fulldecent/swift5-module-template/tree/master/xxPROJECTxNAMExx) but otherwise provides no value to you. 1. Use Terminal.app to find and replace all occurrences of hard-coded strings with template variables ```sh find -E ~/Desktop/xxPROJECTxNAMExx \ - -regex '.*\.(h|swift)' -exec sed -i '' -E -e ' - s-(// +Created by ).*( on ).*\.-\1__AUTHOR NAME__\2__TODAYS_DATE__.- - s-(// +Copyright © ).*-\1__TODAYS_YEAR__ __ORGANIZATION NAME__. All rights reserved.-' \ - '{}' \; + -regex '.*\.(h|swift)' -exec sed -i '' -E -e ' + s-(// +Created by ).*( on ).*\.-\1__AUTHOR NAME__\2__TODAYS_DATE__.- + s-(// +Copyright © ).*-\1__TODAYS_YEAR__ __ORGANIZATION NAME__. All rights reserved.-' \ + '{}' \; ``` 2. Use Terminal.app to remove all references to development team IDs @@ -173,30 +172,32 @@ This step allows everybody to achieve byte-for-byte consistency with the publish ## Taste testing -1. Open `xxPROJECTxNAMExx`.xcworkspace +1. Open iOS Example.xcodeproj in Xcode 2. Use the scheme navigator to select iOS Example and the latest iPhone version 3. Choose Product > Run + * :warning: There appears to be a bug with Xcode saying "One of the paths in DEVELOPMENT_ASSET_PATHS does not exist". The workaround is to delete Development Assets from the Build Settings on the iOS Example target. * :white_check_mark: You should see a big white king (♔). That means it worked! -4. *Compare with the distributed Swift 5 Module Template repository* +4. *Compare with the distributed Swift 5 Module Template repository* + + 1. Use Terminal.app to clone the repository to your desktop - 1. Clone the repository to your desktop use Terminal + ```sh + git clone https://github.com/fulldecent/swift5-module-template.git ~/Desktop/swift5-module-template + ``` - ```sh - git clone https://github.com/fulldecent/swift5-module-template.git ~/Desktop/swift5-module-template - ``` + 2. Compare the distributed version with your version - 2. Compare the distributed version with your version + ```sh + cd ~/Desktop/swift5-module-template + rm -rf xxPROJECTxNAMExx + cp -r ~/Desktop/xxPROJECTxNAMExx . + git diff + ``` - ```sh - cd ~/Desktop/swift5-module-template - rm -rf xxPROJECTxNAMExx - cp -r ~/Desktop/xxPROJECTxNAMExx . - git diff - ``` + * :white_check_mark: You should see an empty screen (press q to close) + * :mega: If you see differences, please raise an issue in the project repository - * :white_check_mark: You should see an empty screen (press q to close) - * :mega: If you see differences, please raise an issue in the project repository diff --git a/xxPROJECTxNAMExx/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/xxPROJECTxNAMExx/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata index 706eede..919434a 100644 --- a/xxPROJECTxNAMExx/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +++ b/xxPROJECTxNAMExx/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/xxPROJECTxNAMExx/Package.swift b/xxPROJECTxNAMExx/Package.swift index bacfd9a..cc216bb 100644 --- a/xxPROJECTxNAMExx/Package.swift +++ b/xxPROJECTxNAMExx/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.1 +// swift-tools-version:5.3 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription @@ -6,7 +6,7 @@ import PackageDescription let package = Package( name: "xxPROJECTxNAMExx", products: [ - // Products define the executables and libraries produced by a package, and make them visible to other packages. + // Products define the executables and libraries a package produces, and make them visible to other packages. .library( name: "xxPROJECTxNAMExx", targets: ["xxPROJECTxNAMExx"]), @@ -17,7 +17,7 @@ let package = Package( ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. - // Targets can depend on other targets in this package, and on products in packages which this package depends on. + // Targets can depend on other targets in this package, and on products in packages this package depends on. .target( name: "xxPROJECTxNAMExx", dependencies: []), diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/AppDelegate.swift b/xxPROJECTxNAMExx/iOS Example/Sources/AppDelegate.swift deleted file mode 100644 index e0c4a6c..0000000 --- a/xxPROJECTxNAMExx/iOS Example/Sources/AppDelegate.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// AppDelegate.swift -// iOS Example -// -// Created by __AUTHOR NAME__ on __TODAYS_DATE__. -// Copyright © __TODAYS_YEAR__ __ORGANIZATION NAME__. All rights reserved. -// - -import UIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - // MARK: UISceneSession Lifecycle - - func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) - } - - func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { - // 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. - } - - -} - diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AccentColor.colorset/Contents.json b/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json b/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json index d8db8d6..9221b9b 100644 --- a/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -2,97 +2,97 @@ "images" : [ { "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" + "scale" : "2x", + "size" : "60x60" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" + "scale" : "3x", + "size" : "60x60" }, { "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" + "scale" : "1x", + "size" : "20x20" }, { "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" + "scale" : "1x", + "size" : "29x29" }, { "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" + "scale" : "1x", + "size" : "40x40" }, { "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" + "scale" : "1x", + "size" : "76x76" }, { "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" + "scale" : "2x", + "size" : "76x76" }, { "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" + "scale" : "2x", + "size" : "83.5x83.5" }, { "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/Contents.json b/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/Contents.json index da4a164..73c0059 100644 --- a/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/Contents.json +++ b/xxPROJECTxNAMExx/iOS Example/Sources/Assets.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/LaunchScreen.storyboard b/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/Main.storyboard b/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/Main.storyboard deleted file mode 100644 index 46ca314..0000000 --- a/xxPROJECTxNAMExx/iOS Example/Sources/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/ContentView.swift b/xxPROJECTxNAMExx/iOS Example/Sources/ContentView.swift new file mode 100644 index 0000000..f2753ba --- /dev/null +++ b/xxPROJECTxNAMExx/iOS Example/Sources/ContentView.swift @@ -0,0 +1,32 @@ +// +// ContentView.swift +// iOS Example +// +// Created by __AUTHOR NAME__ on __TODAYS_DATE__. +// + +import SwiftUI +import xxPROJECTxNAMExx + +struct SwiftUIxxPROJECTxNAMExx: UIViewRepresentable { + func makeUIView(context: Context) -> UIView { + return xxPROJECTxNAMExx() + } + + func updateUIView(_ uiView: UIView, context: Context) { + } +} + +struct ContentView: View { + var body: some View { + VStack(alignment: .center) { + SwiftUIxxPROJECTxNAMExx() + } + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Info.plist b/xxPROJECTxNAMExx/iOS Example/Sources/Info.plist index 2a3483c..efc211a 100644 --- a/xxPROJECTxNAMExx/iOS Example/Sources/Info.plist +++ b/xxPROJECTxNAMExx/iOS Example/Sources/Info.plist @@ -23,26 +23,12 @@ UIApplicationSceneManifest UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main - - - + - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main + UIApplicationSupportsIndirectInputEvents + + UILaunchScreen + UIRequiredDeviceCapabilities armv7 diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/Preview Content/Preview Assets.xcassets/Contents.json b/xxPROJECTxNAMExx/iOS Example/Sources/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/xxPROJECTxNAMExx/iOS Example/Sources/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/SceneDelegate.swift b/xxPROJECTxNAMExx/iOS Example/Sources/SceneDelegate.swift deleted file mode 100644 index 4402985..0000000 --- a/xxPROJECTxNAMExx/iOS Example/Sources/SceneDelegate.swift +++ /dev/null @@ -1,53 +0,0 @@ -// -// SceneDelegate.swift -// iOS Example -// -// Created by __AUTHOR NAME__ on __TODAYS_DATE__. -// Copyright © __TODAYS_YEAR__ __ORGANIZATION NAME__. All rights reserved. -// - -import UIKit - -class SceneDelegate: UIResponder, UIWindowSceneDelegate { - - var window: UIWindow? - - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.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). - guard let _ = (scene as? UIWindowScene) else { return } - } - - func sceneDidDisconnect(_ scene: UIScene) { - // 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). - } - - func sceneDidBecomeActive(_ scene: UIScene) { - // 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. - } - - func sceneWillResignActive(_ scene: UIScene) { - // 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). - } - - func sceneWillEnterForeground(_ scene: UIScene) { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. - } - - func sceneDidEnterBackground(_ scene: UIScene) { - // 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. - } - - -} - diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/ViewController.swift b/xxPROJECTxNAMExx/iOS Example/Sources/ViewController.swift deleted file mode 100644 index 8dbe8b1..0000000 --- a/xxPROJECTxNAMExx/iOS Example/Sources/ViewController.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// ViewController.swift -// iOS Example -// -// Created by __AUTHOR NAME__ on __TODAYS_DATE__. -// Copyright © __TODAYS_YEAR__ __ORGANIZATION NAME__. All rights reserved. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } - - -} - diff --git a/xxPROJECTxNAMExx/iOS Example/Sources/iOS_ExampleApp.swift b/xxPROJECTxNAMExx/iOS Example/Sources/iOS_ExampleApp.swift new file mode 100644 index 0000000..a2d6921 --- /dev/null +++ b/xxPROJECTxNAMExx/iOS Example/Sources/iOS_ExampleApp.swift @@ -0,0 +1,17 @@ +// +// iOS_ExampleApp.swift +// iOS Example +// +// Created by __AUTHOR NAME__ on __TODAYS_DATE__. +// + +import SwiftUI + +@main +struct iOS_ExampleApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.pbxproj b/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.pbxproj index cae73bc..0beaf2f 100644 --- a/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.pbxproj +++ b/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.pbxproj @@ -7,86 +7,88 @@ objects = { /* Begin PBXBuildFile section */ - D9A12776235699C600D136A5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9A12775235699C600D136A5 /* AppDelegate.swift */; }; - D9A12778235699C600D136A5 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9A12777235699C600D136A5 /* SceneDelegate.swift */; }; - D9A1277A235699C600D136A5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9A12779235699C600D136A5 /* ViewController.swift */; }; - D9A1277D235699C600D136A5 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D9A1277B235699C600D136A5 /* Main.storyboard */; }; - D9A1277F235699C700D136A5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9A1277E235699C700D136A5 /* Assets.xcassets */; }; - D9A12782235699C700D136A5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D9A12780235699C700D136A5 /* LaunchScreen.storyboard */; }; - D9A1278B2356A25E00D136A5 /* xxPROJECTxNAMExx in Frameworks */ = {isa = PBXBuildFile; productRef = D9A1278A2356A25E00D136A5 /* xxPROJECTxNAMExx */; }; + D9612A4F2595212E0061CCE1 /* xxPROJECTxNAMExx in Frameworks */ = {isa = PBXBuildFile; productRef = D9612A4E2595212E0061CCE1 /* xxPROJECTxNAMExx */; }; + D97F1F0525951C1A004C7A4E /* iOS_ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D97F1F0425951C1A004C7A4E /* iOS_ExampleApp.swift */; }; + D97F1F0725951C1A004C7A4E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D97F1F0625951C1A004C7A4E /* ContentView.swift */; }; + D97F1F0925951C1A004C7A4E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D97F1F0825951C1A004C7A4E /* Assets.xcassets */; }; + D97F1F0C25951C1A004C7A4E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D97F1F0B25951C1A004C7A4E /* Preview Assets.xcassets */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - D9A12772235699C600D136A5 /* iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - D9A12775235699C600D136A5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - D9A12777235699C600D136A5 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - D9A12779235699C600D136A5 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - D9A1277C235699C600D136A5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - D9A1277E235699C700D136A5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - D9A12781235699C700D136A5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - D9A12783235699C700D136A5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D97F1F0125951C1A004C7A4E /* iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + D97F1F0425951C1A004C7A4E /* iOS_ExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOS_ExampleApp.swift; sourceTree = ""; }; + D97F1F0625951C1A004C7A4E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + D97F1F0825951C1A004C7A4E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + D97F1F0B25951C1A004C7A4E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + D97F1F0D25951C1A004C7A4E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - D9A1276F235699C600D136A5 /* Frameworks */ = { + D97F1EFE25951C1A004C7A4E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D9A1278B2356A25E00D136A5 /* xxPROJECTxNAMExx in Frameworks */, + D9612A4F2595212E0061CCE1 /* xxPROJECTxNAMExx in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - D9A12769235699C600D136A5 = { + D9612A4D2595212E0061CCE1 /* Frameworks */ = { isa = PBXGroup; children = ( - D9A12774235699C600D136A5 /* Sources */, - D9A12773235699C600D136A5 /* Products */, - D9A127892356A25E00D136A5 /* Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + D97F1EF825951C1A004C7A4E = { + isa = PBXGroup; + children = ( + D97F1F0325951C1A004C7A4E /* Sources */, + D97F1F0225951C1A004C7A4E /* Products */, + D9612A4D2595212E0061CCE1 /* Frameworks */, ); sourceTree = ""; }; - D9A12773235699C600D136A5 /* Products */ = { + D97F1F0225951C1A004C7A4E /* Products */ = { isa = PBXGroup; children = ( - D9A12772235699C600D136A5 /* iOS Example.app */, + D97F1F0125951C1A004C7A4E /* iOS Example.app */, ); name = Products; sourceTree = ""; }; - D9A12774235699C600D136A5 /* Sources */ = { + D97F1F0325951C1A004C7A4E /* Sources */ = { isa = PBXGroup; children = ( - D9A12775235699C600D136A5 /* AppDelegate.swift */, - D9A12777235699C600D136A5 /* SceneDelegate.swift */, - D9A12779235699C600D136A5 /* ViewController.swift */, - D9A1277B235699C600D136A5 /* Main.storyboard */, - D9A1277E235699C700D136A5 /* Assets.xcassets */, - D9A12780235699C700D136A5 /* LaunchScreen.storyboard */, - D9A12783235699C700D136A5 /* Info.plist */, + D97F1F0425951C1A004C7A4E /* iOS_ExampleApp.swift */, + D97F1F0625951C1A004C7A4E /* ContentView.swift */, + D97F1F0825951C1A004C7A4E /* Assets.xcassets */, + D97F1F0D25951C1A004C7A4E /* Info.plist */, + D97F1F0A25951C1A004C7A4E /* Preview Content */, ); path = Sources; sourceTree = ""; }; - D9A127892356A25E00D136A5 /* Frameworks */ = { + D97F1F0A25951C1A004C7A4E /* Preview Content */ = { isa = PBXGroup; children = ( + D97F1F0B25951C1A004C7A4E /* Preview Assets.xcassets */, ); - name = Frameworks; + path = "Preview Content"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - D9A12771235699C600D136A5 /* iOS Example */ = { + D97F1F0025951C1A004C7A4E /* iOS Example */ = { isa = PBXNativeTarget; - buildConfigurationList = D9A12786235699C700D136A5 /* Build configuration list for PBXNativeTarget "iOS Example" */; + buildConfigurationList = D97F1F1025951C1A004C7A4E /* Build configuration list for PBXNativeTarget "iOS Example" */; buildPhases = ( - D9A1276E235699C600D136A5 /* Sources */, - D9A1276F235699C600D136A5 /* Frameworks */, - D9A12770235699C600D136A5 /* Resources */, + D97F1EFD25951C1A004C7A4E /* Sources */, + D97F1EFE25951C1A004C7A4E /* Frameworks */, + D97F1EFF25951C1A004C7A4E /* Resources */, ); buildRules = ( ); @@ -94,28 +96,27 @@ ); name = "iOS Example"; packageProductDependencies = ( - D9A1278A2356A25E00D136A5 /* xxPROJECTxNAMExx */, + D9612A4E2595212E0061CCE1 /* xxPROJECTxNAMExx */, ); productName = "iOS Example"; - productReference = D9A12772235699C600D136A5 /* iOS Example.app */; + productReference = D97F1F0125951C1A004C7A4E /* iOS Example.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D9A1276A235699C600D136A5 /* Project object */ = { + D97F1EF925951C1A004C7A4E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1110; - LastUpgradeCheck = 1110; - ORGANIZATIONNAME = "__ORGANIZATION NAME__"; + LastSwiftUpdateCheck = 1230; + LastUpgradeCheck = 1230; TargetAttributes = { - D9A12771235699C600D136A5 = { - CreatedOnToolsVersion = 11.1; + D97F1F0025951C1A004C7A4E = { + CreatedOnToolsVersion = 12.3; }; }; }; - buildConfigurationList = D9A1276D235699C600D136A5 /* Build configuration list for PBXProject "iOS Example" */; + buildConfigurationList = D97F1EFC25951C1A004C7A4E /* Build configuration list for PBXProject "iOS Example" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; @@ -123,63 +124,42 @@ en, Base, ); - mainGroup = D9A12769235699C600D136A5; - productRefGroup = D9A12773235699C600D136A5 /* Products */; + mainGroup = D97F1EF825951C1A004C7A4E; + productRefGroup = D97F1F0225951C1A004C7A4E /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - D9A12771235699C600D136A5 /* iOS Example */, + D97F1F0025951C1A004C7A4E /* iOS Example */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - D9A12770235699C600D136A5 /* Resources */ = { + D97F1EFF25951C1A004C7A4E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D9A12782235699C700D136A5 /* LaunchScreen.storyboard in Resources */, - D9A1277F235699C700D136A5 /* Assets.xcassets in Resources */, - D9A1277D235699C600D136A5 /* Main.storyboard in Resources */, + D97F1F0C25951C1A004C7A4E /* Preview Assets.xcassets in Resources */, + D97F1F0925951C1A004C7A4E /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - D9A1276E235699C600D136A5 /* Sources */ = { + D97F1EFD25951C1A004C7A4E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D9A1277A235699C600D136A5 /* ViewController.swift in Sources */, - D9A12776235699C600D136A5 /* AppDelegate.swift in Sources */, - D9A12778235699C600D136A5 /* SceneDelegate.swift in Sources */, + D97F1F0725951C1A004C7A4E /* ContentView.swift in Sources */, + D97F1F0525951C1A004C7A4E /* iOS_ExampleApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXVariantGroup section */ - D9A1277B235699C600D136A5 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - D9A1277C235699C600D136A5 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - D9A12780235699C700D136A5 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - D9A12781235699C700D136A5 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ - D9A12784235699C700D136A5 /* Debug */ = { + D97F1F0E25951C1A004C7A4E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -205,6 +185,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -229,7 +210,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.1; + IPHONEOS_DEPLOYMENT_TARGET = 14.3; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -239,7 +220,7 @@ }; name = Debug; }; - D9A12785235699C700D136A5 /* Release */ = { + D97F1F0F25951C1A004C7A4E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -265,6 +246,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -283,7 +265,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.1; + IPHONEOS_DEPLOYMENT_TARGET = 14.3; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -293,12 +275,15 @@ }; name = Release; }; - D9A12787235699C700D136A5 /* Debug */ = { + D97F1F1125951C1A004C7A4E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; + ENABLE_PREVIEWS = YES; INFOPLIST_FILE = Sources/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -310,12 +295,15 @@ }; name = Debug; }; - D9A12788235699C700D136A5 /* Release */ = { + D97F1F1225951C1A004C7A4E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; + ENABLE_PREVIEWS = YES; INFOPLIST_FILE = Sources/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -330,20 +318,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - D9A1276D235699C600D136A5 /* Build configuration list for PBXProject "iOS Example" */ = { + D97F1EFC25951C1A004C7A4E /* Build configuration list for PBXProject "iOS Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - D9A12784235699C700D136A5 /* Debug */, - D9A12785235699C700D136A5 /* Release */, + D97F1F0E25951C1A004C7A4E /* Debug */, + D97F1F0F25951C1A004C7A4E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D9A12786235699C700D136A5 /* Build configuration list for PBXNativeTarget "iOS Example" */ = { + D97F1F1025951C1A004C7A4E /* Build configuration list for PBXNativeTarget "iOS Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - D9A12787235699C700D136A5 /* Debug */, - D9A12788235699C700D136A5 /* Release */, + D97F1F1125951C1A004C7A4E /* Debug */, + D97F1F1225951C1A004C7A4E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -351,11 +339,11 @@ /* End XCConfigurationList section */ /* Begin XCSwiftPackageProductDependency section */ - D9A1278A2356A25E00D136A5 /* xxPROJECTxNAMExx */ = { + D9612A4E2595212E0061CCE1 /* xxPROJECTxNAMExx */ = { isa = XCSwiftPackageProductDependency; productName = xxPROJECTxNAMExx; }; /* End XCSwiftPackageProductDependency section */ }; - rootObject = D9A1276A235699C600D136A5 /* Project object */; + rootObject = D97F1EF925951C1A004C7A4E /* Project object */; } diff --git a/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata index bfe77a2..919434a 100644 --- a/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/xxPROJECTxNAMExx/iOS Example/iOS Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:">