Skip to content

Commit

Permalink
Update for Xcode 15.3 fixes #56
Browse files Browse the repository at this point in the history
  • Loading branch information
fulldecent committed Mar 26, 2024
1 parent a9c7d46 commit f0a2f00
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 107 deletions.
6 changes: 0 additions & 6 deletions .travis.yml

This file was deleted.

16 changes: 13 additions & 3 deletions Recipe.md
Expand Up @@ -37,7 +37,7 @@ Some variables have spaces in them. That is intentional because Xcode only uses

Complete all these instructions on the same calendar day.

Use Xcode Version 15.2 (15C500b). *This is the latest publicly released or Gold Master version.*
Use Xcode Version 15.3 (15E204a). *This is the latest publicly released or Gold Master version.*

A previous version of this recipe is also demonstrated in a YouTube flyover at https://youtu.be/ksYXtNn8lhE (15 minutes).

Expand Down Expand Up @@ -110,11 +110,20 @@ A previous version of this recipe is also demonstrated in a YouTube flyover at h

### VI. Make your Example application depend on your module

1. Open Example.xcodeproj in Xcode
2. In Xcode, choose File > Add Package Dependencies...
1. Using Finder, move the Example folder onto your desktop
1. :information_source: This is a workaround for the Xcode error "The selected package cannot be a direct ancestor of the project." that started from Xcode version 15.3.

2. Open Example.xcodeproj in Xcode
3. In Xcode, choose File > Add Package Dependencies...
1. Click "Add Local..."
2. Select the `xxPROJECTxNAMExx` folder on your desktop
3. Click "Add Package"
4. Quit Xcode (workaround)
5. Using Finder, move the Example folder back into the `xxPROJECTxNAMExx` folder (workaround)
6. Use VS Code or similar text editor to manually set the directory path (workaround)
1. Open the Example folder
2. Find and replace all `../xxPROJECTxNAMExx` to `..`


### VII. Add additional project management files to the module

