This basically regenerates the app project & fixes the request sending,
and sets the app icon
This commit is contained in:
Lncvrt committed 2026-03-24 23:43:46 -07:00
1 parent 7828d258e7
commit b022d2250e
35 files changed
+193 -340

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
.DS_Store
# Xcode # Xcode
# #
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
+97 -319
View File
@@ -6,31 +6,12 @@
objectVersion = 77; objectVersion = 77;
objects = { objects = {
/* Begin PBXContainerItemProxy section */
1F0A4FFA2DFB7EE0001678C8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1F0A4FE32DFB7EDB001678C8 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1F0A4FEA2DFB7EDB001678C8;
remoteInfo = "Berry Leaderboards";
};
1F0A50042DFB7EE0001678C8 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 1F0A4FE32DFB7EDB001678C8 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1F0A4FEA2DFB7EDB001678C8;
remoteInfo = "Berry Leaderboards";
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
1F0A4FEB2DFB7EDB001678C8 /* Berry Leaderboards.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Berry Leaderboards.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 1FF5C7852F73B80400A92689 /* Berry Leaderboards.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Berry Leaderboards.app"; sourceTree = BUILT_PRODUCTS_DIR; };
1F0A4FF92DFB7EE0001678C8 /* Berry LeaderboardsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Berry LeaderboardsTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
1F0A50032DFB7EE0001678C8 /* Berry LeaderboardsUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Berry LeaderboardsUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFileSystemSynchronizedRootGroup section */
1F0A4FED2DFB7EDB001678C8 /* Berry Leaderboards */ = { 1FF5C7872F73B80400A92689 /* Berry Leaderboards */ = {
isa = PBXFileSystemSynchronizedRootGroup; isa = PBXFileSystemSynchronizedRootGroup;
path = "Berry Leaderboards"; path = "Berry Leaderboards";
sourceTree = "<group>"; sourceTree = "<group>";
@@ -38,21 +19,7 @@
/* End PBXFileSystemSynchronizedRootGroup section */ /* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
1F0A4FE82DFB7EDB001678C8 /* Frameworks */ = { 1FF5C7822F73B80400A92689 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1F0A4FF62DFB7EE0001678C8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1F0A50002DFB7EE0001678C8 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@@ -62,20 +29,18 @@
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
1F0A4FE22DFB7EDB001678C8 = { 1FF5C77C2F73B80400A92689 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
1F0A4FED2DFB7EDB001678C8 /* Berry Leaderboards */, 1FF5C7872F73B80400A92689 /* Berry Leaderboards */,
1F0A4FEC2DFB7EDB001678C8 /* Products */, 1FF5C7862F73B80400A92689 /* Products */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
1F0A4FEC2DFB7EDB001678C8 /* Products */ = { 1FF5C7862F73B80400A92689 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
1F0A4FEB2DFB7EDB001678C8 /* Berry Leaderboards.app */, 1FF5C7852F73B80400A92689 /* Berry Leaderboards.app */,
1F0A4FF92DFB7EE0001678C8 /* Berry LeaderboardsTests.xctest */,
1F0A50032DFB7EE0001678C8 /* Berry LeaderboardsUITests.xctest */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -83,128 +48,64 @@
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
1F0A4FEA2DFB7EDB001678C8 /* Berry Leaderboards */ = { 1FF5C7842F73B80400A92689 /* Berry Leaderboards */ = {
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 1F0A500D2DFB7EE0001678C8 /* Build configuration list for PBXNativeTarget "Berry Leaderboards" */; buildConfigurationList = 1FF5C7902F73B80500A92689 /* Build configuration list for PBXNativeTarget "Berry Leaderboards" */;
buildPhases = ( buildPhases = (
1F0A4FE72DFB7EDB001678C8 /* Sources */, 1FF5C7812F73B80400A92689 /* Sources */,
1F0A4FE82DFB7EDB001678C8 /* Frameworks */, 1FF5C7822F73B80400A92689 /* Frameworks */,
1F0A4FE92DFB7EDB001678C8 /* Resources */, 1FF5C7832F73B80400A92689 /* Resources */,
); );
buildRules = ( buildRules = (
); );
dependencies = ( dependencies = (
); );
fileSystemSynchronizedGroups = ( fileSystemSynchronizedGroups = (
1F0A4FED2DFB7EDB001678C8 /* Berry Leaderboards */, 1FF5C7872F73B80400A92689 /* Berry Leaderboards */,
); );
name = "Berry Leaderboards"; name = "Berry Leaderboards";
packageProductDependencies = ( packageProductDependencies = (
); );
productName = "Berry Leaderboards"; productName = "Berry Leaderboards";
productReference = 1F0A4FEB2DFB7EDB001678C8 /* Berry Leaderboards.app */; productReference = 1FF5C7852F73B80400A92689 /* Berry Leaderboards.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
1F0A4FF82DFB7EE0001678C8 /* Berry LeaderboardsTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1F0A50102DFB7EE0001678C8 /* Build configuration list for PBXNativeTarget "Berry LeaderboardsTests" */;
buildPhases = (
1F0A4FF52DFB7EE0001678C8 /* Sources */,
1F0A4FF62DFB7EE0001678C8 /* Frameworks */,
1F0A4FF72DFB7EE0001678C8 /* Resources */,
);
buildRules = (
);
dependencies = (
1F0A4FFB2DFB7EE0001678C8 /* PBXTargetDependency */,
);
name = "Berry LeaderboardsTests";
packageProductDependencies = (
);
productName = "Berry LeaderboardsTests";
productReference = 1F0A4FF92DFB7EE0001678C8 /* Berry LeaderboardsTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
1F0A50022DFB7EE0001678C8 /* Berry LeaderboardsUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1F0A50132DFB7EE0001678C8 /* Build configuration list for PBXNativeTarget "Berry LeaderboardsUITests" */;
buildPhases = (
1F0A4FFF2DFB7EE0001678C8 /* Sources */,
1F0A50002DFB7EE0001678C8 /* Frameworks */,
1F0A50012DFB7EE0001678C8 /* Resources */,
);
buildRules = (
);
dependencies = (
1F0A50052DFB7EE0001678C8 /* PBXTargetDependency */,
);
name = "Berry LeaderboardsUITests";
packageProductDependencies = (
);
productName = "Berry LeaderboardsUITests";
productReference = 1F0A50032DFB7EE0001678C8 /* Berry LeaderboardsUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
/* Begin PBXProject section */ /* Begin PBXProject section */
1F0A4FE32DFB7EDB001678C8 /* Project object */ = { 1FF5C77D2F73B80400A92689 /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
BuildIndependentTargetsInParallel = 1; BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1640; LastSwiftUpdateCheck = 2630;
LastUpgradeCheck = 1640; LastUpgradeCheck = 2630;
TargetAttributes = { TargetAttributes = {
1F0A4FEA2DFB7EDB001678C8 = { 1FF5C7842F73B80400A92689 = {
CreatedOnToolsVersion = 16.4; CreatedOnToolsVersion = 26.3;
};
1F0A4FF82DFB7EE0001678C8 = {
CreatedOnToolsVersion = 16.4;
TestTargetID = 1F0A4FEA2DFB7EDB001678C8;
};
1F0A50022DFB7EE0001678C8 = {
CreatedOnToolsVersion = 16.4;
TestTargetID = 1F0A4FEA2DFB7EDB001678C8;
}; };
}; };
}; };
buildConfigurationList = 1F0A4FE62DFB7EDB001678C8 /* Build configuration list for PBXProject "Berry Leaderboards" */; buildConfigurationList = 1FF5C7802F73B80400A92689 /* Build configuration list for PBXProject "Berry Leaderboards" */;
developmentRegion = en; developmentRegion = en;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
knownRegions = ( knownRegions = (
en, en,
Base, Base,
); );
mainGroup = 1F0A4FE22DFB7EDB001678C8; mainGroup = 1FF5C77C2F73B80400A92689;
minimizedProjectReferenceProxies = 1; minimizedProjectReferenceProxies = 1;
preferredProjectObjectVersion = 77; preferredProjectObjectVersion = 77;
productRefGroup = 1F0A4FEC2DFB7EDB001678C8 /* Products */; productRefGroup = 1FF5C7862F73B80400A92689 /* Products */;
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
targets = ( targets = (
1F0A4FEA2DFB7EDB001678C8 /* Berry Leaderboards */, 1FF5C7842F73B80400A92689 /* Berry Leaderboards */,
1F0A4FF82DFB7EE0001678C8 /* Berry LeaderboardsTests */,
1F0A50022DFB7EE0001678C8 /* Berry LeaderboardsUITests */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */ /* Begin PBXResourcesBuildPhase section */
1F0A4FE92DFB7EDB001678C8 /* Resources */ = { 1FF5C7832F73B80400A92689 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1F0A4FF72DFB7EE0001678C8 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1F0A50012DFB7EE0001678C8 /* Resources */ = {
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@@ -214,21 +115,7 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
1F0A4FE72DFB7EDB001678C8 /* Sources */ = { 1FF5C7812F73B80400A92689 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1F0A4FF52DFB7EE0001678C8 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
1F0A4FFF2DFB7EE0001678C8 /* Sources */ = {
isa = PBXSourcesBuildPhase; isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@@ -237,21 +124,8 @@
}; };
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
1F0A4FFB2DFB7EE0001678C8 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1F0A4FEA2DFB7EDB001678C8 /* Berry Leaderboards */;
targetProxy = 1F0A4FFA2DFB7EE0001678C8 /* PBXContainerItemProxy */;
};
1F0A50052DFB7EE0001678C8 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 1F0A4FEA2DFB7EDB001678C8 /* Berry Leaderboards */;
targetProxy = 1F0A50042DFB7EE0001678C8 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */ /* Begin XCBuildConfiguration section */
1F0A500B2DFB7EE0001678C8 /* Debug */ = { 1FF5C78E2F73B80500A92689 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
@@ -286,7 +160,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf; DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = UA7XPYM6ZB; DEVELOPMENT_TEAM = 265636CTKR;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES; ENABLE_TESTABILITY = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -305,15 +179,17 @@
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MACOSX_DEPLOYMENT_TARGET = 26.2;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
}; };
name = Debug; name = Debug;
}; };
1F0A500C2DFB7EE0001678C8 /* Release */ = { 1FF5C78F2F73B80500A92689 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
@@ -348,7 +224,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = UA7XPYM6ZB; DEVELOPMENT_TEAM = 265636CTKR;
ENABLE_NS_ASSERTIONS = NO; ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_USER_SCRIPT_SANDBOXING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -361,220 +237,122 @@
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MACOSX_DEPLOYMENT_TARGET = 26.2;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
}; };
name = Release; name = Release;
}; };
1F0A500E2DFB7EE0001678C8 /* Debug */ = { 1FF5C7912F73B80500A92689 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "Berry Leaderboards/Berry_Leaderboards.entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = UA7XPYM6ZB; CURRENT_PROJECT_VERSION = 1.0.3;
DEVELOPMENT_TEAM = 265636CTKR;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
ENABLE_INCOMING_NETWORK_CONNECTIONS = NO;
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO;
ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO;
ENABLE_RESOURCE_ACCESS_CALENDARS = NO;
ENABLE_RESOURCE_ACCESS_CAMERA = NO;
ENABLE_RESOURCE_ACCESS_CONTACTS = NO;
ENABLE_RESOURCE_ACCESS_LOCATION = NO;
ENABLE_RESOURCE_ACCESS_PRINTING = NO;
ENABLE_RESOURCE_ACCESS_USB = NO;
ENABLE_USER_SELECTED_FILES = readonly;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; INFOPLIST_FILE = "Berry-Leaderboards-Info.plist";
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "";
"INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; LD_RUNPATH_SEARCH_PATHS = (
"INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; "$(inherited)",
"INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; "@executable_path/../Frameworks",
"INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; );
"INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; MARKETING_VERSION = 1.0.3;
"INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; PRODUCT_BUNDLE_IDENTIFIER = xyz.lncvrt.berryleaderboards;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 16.6;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 13.5;
MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = "xyz.lncvrt.Berry-Leaderboards";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES; REGISTER_APP_GROUPS = YES;
SDKROOT = auto; STRING_CATALOG_GENERATE_SYMBOLS = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; SWIFT_APPROACHABLE_CONCURRENCY = YES;
SUPPORTS_MACCATALYST = NO; SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
}; };
name = Debug; name = Debug;
}; };
1F0A500F2DFB7EE0001678C8 /* Release */ = { 1FF5C7922F73B80500A92689 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "Berry Leaderboards/Berry_Leaderboards.entitlements";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = UA7XPYM6ZB; CURRENT_PROJECT_VERSION = 1.0.3;
DEVELOPMENT_TEAM = 265636CTKR;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
ENABLE_INCOMING_NETWORK_CONNECTIONS = NO;
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
ENABLE_RESOURCE_ACCESS_AUDIO_INPUT = NO;
ENABLE_RESOURCE_ACCESS_BLUETOOTH = NO;
ENABLE_RESOURCE_ACCESS_CALENDARS = NO;
ENABLE_RESOURCE_ACCESS_CAMERA = NO;
ENABLE_RESOURCE_ACCESS_CONTACTS = NO;
ENABLE_RESOURCE_ACCESS_LOCATION = NO;
ENABLE_RESOURCE_ACCESS_PRINTING = NO;
ENABLE_RESOURCE_ACCESS_USB = NO;
ENABLE_USER_SELECTED_FILES = readonly;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; INFOPLIST_FILE = "Berry-Leaderboards-Info.plist";
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "";
"INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; LD_RUNPATH_SEARCH_PATHS = (
"INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; "$(inherited)",
"INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; "@executable_path/../Frameworks",
"INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; );
"INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; MARKETING_VERSION = 1.0.3;
"INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; PRODUCT_BUNDLE_IDENTIFIER = xyz.lncvrt.berryleaderboards;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 16.6;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 13.5;
MARKETING_VERSION = 1.0.2;
PRODUCT_BUNDLE_IDENTIFIER = "xyz.lncvrt.Berry-Leaderboards";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES; REGISTER_APP_GROUPS = YES;
SDKROOT = auto; STRING_CATALOG_GENERATE_SYMBOLS = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; SWIFT_APPROACHABLE_CONCURRENCY = YES;
SUPPORTS_MACCATALYST = NO; SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
1F0A50112DFB7EE0001678C8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = UA7XPYM6ZB;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.6;
MACOSX_DEPLOYMENT_TARGET = 13.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "xyz.lncvrt.Berry-LeaderboardsTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Berry Leaderboards.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Berry Leaderboards";
};
name = Debug;
};
1F0A50122DFB7EE0001678C8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = UA7XPYM6ZB;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.6;
MACOSX_DEPLOYMENT_TARGET = 13.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "xyz.lncvrt.Berry-LeaderboardsTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Berry Leaderboards.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Berry Leaderboards";
};
name = Release;
};
1F0A50142DFB7EE0001678C8 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = UA7XPYM6ZB;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.6;
MACOSX_DEPLOYMENT_TARGET = 13.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "xyz.lncvrt.Berry-LeaderboardsUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = "Berry Leaderboards";
};
name = Debug;
};
1F0A50152DFB7EE0001678C8 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = UA7XPYM6ZB;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.6;
MACOSX_DEPLOYMENT_TARGET = 13.5;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "xyz.lncvrt.Berry-LeaderboardsUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = "Berry Leaderboards";
}; };
name = Release; name = Release;
}; };
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
1F0A4FE62DFB7EDB001678C8 /* Build configuration list for PBXProject "Berry Leaderboards" */ = { 1FF5C7802F73B80400A92689 /* Build configuration list for PBXProject "Berry Leaderboards" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
1F0A500B2DFB7EE0001678C8 /* Debug */, 1FF5C78E2F73B80500A92689 /* Debug */,
1F0A500C2DFB7EE0001678C8 /* Release */, 1FF5C78F2F73B80500A92689 /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
1F0A500D2DFB7EE0001678C8 /* Build configuration list for PBXNativeTarget "Berry Leaderboards" */ = { 1FF5C7902F73B80500A92689 /* Build configuration list for PBXNativeTarget "Berry Leaderboards" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
1F0A500E2DFB7EE0001678C8 /* Debug */, 1FF5C7912F73B80500A92689 /* Debug */,
1F0A500F2DFB7EE0001678C8 /* Release */, 1FF5C7922F73B80500A92689 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1F0A50102DFB7EE0001678C8 /* Build configuration list for PBXNativeTarget "Berry LeaderboardsTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1F0A50112DFB7EE0001678C8 /* Debug */,
1F0A50122DFB7EE0001678C8 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
1F0A50132DFB7EE0001678C8 /* Build configuration list for PBXNativeTarget "Berry LeaderboardsUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
1F0A50142DFB7EE0001678C8 /* Debug */,
1F0A50152DFB7EE0001678C8 /* Release */,
); );
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 1F0A4FE32DFB7EDB001678C8 /* Project object */; rootObject = 1FF5C77D2F73B80400A92689 /* Project object */;
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

