From f809cec395e61c059a1893eebfa7a14f38549235 Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Mon, 31 Mar 2025 07:52:21 +0300 Subject: [PATCH 1/2] Allow easier integration with Swift libraries. --- .../{{app.file}}.xcodeproj/project.pbxproj | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/templates/ios/template/{{app.file}}.xcodeproj/project.pbxproj b/templates/ios/template/{{app.file}}.xcodeproj/project.pbxproj index 001a200690..a896a86994 100644 --- a/templates/ios/template/{{app.file}}.xcodeproj/project.pbxproj +++ b/templates/ios/template/{{app.file}}.xcodeproj/project.pbxproj @@ -270,6 +270,15 @@ C01FCF4F08A954540054247B /* Debug */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = ::CURRENT_ARCHS::; ::if (OBJC_ARC):: @@ -315,6 +324,15 @@ C01FCF5008A954540054247B /* Release */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = ::CURRENT_ARCHS::; ::if (OBJC_ARC):: @@ -356,6 +374,7 @@ 1D6058940D05DD3E006BFB54 /* Debug */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ::if (IOS_LAUNCH_STORYBOARD == null)::ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;::end:: CODE_SIGN_ENTITLEMENTS = "::APP_FILE::/::APP_FILE::.entitlements"; @@ -370,6 +389,7 @@ GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = ::DEPLOYMENT::; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; "LIBRARY_SEARCH_PATHS[arch=arm64]" = ( "$(inherited)", "\"$(SRCROOT)/::APP_FILE::/lib/arm64-debug\"", @@ -396,6 +416,7 @@ "\"$(SRCROOT)/::APP_FILE::/lib/x86_64\"", ); OTHER_LDFLAGS = ( + "$(inherited)", "-lmbedtls_hxcpp", ::foreach ndlls:: "-l::name::", ::end:: @@ -407,6 +428,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "::APP_PACKAGE::"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; WRAPPER_EXTENSION = app; }; name = Debug; @@ -414,6 +440,7 @@ 1D6058950D05DD3E006BFB54 /* Release */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ::if (IOS_LAUNCH_STORYBOARD == null)::ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;::end:: CODE_SIGN_ENTITLEMENTS = "::APP_FILE::/::APP_FILE::.entitlements"; @@ -428,6 +455,7 @@ GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = ::DEPLOYMENT::; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; "LIBRARY_SEARCH_PATHS[arch=arm64]" = ( "$(inherited)", "\"$(SRCROOT)/::APP_FILE::/lib/arm64\"", @@ -449,6 +477,7 @@ "\"$(SRCROOT)/::APP_FILE::/lib/x86_64\"", ); OTHER_LDFLAGS = ( + "$(inherited)", "-lmbedtls_hxcpp", ::foreach ndlls:: "-l::name::", ::end:: @@ -460,6 +489,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "::APP_PACKAGE::"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; WRAPPER_EXTENSION = app; }; name = Release; @@ -537,4 +571,4 @@ /* End XCConfigurationList section */ }; /* end objects */ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} \ No newline at end of file +} From 12fa6eddfa0bedf5298470e7d2d2d91583be90aa Mon Sep 17 00:00:00 2001 From: Mihai Alexandru <77043862+MAJigsaw77@users.noreply.github.com> Date: Sat, 18 Oct 2025 20:09:32 +0300 Subject: [PATCH 2/2] Allow easier integration with Swift libraries on `tvOS`. --- templates/tvos/PROJ.xcodeproj/project.pbxproj | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/templates/tvos/PROJ.xcodeproj/project.pbxproj b/templates/tvos/PROJ.xcodeproj/project.pbxproj index 67b3c4a641..1c028aef3f 100644 --- a/templates/tvos/PROJ.xcodeproj/project.pbxproj +++ b/templates/tvos/PROJ.xcodeproj/project.pbxproj @@ -241,6 +241,15 @@ C01FCF4F08A954540054247B /* Debug */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); ALWAYS_SEARCH_USER_PATHS = NO; ::if (OBJC_ARC):: CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -272,6 +281,15 @@ C01FCF5008A954540054247B /* Release */ = {/* Build configuration list for PBXProject "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = ( + "\"$(SDKROOT)/usr/lib/swift\"", + "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", + "\"$(inherited)\"", + ); ALWAYS_SEARCH_USER_PATHS = NO; ::if (OBJC_ARC):: CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -299,6 +317,7 @@ 1D6058940D05DD3E006BFB54 /* Debug */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; FRAMEWORK_SEARCH_PATHS = ( @@ -309,6 +328,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; "LIBRARY_SEARCH_PATHS[arch=arm64]" = ( "$(inherited)", "\"$(SRCROOT)/::APP_FILE::/lib/arm64-debug\"", @@ -335,6 +355,7 @@ "\"$(SRCROOT)/::APP_FILE::/lib/x86_64\"", ); OTHER_LDFLAGS = ( + "$(inherited)", "-lmbedtls_hxcpp", ::foreach ndlls:: "-l::name::", ::end:: @@ -346,6 +367,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "::APP_PACKAGE::"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; WRAPPER_EXTENSION = app; }; name = Debug; @@ -353,6 +379,7 @@ 1D6058950D05DD3E006BFB54 /* Release */ = {/* Build configuration list for PBXNativeTarget "::APP_TITLE::" */ isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; FRAMEWORK_SEARCH_PATHS = ( @@ -363,6 +390,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "::APP_FILE::/::APP_FILE::-Prefix.pch"; INFOPLIST_FILE = "::APP_FILE::/::APP_FILE::-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; "LIBRARY_SEARCH_PATHS[arch=arm64]" = ( "$(inherited)", "\"$(SRCROOT)/::APP_FILE::/lib/arm64\"", @@ -384,6 +412,7 @@ "\"$(SRCROOT)/::APP_FILE::/lib/x86_64\"", ); OTHER_LDFLAGS = ( + "$(inherited)", "-lmbedtls_hxcpp", ::foreach ndlls:: "-l::name::", ::end:: @@ -395,6 +424,11 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "::APP_PACKAGE::"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; WRAPPER_EXTENSION = app; }; name = Release; @@ -473,4 +507,4 @@ /* End XCConfigurationList section */ }; /* end objects */ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} \ No newline at end of file +}