oficina / meet Public

Prepare sandboxed Mac and iOS TestFlight packaging

Paul Campbell pushed by paul@keymail.dev 4804d658978e85ca22deb36751922143e7c4b56a parent 3846ca4
10 files changed, +540 −5
  • native/PrivacyInfo.xcprivacy +17 −0
  • native/apple/Sources/CallsMac/CallsMac.swift +11 −5
  • native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png binary
  • native/ios/project.yml +2 −0
  • native/macos/AppIcon.icns binary
  • native/macos/AppStore.entitlements +18 −0
  • native/macos/Info.plist +34 −0
  • native/macos/MeetMacStore.xcodeproj/project.pbxproj +401 −0
  • native/macos/MeetMacStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 −0
  • native/macos/project.yml +50 −0
diff --git a/native/PrivacyInfo.xcprivacy b/native/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000..f2b2d34
--- /dev/null
+++ b/native/PrivacyInfo.xcprivacy
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>NSPrivacyAccessedAPITypes</key>
+ <array>
+ <dict>
+ <key>NSPrivacyAccessedAPIType</key>
+ <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
+ <key>NSPrivacyAccessedAPITypeReasons</key>
+ <array>
+ <string>35F9.1</string>
+ </array>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/native/apple/Sources/CallsMac/CallsMac.swift b/native/apple/Sources/CallsMac/CallsMac.swift
index 1f4daf9..6c8fccc 100644
--- a/native/apple/Sources/CallsMac/CallsMac.swift
+++ b/native/apple/Sources/CallsMac/CallsMac.swift
@@ -1,4 +1,4 @@
-#if os(macOS)
+#if os(macOS) && canImport(RastrilloMacUpdates)
import RastrilloMacUpdates
#endif
import AppKit
@@ -8,7 +8,7 @@ import SwiftUI
import WebRTC
@main struct CallsMacApp: App {
- #if os(macOS)
+ #if os(macOS) && canImport(RastrilloMacUpdates)
@State private var updater = NativeUpdater()
#endif
@NSApplicationDelegateAdaptor(CallsAppDelegate.self) private var appDelegate
@@ -22,7 +22,9 @@ import WebRTC
.defaultSize(width: 1000, height: 760)
.commands {
CommandGroup(replacing: .newItem) {}
+ #if canImport(RastrilloMacUpdates)
NativeUpdateCommands(updater: updater)
+ #endif
}
}
}
@@ -48,9 +50,13 @@ final class CallsAppDelegate: NSObject, NSApplicationDelegate {
}
func applicationDidFinishLaunching(_ notification: Notification) {
- if let url = Bundle.main.url(forResource: "MacIcon", withExtension: "png")
- ?? Bundle.module.url(forResource: "MacIcon", withExtension: "png")
- {
+ let bundledIcon = Bundle.main.url(forResource: "MacIcon", withExtension: "png")
+ #if SWIFT_PACKAGE
+ let icon = bundledIcon ?? Bundle.module.url(forResource: "MacIcon", withExtension: "png")
+ #else
+ let icon = bundledIcon
+ #endif
+ if let url = icon {
NSApp.applicationIconImage = NSImage(contentsOf: url)
}
}
diff --git a/native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png
index 29baeff..1fe5fe9 100644
Binary files a/native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png and b/native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png differ
diff --git a/native/ios/project.yml b/native/ios/project.yml
index 185319d..2d27df6 100644
--- a/native/ios/project.yml
+++ b/native/ios/project.yml
@@ -21,6 +21,8 @@ targets:
- Assets.xcassets
- path: ../LICENSE.lucide
buildPhase: resources
+ - path: ../PrivacyInfo.xcprivacy
+ buildPhase: resources
info:
path: ../build/ios-info.plist
properties:
diff --git a/native/macos/AppIcon.icns b/native/macos/AppIcon.icns
new file mode 100644
index 0000000..0a967b6
Binary files /dev/null and b/native/macos/AppIcon.icns differ
diff --git a/native/macos/AppStore.entitlements b/native/macos/AppStore.entitlements
new file mode 100644
index 0000000..7c2b752
--- /dev/null
+++ b/native/macos/AppStore.entitlements
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>com.apple.security.app-sandbox</key>
+ <true/>
+ <key>com.apple.security.device.audio-input</key>
+ <true/>
+ <key>com.apple.security.device.camera</key>
+ <true/>
+ <key>com.apple.security.files.user-selected.read-write</key>
+ <true/>
+ <key>com.apple.security.network.client</key>
+ <true/>
+ <key>com.apple.security.network.server</key>
+ <true/>
+</dict>
+</plist>
diff --git a/native/macos/Info.plist b/native/macos/Info.plist
new file mode 100644
index 0000000..9a21cb5
--- /dev/null
+++ b/native/macos/Info.plist
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
+ <key>CFBundleDisplayName</key>
+ <string>Oficina Meet</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIconFile</key>
+ <string>AppIcon</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Oficina Meet</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>$(MARKETING_VERSION)</string>
+ <key>CFBundleVersion</key>
+ <string>$(CURRENT_PROJECT_VERSION)</string>
+ <key>LSApplicationCategoryType</key>
+ <string>public.app-category.productivity</string>
+ <key>NSCameraUsageDescription</key>
+ <string>Meet uses your camera to share video in a meeting.</string>
+ <key>NSHighResolutionCapable</key>
+ <true/>
+ <key>NSMicrophoneUsageDescription</key>
+ <string>Meet uses your microphone so people in the meeting can hear you.</string>
+</dict>
+</plist>
diff --git a/native/macos/MeetMacStore.xcodeproj/project.pbxproj b/native/macos/MeetMacStore.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..e1788bc
--- /dev/null
+++ b/native/macos/MeetMacStore.xcodeproj/project.pbxproj
@@ -0,0 +1,401 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 77;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 05066E461ACEE60802D809C0 /* WebRTC in Frameworks */ = {isa = PBXBuildFile; productRef = F0E70CEFFB09E06808893F4B /* WebRTC */; };
+ 26F3502D8CD76B08B574642A /* LICENSE.lucide in Resources */ = {isa = PBXBuildFile; fileRef = 76C6A00B28E8A726128DFAF1 /* LICENSE.lucide */; };
+ 351ADCE2450D52571C1E6E29 /* MeetKit in Frameworks */ = {isa = PBXBuildFile; productRef = 1AF329EACADB970F04CFA829 /* MeetKit */; };
+ 527248F93754F24645E28FED /* MacIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = E5D59E5B1E66E205BA27CEAB /* MacIcon.png */; };
+ 6919A2DE5F0C499C38086AE5 /* AppIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 322814B5BC6A583DD2B81C08 /* AppIcon.icns */; };
+ 916AD488A1811FB21BEC4416 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = B447EFEDBB0FF829D0EA2626 /* PrivacyInfo.xcprivacy */; };
+ A5913EFE357702E29277035C /* MeetMac.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C74CA980A184E4C5402F95F /* MeetMac.swift */; };
+ D5ADF0951C7F49A2437ACDF5 /* AppIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 3D3FE56C3D479D12CC83649B /* AppIcon.png */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 322814B5BC6A583DD2B81C08 /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = "<group>"; };
+ 3D3FE56C3D479D12CC83649B /* AppIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIcon.png; sourceTree = "<group>"; };
+ 6FC90E11FC0B3B846F219287 /* MeetMacStore.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MeetMacStore.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 76C6A00B28E8A726128DFAF1 /* LICENSE.lucide */ = {isa = PBXFileReference; path = LICENSE.lucide; sourceTree = "<group>"; };
+ 7C74CA980A184E4C5402F95F /* MeetMac.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MeetMac.swift; sourceTree = "<group>"; };
+ B447EFEDBB0FF829D0EA2626 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
+ D429F17E244E9936B3F1B6D6 /* apple */ = {isa = PBXFileReference; lastKnownFileType = folder; name = apple; path = ../apple; sourceTree = SOURCE_ROOT; };
+ E5D59E5B1E66E205BA27CEAB /* MacIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacIcon.png; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ CCA09DC1E33D9F6052D2D9EB /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 351ADCE2450D52571C1E6E29 /* MeetKit in Frameworks */,
+ 05066E461ACEE60802D809C0 /* WebRTC in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 1C23C9C45A424F448A4965BB /* Packages */ = {
+ isa = PBXGroup;
+ children = (
+ D429F17E244E9936B3F1B6D6 /* apple */,
+ );
+ name = Packages;
+ sourceTree = "<group>";
+ };
+ 5773FBB2EC1357D5D3B1897D /* native */ = {
+ isa = PBXGroup;
+ children = (
+ 76C6A00B28E8A726128DFAF1 /* LICENSE.lucide */,
+ B447EFEDBB0FF829D0EA2626 /* PrivacyInfo.xcprivacy */,
+ );
+ name = native;
+ path = ..;
+ sourceTree = "<group>";
+ };
+ 79DE7DEC805C498BFD510885 = {
+ isa = PBXGroup;
+ children = (
+ 322814B5BC6A583DD2B81C08 /* AppIcon.icns */,
+ A3FDC8A0A5650A8052041393 /* MeetMac */,
+ 5773FBB2EC1357D5D3B1897D /* native */,
+ 1C23C9C45A424F448A4965BB /* Packages */,
+ DBC81C41C5B66D3A24A30263 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ A3FDC8A0A5650A8052041393 /* MeetMac */ = {
+ isa = PBXGroup;
+ children = (
+ 7C74CA980A184E4C5402F95F /* MeetMac.swift */,
+ F5D2483712F335C0BD632AE1 /* Resources */,
+ );
+ name = MeetMac;
+ path = ../apple/Sources/MeetMac;
+ sourceTree = "<group>";
+ };
+ DBC81C41C5B66D3A24A30263 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 6FC90E11FC0B3B846F219287 /* MeetMacStore.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ F5D2483712F335C0BD632AE1 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 3D3FE56C3D479D12CC83649B /* AppIcon.png */,
+ E5D59E5B1E66E205BA27CEAB /* MacIcon.png */,
+ );
+ path = Resources;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 108830CED49096A124B24DB6 /* MeetMacStore */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 7A0F1610DB706CD8E023C3A6 /* Build configuration list for PBXNativeTarget "MeetMacStore" */;
+ buildPhases = (
+ 56E1BEE6B667B3A1C53B717A /* Sources */,
+ F096E0FE546DD736C85443E3 /* Resources */,
+ CCA09DC1E33D9F6052D2D9EB /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = MeetMacStore;
+ packageProductDependencies = (
+ 1AF329EACADB970F04CFA829 /* MeetKit */,
+ F0E70CEFFB09E06808893F4B /* WebRTC */,
+ );
+ productName = MeetMacStore;
+ productReference = 6FC90E11FC0B3B846F219287 /* MeetMacStore.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 894E13F6CBCB6C85C02BC5B7 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 1430;
+ TargetAttributes = {
+ 108830CED49096A124B24DB6 = {
+ ProvisioningStyle = Automatic;
+ };
+ };
+ };
+ buildConfigurationList = 7CF4F46A9DA3BAA00998497A /* Build configuration list for PBXProject "MeetMacStore" */;
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ Base,
+ en,
+ );
+ mainGroup = 79DE7DEC805C498BFD510885;
+ minimizedProjectReferenceProxies = 1;
+ packageReferences = (
+ BDB294A7341F59D2F7268CDA /* XCRemoteSwiftPackageReference "WebRTC" */,
+ 9522B83B5A005EA03C606C3A /* XCLocalSwiftPackageReference "../apple" */,
+ );
+ preferredProjectObjectVersion = 77;
+ productRefGroup = DBC81C41C5B66D3A24A30263 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 108830CED49096A124B24DB6 /* MeetMacStore */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ F096E0FE546DD736C85443E3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 6919A2DE5F0C499C38086AE5 /* AppIcon.icns in Resources */,
+ D5ADF0951C7F49A2437ACDF5 /* AppIcon.png in Resources */,
+ 26F3502D8CD76B08B574642A /* LICENSE.lucide in Resources */,
+ 527248F93754F24645E28FED /* MacIcon.png in Resources */,
+ 916AD488A1811FB21BEC4416 /* PrivacyInfo.xcprivacy in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 56E1BEE6B667B3A1C53B717A /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A5913EFE357702E29277035C /* MeetMac.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 4B5599082FC155BFB23DBA0F /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_ENTITLEMENTS = AppStore.entitlements;
+ COMBINE_HIDPI_IMAGES = YES;
+ INFOPLIST_FILE = Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = net.amadan.oficina.meet;
+ SDKROOT = macosx;
+ };
+ name = Release;
+ };
+ 6ACDC7AE3CD166CA6FC5B1ED /* 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ 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;
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 3;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_HARDENED_RUNTIME = YES;
+ 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 = (
+ "$(inherited)",
+ "DEBUG=1",
+ );
+ 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;
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
+ MARKETING_VERSION = 0.1.0;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ };
+ name = Debug;
+ };
+ A9DD470146E5211590FE2E8D /* 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ 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;
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 3;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_HARDENED_RUNTIME = YES;
+ 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;
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
+ MARKETING_VERSION = 0.1.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ SWIFT_VERSION = 5.0;
+ };
+ name = Release;
+ };
+ CA75EE02AAFECF5D7B31AACD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CODE_SIGN_ENTITLEMENTS = AppStore.entitlements;
+ COMBINE_HIDPI_IMAGES = YES;
+ INFOPLIST_FILE = Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ );
+ PRODUCT_BUNDLE_IDENTIFIER = net.amadan.oficina.meet;
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 7A0F1610DB706CD8E023C3A6 /* Build configuration list for PBXNativeTarget "MeetMacStore" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ CA75EE02AAFECF5D7B31AACD /* Debug */,
+ 4B5599082FC155BFB23DBA0F /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ 7CF4F46A9DA3BAA00998497A /* Build configuration list for PBXProject "MeetMacStore" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 6ACDC7AE3CD166CA6FC5B1ED /* Debug */,
+ A9DD470146E5211590FE2E8D /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+/* End XCConfigurationList section */
+
+/* Begin XCLocalSwiftPackageReference section */
+ 9522B83B5A005EA03C606C3A /* XCLocalSwiftPackageReference "../apple" */ = {
+ isa = XCLocalSwiftPackageReference;
+ relativePath = ../apple;
+ };
+/* End XCLocalSwiftPackageReference section */
+
+/* Begin XCRemoteSwiftPackageReference section */
+ BDB294A7341F59D2F7268CDA /* XCRemoteSwiftPackageReference "WebRTC" */ = {
+ isa = XCRemoteSwiftPackageReference;
+ repositoryURL = "https://github.com/stasel/WebRTC.git";
+ requirement = {
+ kind = exactVersion;
+ version = 152.0.0;
+ };
+ };
+/* End XCRemoteSwiftPackageReference section */
+
+/* Begin XCSwiftPackageProductDependency section */
+ 1AF329EACADB970F04CFA829 /* MeetKit */ = {
+ isa = XCSwiftPackageProductDependency;
+ productName = MeetKit;
+ };
+ F0E70CEFFB09E06808893F4B /* WebRTC */ = {
+ isa = XCSwiftPackageProductDependency;
+ package = BDB294A7341F59D2F7268CDA /* XCRemoteSwiftPackageReference "WebRTC" */;
+ productName = WebRTC;
+ };
+/* End XCSwiftPackageProductDependency section */
+ };
+ rootObject = 894E13F6CBCB6C85C02BC5B7 /* Project object */;
+}
diff --git a/native/macos/MeetMacStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/native/macos/MeetMacStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/native/macos/MeetMacStore.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:">
+ </FileRef>
+</Workspace>
diff --git a/native/macos/project.yml b/native/macos/project.yml
new file mode 100644
index 0000000..30444fc
--- /dev/null
+++ b/native/macos/project.yml
@@ -0,0 +1,50 @@
+name: MeetMacStore
+options:
+ deploymentTarget:
+ macOS: '14.0'
+packages:
+ MeetNative:
+ path: ../apple
+ WebRTC:
+ url: https://github.com/stasel/WebRTC.git
+ exactVersion: 152.0.0
+settings:
+ base:
+ SWIFT_VERSION: '5.0'
+ CODE_SIGN_STYLE: Automatic
+ MARKETING_VERSION: '0.1.0'
+ CURRENT_PROJECT_VERSION: '3'
+ ENABLE_HARDENED_RUNTIME: YES
+targets:
+ MeetMacStore:
+ type: application
+ platform: macOS
+ sources:
+ - ../apple/Sources/MeetMac
+ - path: AppIcon.icns
+ buildPhase: resources
+ - path: ../LICENSE.lucide
+ buildPhase: resources
+ - path: ../PrivacyInfo.xcprivacy
+ buildPhase: resources
+ dependencies:
+ - package: MeetNative
+ product: MeetKit
+ - package: WebRTC
+ product: WebRTC
+ info:
+ path: Info.plist
+ properties:
+ CFBundleDisplayName: Oficina Meet
+ CFBundleName: Oficina Meet
+ CFBundleShortVersionString: $(MARKETING_VERSION)
+ CFBundleVersion: $(CURRENT_PROJECT_VERSION)
+ CFBundleIconFile: AppIcon
+ LSApplicationCategoryType: public.app-category.productivity
+ NSHighResolutionCapable: true
+ NSCameraUsageDescription: Meet uses your camera to share video in a meeting.
+ NSMicrophoneUsageDescription: Meet uses your microphone so people in the meeting can hear you.
+ settings:
+ base:
+ PRODUCT_BUNDLE_IDENTIFIER: net.amadan.oficina.meet
+ CODE_SIGN_ENTITLEMENTS: AppStore.entitlements