Refactor xcconfig structure (#2333)

- Conditionally set Automatic or Manual provisioning from env (Fixes
#2326)
- Refactor xcconfig structure to make configuring the project simpler
across different envs
- Use consistent parentheses in Makefiles and xcconfigs (Refs #2324)
(Fixes #2334)
This commit is contained in:
Jamil
2023-10-16 12:02:12 -07:00
committed by GitHub
parent 2bfdb7d39e
commit 69638d6993
21 changed files with 111 additions and 104 deletions

View File

@@ -2,10 +2,6 @@ name: Swift
on:
workflow_call:
env:
# TODO: Change this to "prod" when app is released
CLIENT_ENV: staging
jobs:
build:
runs-on: ${{ matrix.runs-on }}
@@ -119,13 +115,14 @@ jobs:
# Needed because `productbuild` doesn't support picking this up automatically like Xcode does
INSTALLER_CODE_SIGN_IDENTITY: "3rd Party Mac Developer Installer: Firezone, Inc. (47R2M6779T)"
REQUESTED_XCODE_VERSION: ${{ matrix.xcode }}
# TODO: Change this to "prod" when app is released
XCCONFIG_ENV: staging
run: |
# Set Xcode version to use if provided
[[ ! -z "$REQUESTED_XCODE_VERSION" ]] && sudo xcode-select -s /Applications/Xcode_$REQUESTED_XCODE_VERSION.app
# Copy xcconfig templates
cp Firezone/xcconfig/Developer.xcconfig.firezone Firezone/xcconfig/Developer.xcconfig
cp Firezone/xcconfig/Server.xcconfig.${{ env.CLIENT_ENV }} Firezone/xcconfig/Server.xcconfig
# Copy xcconfig
cp Firezone/xcconfig/${{ env.XCCONFIG_ENV }}.xcconfig Firezone/xcconfig/config.xcconfig
# App Store Connect requires a new build version on each upload and it must be an integer.
# See https://developer.apple.com/documentation/xcode/build-settings-reference#Current-Project-Version

View File

@@ -5,6 +5,5 @@ DerivedData/
xcuserdata/
**/*.xcuserstate
Firezone/xcconfig/Developer.xcconfig
Firezone/xcconfig/Server.xcconfig
Firezone/xcconfig/config.xcconfig
FirezoneNetworkExtension/Connlib

View File

@@ -101,7 +101,6 @@
05CF1CF6290B1CEE00CF4755 /* FirezoneNetworkExtension_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FirezoneNetworkExtension_iOS.entitlements; sourceTree = "<group>"; };
05CF1D03290B1DCD00CF4755 /* FirezoneNetworkExtensionmacOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = FirezoneNetworkExtensionmacOS.appex; sourceTree = BUILT_PRODUCTS_DIR; };
05D3BB1628FDBD8A00BC3727 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; };
6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = AllConfigs.xcconfig; path = xcconfig/AllConfigs.xcconfig; sourceTree = "<group>"; };
6FA39A032A6A7248000F0157 /* NetworkResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkResource.swift; sourceTree = "<group>"; };
6FE454EA2A5BFABA006549B1 /* Adapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Adapter.swift; sourceTree = "<group>"; };
6FE455082A5D110D006549B1 /* CallbackHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallbackHandler.swift; sourceTree = "<group>"; };
@@ -117,6 +116,7 @@
8DCC022728D512AE007E12D2 /* Firezone.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Firezone.entitlements; sourceTree = "<group>"; };
8DCC022928D512AE007E12D2 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
8DD2C4C3297B37BA00F984BF /* FirezoneKit */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = FirezoneKit; sourceTree = "<group>"; };
8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = config.xcconfig; path = xcconfig/config.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -219,7 +219,7 @@
8DCC021B28D512AC007E12D2 /* Firezone */ = {
isa = PBXGroup;
children = (
6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */,
8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */,
05E1505F28FF398000170F82 /* Application */,
8DCC022528D512AE007E12D2 /* Assets.xcassets */,
8DCC022728D512AE007E12D2 /* Firezone.entitlements */,
@@ -254,8 +254,8 @@
buildConfigurationList = 6FE454BD2A5BC5F3006549B1 /* Build configuration list for PBXLegacyTarget "Build Connlib" */;
buildPhases = (
);
buildToolPath = "${CONNLIB_SOURCE_DIR}/build-rust.sh";
buildWorkingDirectory = "${CONNLIB_SOURCE_DIR}";
buildToolPath = "$(CONNLIB_SOURCE_DIR)/build-rust.sh";
buildWorkingDirectory = "$(CONNLIB_SOURCE_DIR)";
dependencies = (
);
name = "Build Connlib";
@@ -545,9 +545,10 @@
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_iOS.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "$(inherited)";
CODE_SIGN_STYLE = "$(inherited)";
CURRENT_PROJECT_VERSION = 0;
DEVELOPMENT_TEAM = "$(inherited)";
FRAMEWORK_SEARCH_PATHS = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
@@ -558,15 +559,15 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "${CONNLIB_TARGET_DIR}/aarch64-apple-ios/debug";
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(CONNLIB_TARGET_DIR)/aarch64-apple-ios/debug";
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.20231001.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-lconnlib";
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "23402aaa-f72c-4947-a795-23a9cf495968";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = iphoneos;
@@ -586,9 +587,10 @@
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_iOS.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "$(inherited)";
CODE_SIGN_STYLE = "$(inherited)";
CURRENT_PROJECT_VERSION = 0;
DEVELOPMENT_TEAM = "$(inherited)";
FRAMEWORK_SEARCH_PATHS = "";
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
@@ -599,14 +601,14 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "${CONNLIB_TARGET_DIR}/aarch64-apple-ios/release";
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(CONNLIB_TARGET_DIR)/aarch64-apple-ios/release";
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
MARKETING_VERSION = 1.20231001.0;
OTHER_LDFLAGS = "-lconnlib";
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "23402aaa-f72c-4947-a795-23a9cf495968";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = iphoneos;
@@ -626,10 +628,11 @@
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_macOS.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "$(inherited)";
CODE_SIGN_STYLE = "$(inherited)";
CURRENT_PROJECT_VERSION = 0;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "$(inherited)";
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
@@ -646,10 +649,10 @@
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(CONNLIB_TARGET_DIR)/x86_64-apple-darwin/debug";
MARKETING_VERSION = 1.20231001.0;
OTHER_LDFLAGS = "-lconnlib";
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "1e965794-0b2c-46d3-a955-d96aacf25546";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
SDKROOT = macosx;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = macosx;
@@ -668,10 +671,11 @@
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_macOS.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "$(inherited)";
CODE_SIGN_STYLE = "$(inherited)";
CURRENT_PROJECT_VERSION = 0;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "$(inherited)";
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
@@ -688,10 +692,10 @@
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(CONNLIB_TARGET_DIR)/x86_64-apple-darwin/release";
MARKETING_VERSION = 1.20231001.0;
OTHER_LDFLAGS = "-lconnlib";
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "1e965794-0b2c-46d3-a955-d96aacf25546";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
SDKROOT = macosx;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = macosx;
@@ -731,7 +735,7 @@
};
8DCC024128D512AE007E12D2 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */;
baseConfigurationReference = 8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -762,6 +766,8 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CONNLIB_SOURCE_DIR = "$(PROJECT_DIR)/../../rust/connlib/clients/apple";
CONNLIB_TARGET_DIR = "$(PROJECT_DIR)/../../rust/target";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
@@ -794,7 +800,7 @@
};
8DCC024228D512AE007E12D2 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */;
baseConfigurationReference = 8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -825,6 +831,8 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CONNLIB_SOURCE_DIR = "$(PROJECT_DIR)/../../rust/connlib/clients/apple";
CONNLIB_TARGET_DIR = "$(PROJECT_DIR)/../../rust/target";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
@@ -856,12 +864,11 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Firezone/Firezone.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "$(inherited)";
CODE_SIGN_STYLE = "$(inherited)";
CURRENT_PROJECT_VERSION = 0;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = NO;
DEVELOPMENT_ASSET_PATHS = "\"Firezone/Preview Content\"";
DEVELOPMENT_TEAM = "$(inherited)";
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -879,11 +886,11 @@
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MARKETING_VERSION = 1.20231001.0;
OTHER_LDFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}";
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "b32a5853-699d-4f19-85d3-5b13b1ac5dbb";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "70055d90-0252-4ee5-a60c-4d6f3840ee62";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos macosx";
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -906,12 +913,13 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Firezone/Firezone.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "$(inherited)";
CODE_SIGN_STYLE = "$(inherited)";
CURRENT_PROJECT_VERSION = 0;
DEAD_CODE_STRIPPING = YES;
DEFINES_MODULE = NO;
DEVELOPMENT_ASSET_PATHS = "\"Firezone/Preview Content\"";
DEVELOPMENT_TEAM = "$(inherited)";
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -928,12 +936,12 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MARKETING_VERSION = 1.20231001.0;
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}";
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited)";
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "b32a5853-699d-4f19-85d3-5b13b1ac5dbb";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "70055d90-0252-4ee5-a60c-4d6f3840ee62";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos macosx";
SWIFT_EMIT_LOC_STRINGS = YES;

