Compare commits

...

16 Commits

Author SHA1 Message Date
8385b205c3 Merge branch '0.227' into universalBuild 2023-10-18 10:19:18 +02:00
generatedunixname89002005306973
56c0cee119 Flipper Release: v0.227.0
Summary: Releasing version 0.227.0

Reviewed By: lblasa

Differential Revision: D50327905

fbshipit-source-id: 0d47229ec2d8710a5a07d8581ae86e77815ecef5
2023-10-16 11:31:18 -07:00
Lorenzo Blasa
833e4f0422 Remove non-existent entry from tsconfig.json
Summary: ^

Reviewed By: aigoncharov

Differential Revision: D50304142

fbshipit-source-id: c1d0d06b30ebdf10b20341d926efbd6a8c8eaa63
2023-10-16 10:22:55 -07:00
Andrey Goncharov
ee7736caee Add a more complex logger to Flipper UI Browser
Reviewed By: passy, lblasa

Differential Revision: D50223987

fbshipit-source-id: 108e1753b555c7d7b32d3fc2408c2f8efcbadb4d
2023-10-16 09:27:50 -07:00
Lorenzo Blasa
8a11043f37 Release build integration
Summary: This is the immediate follow-up from the previous diff which aims to integrate the MacOS app into our release build script, meta only.

Reviewed By: antonk52, aigoncharov

Differential Revision: D50301369

fbshipit-source-id: 23a4842666c3a7aa9616c6237e16b71bae87ba36
2023-10-16 08:35:48 -07:00
Andrey Goncharov
9ab0e84b1b Bring back transmitting server logs to the client
Reviewed By: lblasa

Differential Revision: D50263610

fbshipit-source-id: 652970f95ad50998c4c2f3f0e48cfce5a2d64cc1
2023-10-16 05:44:07 -07:00
Lorenzo Blasa
fe7a839b14 TokenProvider can fail if the server is offline
Summary: If the server is offline, the fetch request will fail and this was not properly handled.

Reviewed By: antonk52

Differential Revision: D50299455

fbshipit-source-id: dab8336dedaf93db049dc703a23f9e33935212be
2023-10-15 12:57:59 -07:00
Pascal Hartig
d40ccc8786 Update flipper-runtime icon in server app bundle
Summary: Changelog: When requesting Keychain Access, you will now see "flipper-runtime" instead of a generic "node" process.

Reviewed By: lblasa

Differential Revision: D50261830

fbshipit-source-id: ef6fd7d5099c4ff7370f0401a5de3fde1659f1f3
2023-10-13 09:01:21 -07:00
Michel Weststrate
8f056646d9 Back out "auto start server"
Summary:
Original commit changeset: 2c11e80429a2

Original Phabricator Diff: D50074673

lblasa got reports it doesn't always work (possibly permission issues)

Reviewed By: lblasa

Differential Revision: D50259755

fbshipit-source-id: 1cd5f92c4e6e40a06340ecfebea01b899ac1cc85
2023-10-13 07:54:20 -07:00
Lorenzo Blasa
6468665116 Improve device listing
Summary: Do not use mutex for device listing.

Reviewed By: antonk52

Differential Revision: D50265112

fbshipit-source-id: 9b3bf4f9351e28dfb6366b6b787ec8b466b9bc47
2023-10-13 07:50:25 -07:00
Colin Bendell
ed6e15edc8 cleanup 2022-09-08 12:05:53 +01:00
Colin Bendell
bd477678bc restore FKPortForwardingCommon.h 2022-09-08 12:05:53 +01:00
Colin Bendell
b26997af00 Refactor to move PortForwardingMacApp under /desktop 2022-09-08 12:05:53 +01:00
Colin Bendell
1e1cc37c3b cleanup 2022-09-08 12:05:53 +01:00
Colin Bendell
2216a3f94d add static binary to repo 2022-09-08 12:05:53 +01:00
Colin Bendell
6cc083b860 Update to enable universal builds of Flipper
* added PortForwardingMacApp project target
* updated Podfiles
* updated electron builder to 22.14.10
* updated electron to 16.0.3
* added universal architecture to the build process
2022-09-08 12:05:53 +01:00
52 changed files with 982 additions and 409 deletions

View File

@@ -0,0 +1,13 @@
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'PortForwardingMacApp' do
# Comment the next line if you don't want to use dynamic frameworks
#use_frameworks!
platform :osx, '11'
# Pods for PortForwardingMacApp
pod 'Flipper-PeerTalk', '~>0.0'
pod 'CocoaAsyncSocket', '~>7.6'
end

View File

@@ -0,0 +1,20 @@
PODS:
- CocoaAsyncSocket (7.6.5)
- Flipper-PeerTalk (0.0.4)
DEPENDENCIES:
- CocoaAsyncSocket (~> 7.6)
- Flipper-PeerTalk (~> 0.0)
SPEC REPOS:
trunk:
- CocoaAsyncSocket
- Flipper-PeerTalk
SPEC CHECKSUMS:
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
PODFILE CHECKSUM: 861e0c9ba6cbdc85168a923850426dcf49e444fa
COCOAPODS: 1.11.2

View File