+45
View File
@@ -0,0 +1,45 @@
{
"fill" : {
"linear-gradient" : [
"srgb:0.39316,0.80977,0.74190,1.00000",
"srgb:0.13163,0.52615,0.33556,1.00000"
]
},
"groups" : [
{
"blur-material" : null,
"layers" : [
{
"blend-mode" : "normal",
"fill" : "none",
"glass" : false,
"hidden" : false,
"image-name" : "bird_1 2.png",
"name" : "bird_1 2",
"opacity" : 1,
"position" : {
"scale" : 0.45,
"translation-in-points" : [
0,
-100
]
}
}
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"translucency" : {
"enabled" : true,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}
@@ -1,11 +0,0 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

@@ -1 +0,0 @@
{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]}
@@ -1,6 +0,0 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
+1 -1
View File
@@ -76,7 +76,7 @@ struct ContentView: View {
} }
func loadLeaderboard() async throws -> [Player] { func loadLeaderboard() async throws -> [Player] {
let url = URL(string: "https://berrydash.lncvrt.xyz/database/getTopPlayersAPI.php")! let url = URL(string: "https://games.lncvrt.xyz/api/berrydash/leaderboard/score")!
let (data, _) = try await URLSession.shared.data(from: url) let (data, _) = try await URLSession.shared.data(from: url)
guard let raw = String(data: data, encoding: .utf8) else { return [] } guard let raw = String(data: data, encoding: .utf8) else { return [] }
return parseLeaderboard(raw) return parseLeaderboard(raw)
+44 -2
View File
@@ -7,12 +7,54 @@
import Foundation import Foundation
struct LeaderboardResponse: Codable {
let success: Bool
let message: String?
let data: [PlayerData]
}
struct PlayerData: Codable {
let id: Int
let username: String
let value: Int
let icon: IntOrString
let overlay: IntOrString
let birdColor: [Int]
let overlayColor: [Int]
let customIcon: String?
}
enum IntOrString: Codable {
case int(Int)
case string(String)
init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
if let int = try? container.decode(Int.self) {
self = .int(int)
} else if let str = try? container.decode(String.self) {
self = .string(str)
} else {
throw DecodingError.dataCorrupted(.init(codingPath: decoder.codingPath, debugDescription: "Invalid value"))
}
}
func encode(to encoder: Encoder) throws {
var container = encoder.singleValueContainer()
switch self {
case .int(let i): try container.encode(i)
case .string(let s): try container.encode(s)
}
}
}
struct Player: Codable { struct Player: Codable {
let username: String let username: String
let score: Int let score: Int
} }
func parseLeaderboard(_ raw: String) -> [Player] { func parseLeaderboard(_ raw: String) -> [Player] {
guard let data = raw.data(using: .utf8) else { return [] } guard let data = raw.data(using: .utf8) else { return [] }
return (try? JSONDecoder().decode([Player].self, from: data)) ?? [] guard let response = try? JSONDecoder().decode(LeaderboardResponse.self, from: data) else { return [] }
return response.data.map { Player(username: $0.username, score: $0.value) }
} }
+5
View File
@@ -0,0 +1,5 @@
<?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/>
</plist>