View File

@@ -10,7 +10,7 @@
<true/>
<key>com.apple.security.application-groups</key>
<array>
<string>${APP_GROUP_ID}</string>
<string>$(APP_GROUP_ID)</string>
</array>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>

View File

@@ -16,7 +16,7 @@
</dict>
</array>
<key>AppGroupIdentifier</key>
<string>${APP_GROUP_ID}</string>
<string>$(APP_GROUP_ID)</string>
<key>AuthURLScheme</key>
<string>$(AUTH_URL_SCHEME)</string>
<key>AuthURLHost</key>

View File

@@ -1,3 +0,0 @@
#include "Developer.xcconfig"
#include "Server.xcconfig"
#include "Build.xcconfig"

View File

@@ -1,5 +0,0 @@
CONNLIB_SOURCE_DIR=${PROJECT_DIR}/../../rust/connlib/clients/apple
CONNLIB_TARGET_DIR=${PROJECT_DIR}/../../rust/target
APP_GROUP_ID[sdk=macosx*] = ${DEVELOPMENT_TEAM}.group.${APP_ID}
APP_GROUP_ID[sdk=iphoneos*] = group.${APP_ID}

View File

@@ -1,2 +0,0 @@
DEVELOPMENT_TEAM = 47R2M6779T
APP_ID = dev.firezone.firezone