@@ -0,0 +1,417 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
3B3526C92757197400D803F9 /* FKPortForwardingClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B61AC1A2756C3D30017E050 /* FKPortForwardingClient.m */; };
3B3526CA2757197400D803F9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B3FD2F527565B8000D731DB /* main.m */; };
3B3526CF275721B500D803F9 /* FBPortForwardingMacApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0A99AA5350C20B2CFA072E3 /* FBPortForwardingMacApp.framework */; };
49AE9D8F5494BB1BC5BF2B9E /* libPods-PortForwardingMacApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BFC73B0CB918678127B57C88 /* libPods-PortForwardingMacApp.a */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
3B3526D1275721B500D803F9 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
339253FD0D50C9D90FA019FF /* Pods-PortForwardingMacApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PortForwardingMacApp.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-PortForwardingMacApp/Pods-PortForwardingMacApp.release.xcconfig"; sourceTree = "<group>"; };
3B3526B9275718D700D803F9 /* PortForwardingMacApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PortForwardingMacApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
3B3FD2F527565B8000D731DB /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
3B61AC192756C3D30017E050 /* FKPortForwardingClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FKPortForwardingClient.h; path = iOS/FlipperKit/FKPortForwarding/FKPortForwardingClient.h; sourceTree = SOURCE_ROOT; };
3B61AC1A2756C3D30017E050 /* FKPortForwardingClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FKPortForwardingClient.m; path = iOS/FlipperKit/FKPortForwarding/FKPortForwardingClient.m; sourceTree = SOURCE_ROOT; };
95395DC97D1F23A7B72F2FB8 /* Pods-PortForwardingMacApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PortForwardingMacApp.debug.xcconfig"; path = "Target Support Files/Pods-PortForwardingMacApp/Pods-PortForwardingMacApp.debug.xcconfig"; sourceTree = "<group>"; };
B0A99AA5350C20B2CFA072E3 /* FBPortForwardingMacApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBPortForwardingMacApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
BFC73B0CB918678127B57C88 /* libPods-PortForwardingMacApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PortForwardingMacApp.a"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
3B3526B6275718D700D803F9 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
3B3526CF275721B500D803F9 /* FBPortForwardingMacApp.framework in Frameworks */,
49AE9D8F5494BB1BC5BF2B9E /* libPods-PortForwardingMacApp.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
3B3FD2E927565B8000D731DB = {
isa = PBXGroup;
children = (
3B3FD2F427565B8000D731DB /* PortForwardingMacApp */,
3B3FD2F327565B8000D731DB /* Products */,
3BDD19D5275661C600E99F80 /* Frameworks */,
FE7B3BC513417A34A3909022 /* Pods */,
);
sourceTree = "<group>";
};
3B3FD2F327565B8000D731DB /* Products */ = {
isa = PBXGroup;
children = (
3B3526B9275718D700D803F9 /* PortForwardingMacApp.app */,
);
name = Products;
sourceTree = "<group>";
};
3B3FD2F427565B8000D731DB /* PortForwardingMacApp */ = {
isa = PBXGroup;
children = (
3BB802F8275852CD00A82E32 /* FKPortForwarding */,
3B3FD2F527565B8000D731DB /* main.m */,
);
path = PortForwardingMacApp;
sourceTree = "<group>";
};
3BB802F8275852CD00A82E32 /* FKPortForwarding */ = {
isa = PBXGroup;
children = (
3BB802FF2758545200A82E32 /* FKPortForwardingClient.h */,
3BB803002758545200A82E32 /* FKPortForwardingClient.m */,
3BB802FE2758545200A82E32 /* FKPortForwardingCommon.h */,
);
name = FKPortForwarding;
path = ..;
sourceTree = "<group>";
};
3BDD19D5275661C600E99F80 /* Frameworks */ = {
isa = PBXGroup;
children = (
B0A99AA5350C20B2CFA072E3 /* FBPortForwardingMacApp.framework */,
BFC73B0CB918678127B57C88 /* libPods-PortForwardingMacApp.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
FE7B3BC513417A34A3909022 /* Pods */ = {
isa = PBXGroup;
children = (
95395DC97D1F23A7B72F2FB8 /* Pods-PortForwardingMacApp.debug.xcconfig */,
339253FD0D50C9D90FA019FF /* Pods-PortForwardingMacApp.release.xcconfig */,
);
name = Pods;
path = iOS/Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
3B3526B8275718D700D803F9 /* PortForwardingMacApp */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3B3526C6275718D800D803F9 /* Build configuration list for PBXNativeTarget "PortForwardingMacApp" */;
buildPhases = (
B95B3E164CB7F2CE4005C454 /* [CP] Check Pods Manifest.lock */,
3B3526B5275718D700D803F9 /* Sources */,
3B3526B6275718D700D803F9 /* Frameworks */,
3B3526B7275718D700D803F9 /* Resources */,
3B3526D1275721B500D803F9 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = PortForwardingMacApp;
productName = PortForwardingMacApp;
productReference = 3B3526B9275718D700D803F9 /* PortForwardingMacApp.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
3B3FD2EA27565B8000D731DB /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastUpgradeCheck = 1310;
TargetAttributes = {
3B3526B8275718D700D803F9 = {
CreatedOnToolsVersion = 13.1;
};
};
};
buildConfigurationList = 3B3FD2ED27565B8000D731DB /* Build configuration list for PBXProject "PortForwardingMacApp" */;
compatibilityVersion = "Xcode 13.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 3B3FD2E927565B8000D731DB;
productRefGroup = 3B3FD2F327565B8000D731DB /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
3B3526B8275718D700D803F9 /* PortForwardingMacApp */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
3B3526B7275718D700D803F9 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
B95B3E164CB7F2CE4005C454 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-PortForwardingMacApp-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
3B3526B5275718D700D803F9 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3B2385EB275850F100789041 /* main.m in Sources */,
3BB803012758545200A82E32 /* FKPortForwardingClient.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
3B3526C7275718D800D803F9 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 95395DC97D1F23A7B72F2FB8 /* Pods-PortForwardingMacApp.debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CODE_SIGN_ENTITLEMENTS = "";
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"${PODS_ROOT}/Headers/Public\"",
"\"${PODS_ROOT}/Headers/Public/CocoaAsyncSocket\"",
"\"${PODS_ROOT}/Headers/Public/Flipper-PeerTalk\"",
"${SRCROOT}/**",
);
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2013-present Facebook. All rights reserved.";
INFOPLIST_KEY_NSMainNibFile = MainMenu;
INFOPLIST_KEY_NSPrincipalClass = NSApplication;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.facebook.PortForwardingMacApp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
};
name = Debug;
};
3B3526C8275718D800D803F9 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 339253FD0D50C9D90FA019FF /* Pods-PortForwardingMacApp.release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CODE_SIGN_ENTITLEMENTS = "";
CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"\"${PODS_ROOT}/Headers/Public\"",
"\"${PODS_ROOT}/Headers/Public/CocoaAsyncSocket\"",
"\"${PODS_ROOT}/Headers/Public/Flipper-PeerTalk\"",
"${SRCROOT}/**",
);
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2013-present Facebook. All rights reserved.";
INFOPLIST_KEY_NSMainNibFile = MainMenu;
INFOPLIST_KEY_NSPrincipalClass = NSApplication;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.facebook.PortForwardingMacApp;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
};
name = Release;
};
3B3FD2F727565B8000D731DB /* 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++17";
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;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
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 = (
"DEBUG=1",
"$(inherited)",
);
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 = 12.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
3B3FD2F827565B8000D731DB /* 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++17";
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;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
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 = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
3B3526C6275718D800D803F9 /* Build configuration list for PBXNativeTarget "PortForwardingMacApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3B3526C7275718D800D803F9 /* Debug */,
3B3526C8275718D800D803F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
3B3FD2ED27565B8000D731DB /* Build configuration list for PBXProject "PortForwardingMacApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3B3FD2F727565B8000D731DB /* Debug */,
3B3FD2F827565B8000D731DB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 3B3FD2EA27565B8000D731DB /* Project object */;
}

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1310"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3B3526B8275718D700D803F9"
BuildableName = "PortForwardingMacApp.app"
BlueprintName = "PortForwardingMacApp"
ReferencedContainer = "container:PortForwardingMacApp.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3B3526B8275718D700D803F9"
BuildableName = "PortForwardingMacApp.app"
BlueprintName = "PortForwardingMacApp"
ReferencedContainer = "container:PortForwardingMacApp.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3B3526B8275718D700D803F9"
BuildableName = "PortForwardingMacApp.app"
BlueprintName = "PortForwardingMacApp"
ReferencedContainer = "container:PortForwardingMacApp.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,25 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import <Foundation/Foundation.h>
#define FBPFTrace(...) /*NSLog(__VA_ARGS__)*/
#define FBPFLog(...) NSLog(__VA_ARGS__)
enum {
FKPortForwardingFrameTypeOpenPipe = 201,
FKPortForwardingFrameTypeWriteToPipe = 202,
FKPortForwardingFrameTypeClosePipe = 203,
};
static dispatch_data_t NSDataToGCDData(NSData* data) {
__block NSData* retainedData = data;
return dispatch_data_create(data.bytes, data.length, nil, ^{
retainedData = nil;
});
(void)retainedData;
}

View File

@@ -15,7 +15,6 @@ import memoize from 'lodash.memoize';
import {promisify} from 'util';
import child_process from 'child_process';
import fs from 'fs-extra';
import path from 'path';
import {recorder} from '../../recorder';
const exec = promisify(child_process.exec);
@@ -178,7 +177,8 @@ async function queryTargetsWithIdb(
Run 'idb kill' from terminal.`;
try {
const {stdout} = await safeExec(cmd);
const {stdout} = await unsafeExec(cmd);
if (!stdout) {
recorder.event('cmd', {
cmd,

View File

@@ -8,3 +8,4 @@
*/
export const isFBBuild: boolean = false;
export const GRAPH_SECRET = '';

View File

@@ -21,6 +21,7 @@ import {FlipperServerCompanionEnv} from 'flipper-server-companion';
import {validateAuthToken} from '../app-connectivity/certificate-exchange/certificate-utils';
import {tracker} from '../tracker';
import {EnvironmentInfo, isProduction} from 'flipper-common';
import {GRAPH_SECRET} from '../fb-stubs/constants';
type Config = {
port: number;
@@ -147,7 +148,11 @@ async function startHTTPServer(
? path.join(config.staticPath, config.entry)
: path.join(config.staticPath, 'loading.html');
fs.readFile(resource, (_err, content) => {
res.end(content);
const processedContent = content
.toString()
.replace('GRAPH_SECRET_REPLACE_ME', GRAPH_SECRET)
.replace('FLIPPER_APP_VERSION_REPLACE_ME', environmentInfo.appVersion);
res.end(processedContent);
});
});

View File

@@ -29,7 +29,7 @@ import {
startServer,
tracker,
} from 'flipper-server-core';
import {isTest} from 'flipper-common';
import {addLogTailer, isTest, LoggerFormat} from 'flipper-common';
import exitHook from 'exit-hook';
import {getAuthToken} from 'flipper-server-core';
import {findInstallation} from './findInstallation';
@@ -216,6 +216,12 @@ async function start() {
// At this point, the HTTP server is ready and configuration is set.
await launch();
if (!isProduction) {
addLogTailer((level, ...data) => {
flipperServer.emit('server-log', LoggerFormat(level, ...data));
});
}
const t6 = performance.now();
const launchedMS = t6 - t5;

View File

@@ -0,0 +1,41 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {Logger, LoggerArgs, NoopLogger} from 'flipper-common';
const naiveLogger: Logger = {
track(...args: [any, any, any?, any?]) {
console.warn('(skipper track)', args);
},
trackTimeSince(...args: [any, any, any?]) {
console.warn('(skipped trackTimeSince)', args);
},
debug(...args: any[]) {
console.debug(...args);
},
error(...args: any[]) {
console.error(...args);
console.warn('(skipped error reporting)');
},
warn(...args: any[]) {
console.warn(...args);
console.warn('(skipped error reporting)');
},
info(...args: any[]) {
console.info(...args);
},
};
export function init(args?: LoggerArgs): Logger {
if (args && args.isTest) {
return new NoopLogger();
} else {
return naiveLogger;
}
}

View File

@@ -16,6 +16,8 @@ declare global {
entryPoint: string;
debug: boolean;
};
GRAPH_SECRET: string;
FLIPPER_APP_VERSION: string;
flipperShowMessage?(message: string): void;
flipperHideMessage?(): void;

View File

@@ -7,7 +7,12 @@
* @format
*/
import {getLogger, Logger, setLoggerInstance} from 'flipper-common';
import {
getLogger,
getStringFromErrorLike,
setLoggerInstance,
} from 'flipper-common';
import {init as initLogger} from './fb-stubs/Logger';
import {initializeRenderHost} from './initializeRenderHost';
import {createFlipperServer, FlipperServerState} from 'flipper-server-client';
@@ -19,6 +24,8 @@ if (loadingContainer) {
let cachedFile: {name: string; data: string} | undefined;
let cachedDeepLinkURL: string | undefined;
const logger = initLogger();
async function start() {
// @ts-ignore
electronRequire = function (path: string) {
@@ -30,7 +37,6 @@ async function start() {
};
};
const logger = createDelegatedLogger();
setLoggerInstance(logger);
const params = new URL(location.href).searchParams;
@@ -42,12 +48,19 @@ async function start() {
console.info(
'[flipper-client][ui-browser] Get token from manifest instead',
);
try {
const manifestResponse = await fetch('manifest.json');
const manifest = await manifestResponse.json();
token = manifest.token;
} catch (e) {
console.warn(
'[flipper-client][ui-browser] Failed to get token from manifest. Error:',
e.message,
);
}
}
console.info(
getLogger().info(
'[flipper-client][ui-browser] Token is available: ',
token?.length != 0,
);
@@ -72,7 +85,8 @@ async function start() {
cachedDeepLinkURL = deeplinkURL.toString();
}
console.info('[flipper-client][ui-browser] Create WS client');
getLogger().info('[flipper-client][ui-browser] Create WS client');
const flipperServer = await createFlipperServer(
location.hostname,
parseInt(location.port, 10),
@@ -80,39 +94,43 @@ async function start() {
(state: FlipperServerState) => {
switch (state) {
case FlipperServerState.CONNECTING:
console.info('[flipper-client] Connecting to server');
getLogger().info('[flipper-client] Connecting to server');
window.flipperShowMessage?.('Connecting to server...');
break;
case FlipperServerState.CONNECTED:
console.info('[flipper-client] Connection established with server');
getLogger().info(
'[flipper-client] Connection established with server',
);
window.flipperHideMessage?.();
break;
case FlipperServerState.DISCONNECTED:
console.info('[flipper-client] Disconnected from server');
getLogger().info('[flipper-client] Disconnected from server');
window.flipperShowMessage?.('Waiting for server...');
break;
}
},
);
console.info('[flipper-client][ui-browser] WS client connected');
getLogger().info('[flipper-client][ui-browser] WS client connected');
flipperServer.on('server-log', (logEntry) => {
console[logEntry.type](
getLogger()[logEntry.type](
`[${logEntry.namespace}] (${new Date(
logEntry.time,
).toLocaleTimeString()}): ${logEntry.msg}`,
);
});
console.info('[flipper-client][ui-browser] Waiting for server connection');
getLogger().info(
'[flipper-client][ui-browser] Waiting for server connection',
);
await flipperServer.connect();
console.info(
getLogger().info(
'[flipper-client][ui-browser] Connected to server, get configuration',
);
const flipperServerConfig = await flipperServer.exec('get-config');
console.info(
getLogger().info(
'[flipper-client][ui-browser] Configuration obtained, initialise render host',
);
@@ -124,16 +142,21 @@ async function start() {
require('flipper-ui-core').startFlipperDesktop(flipperServer);
window.flipperHideMessage?.();
console.info('[flipper-client][ui-browser] UI initialised');
getLogger().info('[flipper-client][ui-browser] UI initialised');
logger.track('success-rate', 'flipper-ui-browser-started', {value: 1});
}
start().catch((e) => {
console.error('Failed to start flipper-ui-browser', e);
getLogger().error('Failed to start flipper-ui-browser', e);
logger.track('success-rate', 'flipper-ui-browser-started', {
value: 0,
error: getStringFromErrorLike(e),
});
window.flipperShowMessage?.('Failed to start UI with error: ' + e);
});
async function initializePWA() {
console.log('[PWA] Initialization');
getLogger().info('[PWA] Initialization');
let rehydrated = false;
const openFileIfAny = () => {
@@ -164,22 +187,22 @@ async function initializePWA() {
navigator.serviceWorker
.register('/service-worker.js')
.then(() => {
console.log('[PWA] Service Worker has been registered');
getLogger().info('[PWA] Service Worker has been registered');
})
.catch((e) => {
console.error('[PWA] failed to register Service Worker', e);
getLogger().error('[PWA] failed to register Service Worker', e);
});
}
if ('launchQueue' in window) {
console.log('[PWA] File Handling API is supported');
getLogger().debug('[PWA] File Handling API is supported');
// @ts-ignore
window.launchQueue.setConsumer(async (launchParams) => {
if (!launchParams || !launchParams.files) {
return;
}
console.log('[PWA] Attempt to to open a file');
getLogger().debug('[PWA] Attempt to to open a file');
for (const file of launchParams.files) {
const blob = await file.getFile();
blob.handle = file;
@@ -196,72 +219,20 @@ async function initializePWA() {
console.warn('[PWA] File Handling API is not supported');
}
console.log('[PWA] Add before install prompt listener');
getLogger().debug('[PWA] Add before install prompt listener');
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent Chrome 67 and earlier from automatically showing the prompt.
e.preventDefault();
// Stash the event so it can be triggered later.
// @ts-ignore
global.PWAppInstallationEvent = e;
console.log('[PWA] Installation event has been captured');
getLogger().info('[PWA] Installation event has been captured');
});
window.addEventListener('storeRehydrated', () => {
console.info('[PWA] Store is rehydrated');
getLogger().info('[PWA] Store is rehydrated');
rehydrated = true;
openFileIfAny();
openURLIfAny();
});
}
// getLogger() is not yet created when the electron app starts.
// we can't create it here yet, as the real logger is wired up to
// the redux store and the rest of the world. So we create a delegating logger
// that uses a simple implementation until the real one comes available.
function createDelegatedLogger(): Logger {
const naiveLogger: Logger = {
track(...args: [any, any, any?, any?]) {
console.warn('(skipper track)', args);
},
trackTimeSince(...args: [any, any, any?]) {
console.warn('(skipped trackTimeSince)', args);
},
debug(...args: any[]) {
console.debug(...args);
},
error(...args: any[]) {
console.error(...args);
console.warn('(skipped error reporting)');
},
warn(...args: any[]) {
console.warn(...args);
console.warn('(skipped error reporting)');
},
info(...args: any[]) {
console.info(...args);
},
};
// will be overwrittingen later
setLoggerInstance(naiveLogger);
return {
track() {
// noop
},
trackTimeSince() {
// noop
},
debug(...args: any[]) {
getLogger().debug(...args);
},
error(...args: any[]) {
getLogger().error(...args);
},
warn(...args: any[]) {
getLogger().warn(...args);
},
info(...args: any[]) {
getLogger().info(...args);
},
};
}

View File

@@ -170,7 +170,7 @@
"npm": "use yarn instead",
"yarn": "^1.16"
},
"version": "0.226.0",
"version": "0.227.0",
"workspaces": {
"packages": [
"scripts",

View File

@@ -27,7 +27,7 @@ You also need to compile in the `litho-annotations` package, as Flipper reflects
```groovy
dependencies {
debugImplementation 'com.facebook.flipper:flipper-litho-plugin:0.226.0'
debugImplementation 'com.facebook.flipper:flipper-litho-plugin:0.227.0'
debugImplementation 'com.facebook.litho:litho-annotations:0.19.0'
// ...
}

View File

@@ -8,7 +8,7 @@ To setup the <Link to={useBaseUrl("/docs/features/plugins/leak-canary")}>LeakCan
```groovy
dependencies {
debugImplementation 'com.facebook.flipper:flipper-leakcanary2-plugin:0.226.0'
debugImplementation 'com.facebook.flipper:flipper-leakcanary2-plugin:0.227.0'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1'
}
```

View File

@@ -12,7 +12,7 @@ The network plugin is shipped as a separate Maven artifact, as follows:
```groovy
dependencies {
debugImplementation 'com.facebook.flipper:flipper-network-plugin:0.226.0'
debugImplementation 'com.facebook.flipper:flipper-network-plugin:0.227.0'
}
```

View File

@@ -31,11 +31,12 @@ import isFB from './isFB';
import yargs from 'yargs';
import fs from 'fs-extra';
import {downloadIcons} from './build-icons';
import {spawn} from 'promisify-child-process';
import {spawn, exec as execAsync} from 'promisify-child-process';
import {homedir} from 'os';
import {need as pkgFetch} from 'pkg-fetch';
import {exec} from 'child_process';
import fetch from '@adobe/node-fetch-retry';
import plist from 'simple-plist';
// This needs to be tested individually. As of 2022Q2, node17 is not supported.
const SUPPORTED_NODE_PLATFORM = 'node16';
@@ -458,11 +459,13 @@ async function buildServerRelease() {
platforms.push(BuildPlatform.WINDOWS);
}
await Promise.all(
platforms.map((platform) =>
bundleServerReleaseForPlatform(dir, versionNumber, platform),
),
);
// Instead of parallel builds, these have to be done sequential.
// As we are building a native app, the resulting binary will be
// different per platform meaning that there's a risk of overriding
// intermediate artefacts if done in parallel.
for (const platform of platforms) {
await bundleServerReleaseForPlatform(dir, versionNumber, platform);
}
}
function nodeArchFromBuildPlatform(platform: BuildPlatform): string {
@@ -515,7 +518,7 @@ async function download(url: string, dest: string): Promise<void> {
* @param dest - Destination directory for the extracted contents.
*/
async function unpack(source: string, destination: string) {
console.log(`⚙️ Extracting ${source}.`);
console.log(`⚙️ Extracting ${source} to ${destination}.`);
try {
await fs.access(destination, fs.constants.F_OK);
@@ -553,6 +556,40 @@ function nodePlatformFromBuildPlatform(platform: BuildPlatform): string {
}
}
async function setRuntimeAppIcon(binaryPath: string): Promise<void> {
console.log(`⚙️ Updating runtime icon for MacOS in ${binaryPath}.`);
const iconPath = path.join(staticDir, 'icon.png');
const tempRsrcPath = path.join(os.tmpdir(), 'icon.rsrc');
const deRezCmd = `DeRez -only icns ${iconPath} > ${tempRsrcPath}`;
try {
await execAsync(deRezCmd);
} catch (err) {
console.error(
`❌ Error while extracting icon with '${deRezCmd}'. Error: ${err}`,
);
throw err;
}
const rezCmd = `Rez -append ${tempRsrcPath} -o ${binaryPath}`;
try {
await execAsync(rezCmd);
} catch (err) {
console.error(
`❌ Error while setting icon on executable ${binaryPath}. Error: ${err}`,
);
throw err;
}
const updateCmd = `SetFile -a C ${binaryPath}`;
try {
await execAsync(updateCmd);
} catch (err) {
console.error(
`❌ Error while changing icon visibility on ${binaryPath}. Error: ${err}`,
);
throw err;
}
console.log(`✅ Updated flipper-runtime icon.`);
}
async function installNodeBinary(outputPath: string, platform: BuildPlatform) {
/**
* Below is a temporary patch that doesn't use pkg-fetch to
@@ -584,8 +621,15 @@ async function installNodeBinary(outputPath: string, platform: BuildPlatform) {
} catch (err) {}
if (!cached) {
// Download node tarball from the distribution site.
// If this is not present (due to a node update) follow these steps:
// - Update the download URL to `https://nodejs.org/dist/${NODE_VERSION}/${name}.tar.gz`
// - Ensure the Xcode developer tools are installed
// - Build a full MacOS server release locally using `yarn build:flipper-server --mac`
// - Enter the dist folder: dist/flipper-server-mac-aarch64/Flipper.app/Contents/MacOS
// - `mkdir bin && cp flipper-runtime bin/node && tar -czvf node-${NODE_VERSION}-darwin-arm64.tar.gz bin`
// - Upload the resulting tar ball to the Flipper release page as a new tag: https://github.com/facebook/flipper/releases
await download(
`https://nodejs.org/dist/${NODE_VERSION}/${name}.tar.gz`,
`https://github.com/facebook/flipper/releases/download/node-${NODE_VERSION}/${name}.tar.gz`,
downloadOutputPath,
);
// Finally, unpack the tarball to a local folder i.e. outputPath.
@@ -607,6 +651,19 @@ async function installNodeBinary(outputPath: string, platform: BuildPlatform) {
await fs.copyFile(nodePath, outputPath);
}
if (
platform === BuildPlatform.MAC_AARCH64 ||
platform === BuildPlatform.MAC_X64
) {
if (process.platform === 'darwin') {
await setRuntimeAppIcon(outputPath).catch(() => {
console.warn('⚠️ Unable to update runtime icon');
});
} else {
console.warn("⚠️ Skipping icon update as it's only supported on macOS");
}
}
// Set +x on the binary as copyFile doesn't maintain the bit.
await fs.chmod(outputPath, 0o755);
}
@@ -669,24 +726,62 @@ async function setUpWindowsBundle(outputDir: string) {
async function setUpMacBundle(
outputDir: string,
platform: BuildPlatform,
versionNumber: string,
): Promise<{nodePath: string; resourcesPath: string}> {
console.log(`⚙️ Creating Mac bundle in ${outputDir}`);
await fs.copy(path.join(staticDir, 'flipper-server-app-template'), outputDir);
let appTemplate = path.join(staticDir, 'flipper-server-app-template');
if (isFB) {
appTemplate = path.join(
staticDir,
'facebook',
'flipper-server-app-template',
platform,
);
console.info('⚙️ Using internal template from: ' + appTemplate);
}
await fs.copy(appTemplate, outputDir);
function replacePropertyValue(
obj: any,
targetValue: string,
replacementValue: string,
): any {
if (typeof obj === 'object' && !Array.isArray(obj) && obj !== null) {
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
obj[key] = replacePropertyValue(
obj[key],
targetValue,
replacementValue,
);
}
}
} else if (typeof obj === 'string' && obj === targetValue) {
obj = replacementValue;
}
return obj;
}
console.log(`⚙️ Writing plist`);
const pListPath = path.join(
const plistPath = path.join(
outputDir,
'Flipper.app',
'Contents',
'Info.plist',
);
const pListContents = await fs.readFile(pListPath, 'utf-8');
const updatedPlistContents = pListContents.replace(
/* eslint-disable node/no-sync*/
const pListContents: Record<any, any> = plist.readFileSync(plistPath);
replacePropertyValue(
pListContents,
'{flipper-server-version}',
versionNumber,
);
await fs.writeFile(pListPath, updatedPlistContents, 'utf-8');
plist.writeBinaryFileSync(plistPath, pListContents);
/* eslint-enable node/no-sync*/
const resourcesOutputDir = path.join(
outputDir,
@@ -695,6 +790,10 @@ async function setUpMacBundle(
'Resources',
'server',
);
if (!(await fs.exists(resourcesOutputDir))) {
await fs.mkdir(resourcesOutputDir);
}
const nodeOutputPath = path.join(
outputDir,
'Flipper.app',
@@ -728,7 +827,7 @@ async function bundleServerReleaseForPlatform(
platform === BuildPlatform.MAC_X64 ||
platform === BuildPlatform.MAC_AARCH64
) {
outputPaths = await setUpMacBundle(outputDir, versionNumber);
outputPaths = await setUpMacBundle(outputDir, platform, versionNumber);
} else if (platform === BuildPlatform.LINUX) {
await setUpLinuxBundle(outputDir);
} else if (platform === BuildPlatform.WINDOWS) {

View File

@@ -200,10 +200,10 @@ async function buildDist(buildFolder: string) {
const postBuildCallbacks: (() => void)[] = [];
if (argv.mac || argv['mac-dmg']) {
targetsRaw.push(Platform.MAC.createTarget(['dir']));
targetsRaw.push(Platform.MAC.createTarget(['dir'], Arch.universal));
// You can build mac apps on Linux but can't build dmgs, so we separate those.
if (argv['mac-dmg']) {
targetsRaw.push(Platform.MAC.createTarget(['dmg']));
targetsRaw.push(Platform.MAC.createTarget(['dmg'], Arch.universal));
}
const macPath = path.join(
distDir,

View File

@@ -35,6 +35,7 @@
"pkg-fetch": "3.4.1",
"promisify-child-process": "^4.1.0",
"semver": "^7.5.4",
"simple-plist": "^1.3.1",
"socket.io": "^4.5.0",
"tar": "6.1.15",
"tmp": "^0.2.1",

View File

@@ -1,44 +0,0 @@
<?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>BuildMachineOSBuild</key>
<string>16G29</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>CocoaAsyncSocketMac</string>
<key>CFBundleIdentifier</key>
<string>com.robbiehanson.CocoaAsyncSocketMac</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>CocoaAsyncSocketMac</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0900</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
</dict>
</plist>

View File

@@ -1,44 +0,0 @@
<?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>BuildMachineOSBuild</key>
<string>16G29</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>CocoaAsyncSocketMac</string>
<key>CFBundleIdentifier</key>
<string>com.robbiehanson.CocoaAsyncSocketMac</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>CocoaAsyncSocketMac</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0900</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
</dict>
</plist>

View File

@@ -1,46 +0,0 @@
<?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>BuildMachineOSBuild</key>
<string>16G29</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>FBPortForwarding-Mac</string>
<key>CFBundleIdentifier</key>
<string>com.facebook.FBPortForwarding-Mac</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>FBPortForwarding-Mac</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string></string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0900</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2014 Facebook. All rights reserved.</string>
</dict>
</plist>

View File

@@ -1,46 +0,0 @@
<?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>BuildMachineOSBuild</key>
<string>16G29</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>FBPortForwarding-Mac</string>
<key>CFBundleIdentifier</key>
<string>com.facebook.FBPortForwarding-Mac</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>FBPortForwarding-Mac</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string></string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0900</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2014 Facebook. All rights reserved.</string>
</dict>
</plist>

View File

@@ -1,46 +0,0 @@
<?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>BuildMachineOSBuild</key>
<string>16G29</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>peertalkMac</string>
<key>CFBundleIdentifier</key>
<string>com.facebook.peertalkMac</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>peertalkMac</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string></string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0900</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2014 Facebook. All rights reserved.</string>
</dict>
</plist>

View File

@@ -1,46 +0,0 @@
<?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>BuildMachineOSBuild</key>
<string>16G29</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>peertalkMac</string>
<key>CFBundleIdentifier</key>
<string>com.facebook.peertalkMac</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>peertalkMac</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string></string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<key>DTXcode</key>
<string>0900</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2014 Facebook. All rights reserved.</string>
</dict>
</plist>

View File

@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>16G29</string>
<string>21A559</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
@@ -16,30 +16,34 @@
<string>PortForwardingMacApp</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string></string>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>9A235</string>
<string>13A1030d</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<string>12.0</string>
<key>DTSDKBuild</key>
<string>17A360</string>
<string>21A344</string>
<key>DTSDKName</key>
<string>macosx10.13</string>
<string>macosx12.0</string>
<key>DTXcode</key>
<string>0900</string>
<string>1310</string>
<key>DTXcodeBuild</key>
<string>9A235</string>
<string>13A1030d</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
<string>10.10</string>
<string>12.0</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 2013-present Facebook. All rights reserved.</string>
<key>NSMainNibFile</key>

View File

@@ -0,0 +1,115 @@
<?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>files</key>
<dict/>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View File

@@ -0,0 +1,2 @@
# Bump this to ensure we are getting a new content hash when only changing metadata.
1

View File

@@ -137,6 +137,9 @@
window.flipperShowMessage = showMessage;
window.flipperHideMessage = hideMessage;
window.GRAPH_SECRET = 'GRAPH_SECRET_REPLACE_ME';
window.FLIPPER_APP_VERSION = 'FLIPPER_APP_VERSION_REPLACE_ME';
const params = new URL(location.href).searchParams;
let token = params.get('token');
if (!token) {

View File

@@ -86,6 +86,9 @@
window.flipperShowMessage = showMessage;
window.flipperHideMessage = hideMessage;
window.GRAPH_SECRET = 'GRAPH_SECRET_REPLACE_ME';
window.FLIPPER_APP_VERSION = 'FLIPPER_APP_VERSION_REPLACE_ME';
// load correct theme (n.b. this doesn't handle system value specifically, will assume light in such cases)
try {
if (window.flipperConfig.theme === 'dark') {

View File

@@ -137,6 +137,7 @@
setTimeout(() => {
button.disabled = false;
button.value = 'Start';
}, 30 * 10000);
}
@@ -147,24 +148,18 @@
window.location.reload();
});
let autoStarted = false;
// Check if the server is responding & reload the page if it is.
// This handles the case when the device is online, but the server
// is offline or misbehaving.
async function checkNetworkAndReload() {
try {
const response = await fetch('.');
if (response.status === 200) {
if (response.status >= 200 && response.status < 500) {
window.location.reload();
return;
}
} catch {
// trigger submit button automatically, but only once
if (!autoStarted) {
autoStarted = true;
document.getElementById("submit").click();
}
// Unable to connect to the server, ignore.
}
window.setTimeout(checkNetworkAndReload, 2500);
}

View File

@@ -24,7 +24,6 @@
"flipper-plugin": ["./flipper-plugin/src"],
"eslint-plugin-flipper": ["./eslint-plugin-flipper/src"],
"flipper-server-core": ["./flipper-server-core/src"],
"flipper-server-ui": ["./flipper-server-ui/src"],
"flipper-common": ["./flipper-common/src"],
"flipper-*": ["./*/src"]
},

View File

@@ -4781,6 +4781,11 @@
"@typescript-eslint/types" "5.55.0"
eslint-visitor-keys "^3.3.0"
"@xmldom/xmldom@^0.8.8":
version "0.8.10"
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99"
integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==
"@xobotyi/scrollbar-width@^1.9.5":
version "1.9.5"
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
@@ -5713,6 +5718,11 @@ base@^0.11.1:
mixin-deep "^1.2.0"
pascalcase "^0.1.1"
big-integer@1.6.x:
version "1.6.51"
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
bl@^1.0.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
@@ -5787,6 +5797,20 @@ boxen@^5.0.0:
widest-line "^3.1.0"
wrap-ansi "^7.0.0"
bplist-creator@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e"
integrity sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==
dependencies:
stream-buffers "2.2.x"
bplist-parser@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.1.tgz#e1c90b2ca2a9f9474cc72f6862bbf3fee8341fd1"
integrity sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==
dependencies:
big-integer "1.6.x"
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -12527,6 +12551,15 @@ plist@^3.0.1, plist@^3.0.4:
base64-js "^1.5.1"
xmlbuilder "^9.0.7"
plist@^3.0.5:
version "3.1.0"
resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9"
integrity sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==
dependencies:
"@xmldom/xmldom" "^0.8.8"
base64-js "^1.5.1"
xmlbuilder "^15.1.1"
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -14289,6 +14322,15 @@ signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
simple-plist@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.1.tgz#16e1d8f62c6c9b691b8383127663d834112fb017"
integrity sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==
dependencies:
bplist-creator "0.1.0"
bplist-parser "0.3.1"
plist "^3.0.5"
sisteransi@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -14581,6 +14623,11 @@ stop-iteration-iterator@^1.0.0:
dependencies:
internal-slot "^1.0.4"
stream-buffers@2.2.x:
version "2.2.0"
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==
string-convert@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97"
@@ -15806,7 +15853,7 @@ xml-name-validator@^4.0.0:
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
xmlbuilder@>=11.0.1:
xmlbuilder@>=11.0.1, xmlbuilder@^15.1.1:
version "15.1.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==

View File

@@ -24,10 +24,10 @@ repositories {
}
dependencies {
debugImplementation 'com.facebook.flipper:flipper:0.226.0'
debugImplementation 'com.facebook.flipper:flipper:0.227.0'
debugImplementation 'com.facebook.soloader:soloader:0.10.5'
releaseImplementation 'com.facebook.flipper:flipper-noop:0.226.0'
releaseImplementation 'com.facebook.flipper:flipper-noop:0.227.0'
}
```

View File

@@ -51,7 +51,7 @@ Add all of the code below to your `ios/Podfile`:
platform :ios, '9.0'
def flipper_pods()
flipperkit_version = '0.226.0' # should match the version of your Flipper client app
flipperkit_version = '0.227.0' # should match the version of your Flipper client app
pod 'FlipperKit', '~>' + flipperkit_version, :configuration => 'Debug'
pod 'FlipperKit/FlipperKitLayoutPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
pod 'FlipperKit/SKIOSNetworkPlugin', '~>' + flipperkit_version, :configuration => 'Debug'

View File

@@ -34,7 +34,7 @@ Latest version of Flipper requires react-native 0.69+! If you use react-native <
Android:
1. Bump the `FLIPPER_VERSION` variable in `android/gradle.properties`, for example: `FLIPPER_VERSION=0.226.0`.
1. Bump the `FLIPPER_VERSION` variable in `android/gradle.properties`, for example: `FLIPPER_VERSION=0.227.0`.
2. Run `./gradlew clean` in the `android` directory.
iOS:
@@ -44,7 +44,7 @@ react-native version => 0.69.0
2. Run `pod install --repo-update` in the `ios` directory.
react-native version < 0.69.0
1. Call `use_flipper` with a specific version in `ios/Podfile`, for example: `use_flipper!({ 'Flipper' => '0.226.0' })`.
1. Call `use_flipper` with a specific version in `ios/Podfile`, for example: `use_flipper!({ 'Flipper' => '0.227.0' })`.
2. Run `pod install --repo-update` in the `ios` directory.
## Manual Setup

View File

@@ -3,7 +3,7 @@
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
# POM publishing constants
VERSION_NAME=0.226.1-SNAPSHOT
VERSION_NAME=0.227.0
GROUP=com.facebook.flipper
SONATYPE_STAGING_PROFILE=comfacebook
POM_URL=https://github.com/facebook/flipper

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
@@ -21,5 +21,4 @@ static dispatch_data_t NSDataToGCDData(NSData* data) {
return dispatch_data_create(data.bytes, data.length, nil, ^{
retainedData = nil;
});
(void)retainedData;
}

View File

@@ -30,7 +30,7 @@ DEPENDENCIES:
- SocketRocket (~> 0.7.0)
SPEC REPOS:
https://github.com/CocoaPods/Specs:
https://github.com/CocoaPods/Specs.git:
- CocoaAsyncSocket
- DoubleConversion
- Flipper-Boost-iOSX
@@ -65,4 +65,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: abf37c1df1aeaa21dc8787782160e039dc2a64a8
COCOAPODS: 1.11.2
COCOAPODS: 1.10.2

View File

@@ -1,7 +1,7 @@
{
"name": "js-flipper",
"title": "JS Flipper Bindings for Web-Socket based clients",
"version": "0.226.0",
"version": "0.227.0",
"main": "lib/index.js",
"browser": {
"os": false

View File

@@ -58,9 +58,9 @@ server-linux:
files:
frameworks:
- '!*'
- node
- flipper-runtime
core:
- '!node'
- '!flipper-runtime
- '!static'
static:
- '!*'

View File

@@ -1,7 +1,7 @@
{
"name": "react-native-flipper",
"title": "React Native Flipper Bindings",
"version": "0.226.0",
"version": "0.227.0",
"description": "Flipper bindings for React Native",
"main": "index.js",
"types": "index.d.ts",