Expand All @@ -132,6 +141,7 @@ A previous version of this recipe is also demonstrated in a YouTube flyover at h
curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/main/xxPROJECTxNAMExx/CHANGELOG.md' -o CHANGELOG.md
curl 'https://raw.githubusercontent.com/fulldecent/swift5-module-template/main/xxPROJECTxNAMExx/CONTRIBUTING.md' -o CONTRIBUTING.md
```

### VIII. Remove identifying parts of your project

*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/main/xxPROJECTxNAMExx) but otherwise provides no value to you.*
Expand Down
124 changes: 62 additions & 62 deletions xxPROJECTxNAMExx/Example/Example.xcodeproj/project.pbxproj
Expand Up @@ -7,153 +7,153 @@
objects = {

/* Begin PBXBuildFile section */
D99451BA2B93BE8E00FCB5C7 /* ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D99451B92B93BE8E00FCB5C7 /* ExampleApp.swift */; };
D99451BC2B93BE8E00FCB5C7 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D99451BB2B93BE8E00FCB5C7 /* ContentView.swift */; };
D99451BE2B93BE8F00FCB5C7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D99451BD2B93BE8F00FCB5C7 /* Assets.xcassets */; };
D99451C12B93BE8F00FCB5C7 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D99451C02B93BE8F00FCB5C7 /* Preview Assets.xcassets */; };
D99451C92B93C49800FCB5C7 /* xxPROJECTxNAMExx in Frameworks */ = {isa = PBXBuildFile; productRef = D99451C82B93C49800FCB5C7 /* xxPROJECTxNAMExx */; };
D9004FD22BB384700060A00E /* ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9004FD12BB384700060A00E /* ExampleApp.swift */; };
D9004FD42BB384700060A00E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9004FD32BB384700060A00E /* ContentView.swift */; };
D9004FD62BB384710060A00E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9004FD52BB384710060A00E /* Assets.xcassets */; };
D9004FD92BB384710060A00E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9004FD82BB384710060A00E /* Preview Assets.xcassets */; };
D939A6442BB385BC0049FE92 /* xxPROJECTxNAMExx in Frameworks */ = {isa = PBXBuildFile; productRef = D939A6432BB385BC0049FE92 /* xxPROJECTxNAMExx */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
D99451B62B93BE8E00FCB5C7 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
D99451B92B93BE8E00FCB5C7 /* ExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleApp.swift; sourceTree = "<group>"; };
D99451BB2B93BE8E00FCB5C7 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
D99451BD2B93BE8F00FCB5C7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
D99451C02B93BE8F00FCB5C7 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
D9004FCE2BB384700060A00E /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
D9004FD12BB384700060A00E /* ExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleApp.swift; sourceTree = "<group>"; };
D9004FD32BB384700060A00E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
D9004FD52BB384710060A00E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
D9004FD82BB384710060A00E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
D99451B32B93BE8E00FCB5C7 /* Frameworks */ = {
D9004FCB2BB384700060A00E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D99451C92B93C49800FCB5C7 /* xxPROJECTxNAMExx in Frameworks */,
D939A6442BB385BC0049FE92 /* xxPROJECTxNAMExx in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
D99451AD2B93BE8E00FCB5C7 = {
D9004FC52BB384700060A00E = {
isa = PBXGroup;
children = (
D99451B82B93BE8E00FCB5C7 /* Sources */,
D99451B72B93BE8E00FCB5C7 /* Products */,
D9004FD02BB384700060A00E /* Sources */,
D9004FCF2BB384700060A00E /* Products */,
);
sourceTree = "<group>";
};
D99451B72B93BE8E00FCB5C7 /* Products */ = {
D9004FCF2BB384700060A00E /* Products */ = {
isa = PBXGroup;
children = (
D99451B62B93BE8E00FCB5C7 /* Example.app */,
D9004FCE2BB384700060A00E /* Example.app */,
);
name = Products;
sourceTree = "<group>";
};
D99451B82B93BE8E00FCB5C7 /* Sources */ = {
D9004FD02BB384700060A00E /* Sources */ = {
isa = PBXGroup;
children = (
D99451B92B93BE8E00FCB5C7 /* ExampleApp.swift */,
D99451BB2B93BE8E00FCB5C7 /* ContentView.swift */,
D99451BD2B93BE8F00FCB5C7 /* Assets.xcassets */,
D99451BF2B93BE8F00FCB5C7 /* Preview Content */,
D9004FD12BB384700060A00E /* ExampleApp.swift */,
D9004FD32BB384700060A00E /* ContentView.swift */,
D9004FD52BB384710060A00E /* Assets.xcassets */,
D9004FD72BB384710060A00E /* Preview Content */,
);
path = Sources;
sourceTree = "<group>";
};
D99451BF2B93BE8F00FCB5C7 /* Preview Content */ = {
D9004FD72BB384710060A00E /* Preview Content */ = {
isa = PBXGroup;
children = (
D99451C02B93BE8F00FCB5C7 /* Preview Assets.xcassets */,
D9004FD82BB384710060A00E /* Preview Assets.xcassets */,
);
path = "Preview Content";
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
D99451B52B93BE8E00FCB5C7 /* Example */ = {
D9004FCD2BB384700060A00E /* Example */ = {
isa = PBXNativeTarget;
buildConfigurationList = D99451C42B93BE8F00FCB5C7 /* Build configuration list for PBXNativeTarget "Example" */;
buildConfigurationList = D9004FDC2BB384710060A00E /* Build configuration list for PBXNativeTarget "Example" */;
buildPhases = (
D99451B22B93BE8E00FCB5C7 /* Sources */,
D99451B32B93BE8E00FCB5C7 /* Frameworks */,
D99451B42B93BE8E00FCB5C7 /* Resources */,
D9004FCA2BB384700060A00E /* Sources */,
D9004FCB2BB384700060A00E /* Frameworks */,
D9004FCC2BB384700060A00E /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Example;
packageProductDependencies = (
D99451C82B93C49800FCB5C7 /* xxPROJECTxNAMExx */,
D939A6432BB385BC0049FE92 /* xxPROJECTxNAMExx */,
);
productName = Example;
productReference = D99451B62B93BE8E00FCB5C7 /* Example.app */;
productReference = D9004FCE2BB384700060A00E /* Example.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
D99451AE2B93BE8E00FCB5C7 /* Project object */ = {
D9004FC62BB384700060A00E /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1520;
LastUpgradeCheck = 1520;
LastSwiftUpdateCheck = 1530;
LastUpgradeCheck = 1530;
TargetAttributes = {
D99451B52B93BE8E00FCB5C7 = {
CreatedOnToolsVersion = 15.2;
D9004FCD2BB384700060A00E = {
CreatedOnToolsVersion = 15.3;
};
};
};
buildConfigurationList = D99451B12B93BE8E00FCB5C7 /* Build configuration list for PBXProject "Example" */;
buildConfigurationList = D9004FC92BB384700060A00E /* Build configuration list for PBXProject "Example" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = D99451AD2B93BE8E00FCB5C7;
mainGroup = D9004FC52BB384700060A00E;
packageReferences = (
D99451C72B93C49800FCB5C7 /* XCLocalSwiftPackageReference ".." */,
D939A6422BB385BC0049FE92 /* XCLocalSwiftPackageReference ".." */,
);
productRefGroup = D99451B72B93BE8E00FCB5C7 /* Products */;
productRefGroup = D9004FCF2BB384700060A00E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
D99451B52B93BE8E00FCB5C7 /* Example */,
D9004FCD2BB384700060A00E /* Example */,
);
};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
D99451B42B93BE8E00FCB5C7 /* Resources */ = {
D9004FCC2BB384700060A00E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D99451C12B93BE8F00FCB5C7 /* Preview Assets.xcassets in Resources */,
D99451BE2B93BE8F00FCB5C7 /* Assets.xcassets in Resources */,
D9004FD92BB384710060A00E /* Preview Assets.xcassets in Resources */,
D9004FD62BB384710060A00E /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
D99451B22B93BE8E00FCB5C7 /* Sources */ = {
D9004FCA2BB384700060A00E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D99451BC2B93BE8E00FCB5C7 /* ContentView.swift in Sources */,
D99451BA2B93BE8E00FCB5C7 /* ExampleApp.swift in Sources */,
D9004FD42BB384700060A00E /* ContentView.swift in Sources */,
D9004FD22BB384700060A00E /* ExampleApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
D99451C22B93BE8F00FCB5C7 /* Debug */ = {
D9004FDA2BB384710060A00E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
Expand Down Expand Up @@ -205,7 +205,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.2;
IPHONEOS_DEPLOYMENT_TARGET = 17.4;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
Expand All @@ -216,7 +216,7 @@
};
name = Debug;
};
D99451C32B93BE8F00FCB5C7 /* Release */ = {
D9004FDB2BB384710060A00E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
Expand Down Expand Up @@ -262,7 +262,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 17.2;
IPHONEOS_DEPLOYMENT_TARGET = 17.4;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
Expand All @@ -272,7 +272,7 @@
};
name = Release;
};
D99451C52B93BE8F00FCB5C7 /* Debug */ = {
D9004FDD2BB384710060A00E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
Expand Down Expand Up @@ -300,7 +300,7 @@
};
name = Debug;
};
D99451C62B93BE8F00FCB5C7 /* Release */ = {
D9004FDE2BB384710060A00E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
Expand Down Expand Up @@ -331,39 +331,39 @@
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
D99451B12B93BE8E00FCB5C7 /* Build configuration list for PBXProject "Example" */ = {
D9004FC92BB384700060A00E /* Build configuration list for PBXProject "Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D99451C22B93BE8F00FCB5C7 /* Debug */,
D99451C32B93BE8F00FCB5C7 /* Release */,
D9004FDA2BB384710060A00E /* Debug */,
D9004FDB2BB384710060A00E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
D99451C42B93BE8F00FCB5C7 /* Build configuration list for PBXNativeTarget "Example" */ = {
D9004FDC2BB384710060A00E /* Build configuration list for PBXNativeTarget "Example" */ = {
isa = XCConfigurationList;
buildConfigurations = (
D99451C52B93BE8F00FCB5C7 /* Debug */,
D99451C62B93BE8F00FCB5C7 /* Release */,
D9004FDD2BB384710060A00E /* Debug */,
D9004FDE2BB384710060A00E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

/* Begin XCLocalSwiftPackageReference section */
D99451C72B93C49800FCB5C7 /* XCLocalSwiftPackageReference ".." */ = {
D939A6422BB385BC0049FE92 /* XCLocalSwiftPackageReference ".." */ = {
isa = XCLocalSwiftPackageReference;
relativePath = ..;
};
/* End XCLocalSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
D99451C82B93C49800FCB5C7 /* xxPROJECTxNAMExx */ = {
D939A6432BB385BC0049FE92 /* xxPROJECTxNAMExx */ = {
isa = XCSwiftPackageProductDependency;
productName = xxPROJECTxNAMExx;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = D99451AE2B93BE8E00FCB5C7 /* Project object */;
rootObject = D9004FC62BB384700060A00E /* Project object */;
}
6 changes: 1 addition & 5 deletions xxPROJECTxNAMExx/Package.swift
@@ -1,14 +1,10 @@
// swift-tools-version: 5.9
// swift-tools-version: 5.10
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
name: "xxPROJECTxNAMExx",
platforms: [
.iOS(.v13), // Specify iOS 13 as the minimum version
// Add any other platforms and versions if needed
],
products: [
// Products define the executables and libraries a package produces, making them visible to other packages.
.library(
Expand Down
31 changes: 0 additions & 31 deletions xxPROJECTxNAMExx/Sources/xxPROJECTxNAMExx/ContentView.swift

This file was deleted.

0 comments on commit f0a2f00

Please sign in to comment.