View File

@@ -1,7 +0,0 @@
// You Apple developer account's Team ID
DEVELOPMENT_TEAM = <team_id>
// The bundle identifier of the apps.
// Should be an app id created at developer.apple.com
// with Network Extensions capability.
APP_ID = <app_id>

View File

@@ -1,4 +0,0 @@
AUTH_URL_SCHEME = http
AUTH_URL_HOST = localhost:8080
CONTROL_PLANE_URL_SCHEME = ws
CONTROL_PLANE_URL_HOST = localhost:8081

View File

@@ -1,4 +0,0 @@
AUTH_URL_SCHEME = https
AUTH_URL_HOST = app.firez.one
CONTROL_PLANE_URL_SCHEME = wss
CONTROL_PLANE_URL_HOST = api.firez.one

View File

@@ -1,13 +0,0 @@
// This file configures the Authentication URL and the Control Plane URL
// http or https
AUTH_URL_SCHEME = <auth_uri_scheme>
// auth host and optional port, e.g. app.firezone.dev:443
AUTH_URL_HOST = <auth_uri_host>
// websocket scheme, ws or wss
CONTROL_PLANE_URL_SCHEME = <control_plane_websocket_uri_scheme>
// control plane host and optional port, e.g. app.firezone.dev:443
CONTROL_PLANE_URL_HOST = <control_plane_websocket_uri_host>

View File

@@ -0,0 +1,12 @@
// Apple Developer account-specific configuration
DEVELOPMENT_TEAM = 47R2M6779T
PRODUCT_BUNDLE_IDENTIFIER = dev.firezone.firezone
APP_GROUP_ID[sdk=macosx*] = 47R2M6779T.group.dev.firezone.firezone
APP_GROUP_ID[sdk=iphoneos*] = group.dev.firezone.firezone
CODE_SIGN_STYLE = Automatic
// Portal Auth
AUTH_URL_SCHEME = http
AUTH_URL_HOST = localhost:8080
CONTROL_PLANE_URL_SCHEME = ws
CONTROL_PLANE_URL_HOST = localhost:8081

View File

@@ -0,0 +1,17 @@
// Apple Developer account-specific configuration
DEVELOPMENT_TEAM = 47R2M6779T
PRODUCT_BUNDLE_IDENTIFIER = dev.firezone.firezone
APP_GROUP_ID[sdk=macosx*] = 47R2M6779T.group.dev.firezone.firezone
APP_GROUP_ID[sdk=iphoneos*] = group.dev.firezone.firezone
CODE_SIGN_STYLE = Manual
CODE_SIGN_IDENTITY = Apple Distribution: Firezone, Inc. (47R2M6779T)
IOS_APP_PROVISIONING_PROFILE_IDENTIFIER = b32a5853-699d-4f19-85d3-5b13b1ac5dbb
MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER = 70055d90-0252-4ee5-a60c-4d6f3840ee62
IOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 23402aaa-f72c-4947-a795-23a9cf495968
MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 1e965794-0b2c-46d3-a955-d96aacf25546
// Portal Auth
AUTH_URL_SCHEME = https
AUTH_URL_HOST = app.firezone.dev
CONTROL_PLANE_URL_SCHEME = wss
CONTROL_PLANE_URL_HOST = api.firezone.dev

View File

@@ -0,0 +1,17 @@
// Apple Developer account-specific configuration
DEVELOPMENT_TEAM = 47R2M6779T
PRODUCT_BUNDLE_IDENTIFIER = dev.firezone.firezone
APP_GROUP_ID[sdk=macosx*] = 47R2M6779T.group.dev.firezone.firezone
APP_GROUP_ID[sdk=iphoneos*] = group.dev.firezone.firezone
CODE_SIGN_STYLE = Manual
CODE_SIGN_IDENTITY = Apple Distribution: Firezone, Inc. (47R2M6779T)
IOS_APP_PROVISIONING_PROFILE_IDENTIFIER = b32a5853-699d-4f19-85d3-5b13b1ac5dbb
MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER = 70055d90-0252-4ee5-a60c-4d6f3840ee62
IOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 23402aaa-f72c-4947-a795-23a9cf495968
MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 1e965794-0b2c-46d3-a955-d96aacf25546
// Portal Auth
AUTH_URL_SCHEME = https
AUTH_URL_HOST = app.firez.one
CONTROL_PLANE_URL_SCHEME = wss
CONTROL_PLANE_URL_HOST = api.firez.one

View File

@@ -13,12 +13,12 @@ struct AppInfoPlistConstants {
guard let urlScheme = (infoPlistDictionary?["AuthURLScheme"] as? String), !urlScheme.isEmpty
else {
fatalError(
"AuthURLScheme missing in app's Info.plist. Please define AUTH_URL_SCHEME in Server.xcconfig."
"AuthURLScheme missing in app's Info.plist. Please define AUTH_URL_SCHEME in config.xcconfig."
)
}
guard let urlHost = (infoPlistDictionary?["AuthURLHost"] as? String), !urlHost.isEmpty else {
fatalError(
"AuthURLHost missing in app's Info.plist. Please define AUTH_URL_HOST in Server.xcconfig.")
"AuthURLHost missing in app's Info.plist. Please define AUTH_URL_HOST in config.xcconfig.")
}
let urlString = "\(urlScheme)://\(urlHost)/"
guard let url = URL(string: urlString) else {
@@ -33,13 +33,13 @@ struct AppInfoPlistConstants {
!urlScheme.isEmpty
else {
fatalError(
"ControlPlaneURLScheme missing in app's Info.plist. Please define CONTROL_PLANE_URL_SCHEME in Server.xcconfig."
"ControlPlaneURLScheme missing in app's Info.plist. Please define CONTROL_PLANE_URL_SCHEME in config.xcconfig."
)
}
guard let urlHost = (infoPlistDictionary?["ControlPlaneURLHost"] as? String), !urlHost.isEmpty
else {
fatalError(
"ControlPlaneURLHost missing in app's Info.plist. Please define CONTROL_PLANE_URL_HOST in Server.xcconfig."
"ControlPlaneURLHost missing in app's Info.plist. Please define CONTROL_PLANE_URL_HOST in config.xcconfig."
)
}
let urlString = "\(urlScheme)://\(urlHost)/"

View File

@@ -8,7 +8,7 @@
</array>
<key>com.apple.security.application-groups</key>
<array>
<string>${APP_GROUP_ID}</string>
<string>$(APP_GROUP_ID)</string>
</array>
</dict>
</plist>

View File

@@ -8,7 +8,7 @@
</array>
<key>com.apple.security.application-groups</key>
<array>
<string>${APP_GROUP_ID}</string>
<string>$(APP_GROUP_ID)</string>
</array>
<key>com.apple.security.app-sandbox</key>
<true/>

View File

@@ -10,6 +10,6 @@
<string>$(PRODUCT_MODULE_NAME).PacketTunnelProvider</string>
</dict>
<key>AppGroupIdentifier</key>
<string>${APP_GROUP_ID}</string>
<string>$(APP_GROUP_ID)</string>
</dict>
</plist>

View File

@@ -27,16 +27,11 @@ CI/CD pipeline.
cd swift/apple
```
1. Rename and populate xcconfig files:
1. Copy an appropriate xcconfig and edit as necessary:
```bash
cp Firezone/xcconfig/Developer.xcconfig.firezone Firezone/xcconfig/Developer.xcconfig
vim Firezone/xcconfig/Developer.xcconfig
```
```bash
cp Firezone/xcconfig/Server.xcconfig.template Firezone/xcconfig/Server.xcconfig
vim Firezone/xcconfig/Server.xcconfig
cp Firezone/xcconfig/dev.xcconfig Firezone/xcconfig/config.xcconfig
vim Firezone/xcconfig/config.xcconfig
```
1. Open project in Xcode:
@@ -45,7 +40,7 @@ CI/CD pipeline.
open Firezone.xcodeproj
```
Build the Firezone target
1. Build the Firezone target
## Debugging

View File

@@ -14,9 +14,9 @@ fi
DEST=./FirezoneNetworkExtension/Connlib
if [[ -n "$CONNLIB_SOURCE_DIR" ]]; then
set -x
rm -rf ${DEST}
find ${CONNLIB_SOURCE_DIR}/Sources/Connlib
cp -r ${CONNLIB_SOURCE_DIR}/Sources/Connlib ${DEST}
rm -rf $DEST
find $CONNLIB_SOURCE_DIR/Sources/Connlib
cp -r $CONNLIB_SOURCE_DIR/Sources/Connlib $DEST
set +x
else
echo "CONNLIB_SOURCE_DIR is not set. Is this being invoked from Xcode?"