Skip to content
This repository has been archived by the owner on Jun 3, 2021. It is now read-only.

[WEEX-552][iOS] apm for ios #1412

Merged
merged 1 commit into from
Aug 9, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 12 additions & 0 deletions ios/playground/WeexDemo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
objects = {

/* Begin PBXBuildFile section */
17036A5720FDF9AA0029AE3D /* WXApmGeneratorImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */; };
17036A5A20FDF9DF0029AE3D /* WXApmImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A5920FDF9DF0029AE3D /* WXApmImpl.m */; };
17C1DB57206B675D000E0CEB /* DebugAnzlyzer.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */; };
2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AE88A2B1C8544E6003329DE /* WXScannerVC.m */; };
564B94671DD9C65000441C8D /* WeexUITestDemo-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 564B94661DD9C65000441C8D /* WeexUITestDemo-Info.plist */; };
Expand Down Expand Up @@ -67,6 +69,10 @@
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
17036A5520FDF9AA0029AE3D /* WXApmGeneratorImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXApmGeneratorImpl.h; path = extend/handler/WXApmGeneratorImpl.h; sourceTree = "<group>"; };
17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXApmGeneratorImpl.m; path = extend/handler/WXApmGeneratorImpl.m; sourceTree = "<group>"; };
17036A5820FDF9DF0029AE3D /* WXApmImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WXApmImpl.h; path = extend/handler/WXApmImpl.h; sourceTree = "<group>"; };
17036A5920FDF9DF0029AE3D /* WXApmImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = WXApmImpl.m; path = extend/handler/WXApmImpl.m; sourceTree = "<group>"; };
17C1DB55206B6729000E0CEB /* DebugAnalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DebugAnalyzer.h; path = debug/DebugAnalyzer.h; sourceTree = "<group>"; };
17C1DB56206B675D000E0CEB /* DebugAnzlyzer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DebugAnzlyzer.m; path = debug/DebugAnzlyzer.m; sourceTree = "<group>"; };
1888E2C5769382461DEDC97D /* Pods-WeexUITestDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexUITestDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexUITestDemo/Pods-WeexUITestDemo.release.xcconfig"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -336,6 +342,10 @@
DC20B8E51ECADA2500845F39 /* WXConfigCenterDefaultImpl.m */,
DCABAFFC1D029753001C8592 /* WXImgLoaderDefaultImpl.h */,
DCABAFFD1D029753001C8592 /* WXImgLoaderDefaultImpl.m */,
17036A5520FDF9AA0029AE3D /* WXApmGeneratorImpl.h */,
17036A5620FDF9AA0029AE3D /* WXApmGeneratorImpl.m */,
17036A5820FDF9DF0029AE3D /* WXApmImpl.h */,
17036A5920FDF9DF0029AE3D /* WXApmImpl.m */,
);
name = handler;
sourceTree = "<group>";
Expand Down Expand Up @@ -625,6 +635,7 @@
DCABAFF31D029685001C8592 /* WXATLoggerPlugin.m in Sources */,
DC15A3D0200E30FC009C8977 /* WXNavigationHandlerImpl.m in Sources */,
2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */,
17036A5720FDF9AA0029AE3D /* WXApmGeneratorImpl.m in Sources */,
775BEE861C1E8ECC008D1629 /* WXDemoViewController.m in Sources */,
DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */,
74CC79EB1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m in Sources */,
Expand All @@ -633,6 +644,7 @@
775BEE831C1E8ECC008D1629 /* AppDelegate.m in Sources */,
847CAF311F39E3F100551725 /* WXExtModule.m in Sources */,
DC15A3C7200C505C009C8977 /* WXTitleBarModule.m in Sources */,
17036A5A20FDF9DF0029AE3D /* WXApmImpl.m in Sources */,
DC20B8E61ECADA2500845F39 /* WXConfigCenterDefaultImpl.m in Sources */,
DCABAFF41D029685001C8592 /* WXATViewHierarchyPlugin.m in Sources */,
775BEE801C1E8ECC008D1629 /* main.m in Sources */,
Expand Down
2 changes: 2 additions & 0 deletions ios/playground/WeexDemo/AppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#import "WXConfigCenterDefaultImpl.h"
#import "WXNavigationHandlerImpl.h"
//#import "WXAnalyzerCenter.h"
#import "WXApmGeneratorImpl.h"


#ifdef DEBUG
Expand Down Expand Up @@ -123,6 +124,7 @@ - (void)initWeexSDK
[WXSDKEngine registerHandler:[WXEventModule new] withProtocol:@protocol(WXEventModuleProtocol)];
[WXSDKEngine registerHandler:[WXConfigCenterDefaultImpl new] withProtocol:@protocol(WXConfigCenterProtocol)];
[WXSDKEngine registerHandler:[WXNavigationHandlerImpl new] withProtocol:@protocol(WXNavigationProtocol)];
[WXSDKEngine registerHandler:[WXApmGeneratorImpl new] withProtocol:@protocol(WXApmGeneratorProtocol)];

[WXSDKEngine registerComponent:@"select" withClass:NSClassFromString(@"WXSelectComponent")];
[WXSDKEngine registerModule:@"event" withClass:[WXEventModule class]];
Expand Down
6 changes: 6 additions & 0 deletions ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#import <Foundation/Foundation.h>
#import "WXApmProtocol.h"

@interface WXApmGeneratorImpl : NSObject <WXApmGeneratorProtocol>

@end
12 changes: 12 additions & 0 deletions ios/playground/WeexDemo/extend/handler/WXApmGeneratorImpl.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#import "WXApmGeneratorImpl.h"
#import "WXApmImpl.h"

@implementation WXApmGeneratorImpl

- (id<WXApmProtocol>)gengratorApmInstance:(NSString *) type
{
id<WXApmProtocol> instance = [[WXApmImpl alloc] init];
return instance;
}

@end
6 changes: 6 additions & 0 deletions ios/playground/WeexDemo/extend/handler/WXApmImpl.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#import <Foundation/Foundation.h>
#import "WXApmProtocol.h"

@interface WXApmImpl : NSObject <WXApmProtocol>

@end
110 changes: 110 additions & 0 deletions ios/playground/WeexDemo/extend/handler/WXApmImpl.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@

#import "WXApmImpl.h"
#import "WXUtility.h"

@interface WXApmImpl()
@property(nonatomic,strong) NSMutableDictionary<NSString*,NSNumber*>* stageMap;
@property(nonatomic,strong) NSMutableDictionary<NSString*,id>* propertyMap;
@property(nonatomic,strong) NSMutableDictionary<NSString*,NSNumber*>* statisticMap;
@property(nonatomic,strong) NSMutableDictionary<NSString*,id>* eventMap;

@end

@implementation WXApmImpl

- (instancetype)init
{
self = [super init];
if (self) {
_stageMap = [[NSMutableDictionary alloc] init];
_propertyMap = [[NSMutableDictionary alloc] init];
_statisticMap = [[NSMutableDictionary alloc] init];
_eventMap = [[NSMutableDictionary alloc] init];
}
return self;
}


- (void) onStart:(NSString *)instanceId topic:(NSString *)topic
{

}

- (void) onEnd
{
[self _printApmInfo];
}

- (void) onEvent:(NSString *)name withValue:(id)value
{
[self.eventMap setObject:value forKey:name];
}

- (void) onStage:(NSString *)name withValue:(long)timestamp
{
[self.stageMap setObject:[NSNumber numberWithLong:timestamp] forKey:name];
}

- (void) addProperty:(NSString *)name withValue:(id)value
{
[self.propertyMap setObject:value forKey:name];
}

- (void) addStatistic:(NSString *)name withValue:(double)value
{
[self.statisticMap setObject:[NSNumber numberWithDouble:value] forKey:name];
}

- (void) addBiz:(NSString *)bizID withValue:(NSDictionary *)properties
{

}

- (void) addBizAbTest:(NSString *)bizID withValue:(NSDictionary *)abTest
{

}

- (void) addBizStage:(NSString *)bizID withValue:(NSDictionary *)stage
{

}

- (void) onSubProcedureBegin:(NSString *)subProcedureName
{

}

- (void) onSubProcedureEndFailed:(NSString *)subProcedureName
{

}

- (void) onSubProcedureEndSucceed:(NSString *)subProcedureName
{

}

- (void)pauseApmRecord {

}


- (void)resumeApmRecord {

}


- (void) _printApmInfo
{
NSDictionary* InfoMap = @{
@"stage":self.stageMap,
@"property":self.propertyMap,
@"statistic":self.statisticMap,
@"event":self.eventMap
};
NSString* jsonStr = [WXUtility JSONString:InfoMap];
NSLog(@"wxApmForInstance :%@",jsonStr);
}

@end
38 changes: 38 additions & 0 deletions ios/playground/WeexDemo/extend/handler/WXImgLoaderDefaultImpl.m
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@

#import "WXImgLoaderDefaultImpl.h"
#import <SDWebImage/UIImageView+WebCache.h>
#import "WXLog.h"
#import "WXSDKManager.h"

#define MIN_IMAGE_WIDTH 36
#define MIN_IMAGE_HEIGHT 36
Expand Down Expand Up @@ -48,6 +50,7 @@ @implementation WXImgLoaderDefaultImpl

- (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)userInfo completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock
{
[self _recoredImgLoad:url options:userInfo];
if ([url hasPrefix:@"//"]) {
url = [@"http:" stringByAppendingString:url];
}
Expand All @@ -57,11 +60,13 @@ @implementation WXImgLoaderDefaultImpl
if (completedBlock) {
completedBlock(image, error, finished);
}
[self _recoredFinish:imageURL error:error loadOptions:userInfo];
}];
}

- (void)setImageViewWithURL:(UIImageView *)imageView url:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(NSDictionary *)options progress:(void (^)(NSInteger, NSInteger))progressBlock completed:(void (^)(UIImage *, NSError *, WXImageLoaderCacheType, NSURL *))completedBlock
{
[self _recoredImgLoad:url.absoluteString options:options];
SDWebImageOptions sdWebimageOption = SDWebImageRetryFailed;
if (options && options[@"sdWebimageOption"]) {
[options[@"sdWebimageOption"] intValue];
Expand All @@ -75,7 +80,40 @@ - (void)setImageViewWithURL:(UIImageView *)imageView url:(NSURL *)url placeholde
if (completedBlock) {
completedBlock(image, error, (WXImageLoaderCacheType)cacheType, imageURL);
}
[self _recoredFinish:imageURL error:error loadOptions:options];
}];
}

- (void) _recoredImgLoad:(NSString *)url options:(NSDictionary *)options
{
if (nil == url) {
return;
}
NSString* instanceId = [options objectForKey:@"instanceId"];
if (nil == instanceId) {
WXLogWarning(@"please set instanceId in userInfo,for url %@:",url);
return;
}
WXSDKInstance* instance =[WXSDKManager instanceForID:instanceId];
if (nil == instance) {
return;
}
[instance.apmInstance updateDiffStats:KEY_PAGE_STATS_IMG_LOAD_NUM withDiffValue:1];
}

- (void) _recoredFinish:(NSURL*)imgUrl error:(NSError*)error loadOptions:(NSDictionary*)options
{
NSString* instanceId = [options objectForKey:@"instanceId"];
if (nil == instanceId) {
WXLogWarning(@"please set instanceId in userInfo,for url %@:",imgUrl.absoluteString);
return;
}
WXSDKInstance* instance =[WXSDKManager instanceForID:instanceId];
if (nil == instance) {
return;
}
bool loadSucceed = error == nil;
[instance.apmInstance actionImgLoadResult:loadSucceed withErrorCode:nil];
}

@end
36 changes: 36 additions & 0 deletions ios/sdk/WeexSDK.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@

/* Begin PBXBuildFile section */
042013AD1E66CD6A001FC79C /* WXValidateProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 042013AC1E66CD6A001FC79C /* WXValidateProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
17036A4E20FDE72F0029AE3D /* WXApmForInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = 17036A4C20FDE72F0029AE3D /* WXApmForInstance.h */; settings = {ATTRIBUTES = (Public, ); }; };
17036A4F20FDE72F0029AE3D /* WXApmForInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = 17036A4C20FDE72F0029AE3D /* WXApmForInstance.h */; settings = {ATTRIBUTES = (Public, ); }; };
17036A5020FDE72F0029AE3D /* WXInstanceApm.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A4D20FDE72F0029AE3D /* WXInstanceApm.m */; };
17036A5120FDE72F0029AE3D /* WXInstanceApm.m in Sources */ = {isa = PBXBuildFile; fileRef = 17036A4D20FDE72F0029AE3D /* WXInstanceApm.m */; };
17036A5320FDE7490029AE3D /* WXApmProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 17036A5220FDE7490029AE3D /* WXApmProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
17036A5420FDE7490029AE3D /* WXApmProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 17036A5220FDE7490029AE3D /* WXApmProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
170B4664208733AF00562666 /* WXAnalyzerCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 17C74F092072145000AB4CAB /* WXAnalyzerCenter.h */; settings = {ATTRIBUTES = (Public, ); }; };
170B4665208733BF00562666 /* WXAnalyzerCenter+Transfer.h in Headers */ = {isa = PBXBuildFile; fileRef = 17C74F082072145000AB4CAB /* WXAnalyzerCenter+Transfer.h */; };
170B4668208733E500562666 /* WXAnalyzerCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C74F0A2072145100AB4CAB /* WXAnalyzerCenter.m */; };
Expand Down Expand Up @@ -647,6 +653,9 @@
/* Begin PBXFileReference section */
042013AC1E66CD6A001FC79C /* WXValidateProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXValidateProtocol.h; sourceTree = "<group>"; };
1746EA7220E9D253007E55BD /* WXComponent_performance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXComponent_performance.h; sourceTree = "<group>"; };
17036A4C20FDE72F0029AE3D /* WXApmForInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApmForInstance.h; sourceTree = "<group>"; };
17036A4D20FDE72F0029AE3D /* WXInstanceApm.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXInstanceApm.m; sourceTree = "<group>"; };
17036A5220FDE7490029AE3D /* WXApmProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApmProtocol.h; sourceTree = "<group>"; };
176BE43B209172330086B6AF /* WXComponent+Layout.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = "WXComponent+Layout.mm"; path = "Layout/WXComponent+Layout.mm"; sourceTree = "<group>"; };
17B1221F2090AA9300387E33 /* WXSDKInstance_performance.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXSDKInstance_performance.m; sourceTree = "<group>"; };
17B122202090AA9300387E33 /* WXSDKInstance_performance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXSDKInstance_performance.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1022,6 +1031,25 @@
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
17036A4B20FDE7090029AE3D /* Performance */ = {
isa = PBXGroup;
children = (
17036A4C20FDE72F0029AE3D /* WXApmForInstance.h */,
17036A4D20FDE72F0029AE3D /* WXInstanceApm.m */,
);
path = Performance;
sourceTree = "<group>";
};
17B12228209170CF00387E33 /* Recovered References */ = {
isa = PBXGroup;
children = (
8431F8DD1F9EFCC100C76E1E /* WXScrollerComponent+Layout.mm */,
59D3CA461CFC3CC0008835DC /* WXSliderComponent.mm */,
847E1DE01F9A1BCF00A48124 /* WXCoreStyle.h */,
);
name = "Recovered References";
sourceTree = "<group>";
};
2A42AF861C23B33E00818EA6 /* WeexSDK_MTL */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1303,6 +1331,7 @@
77D161181C02DCB90010B15B /* Sources */ = {
isa = PBXGroup;
children = (
17036A4B20FDE7090029AE3D /* Performance */,
DCA446261EFA5DAF00D0CFA8 /* WeexSDK.h */,
C4F012711E1502A6003378D0 /* WebSocket */,
2AF626C61C191E2200E71A38 /* Layout */,
Expand Down Expand Up @@ -1405,6 +1434,7 @@
77D1611C1C02DD3C0010B15B /* Protocol */ = {
isa = PBXGroup;
children = (
17036A5220FDE7490029AE3D /* WXApmProtocol.h */,
17C74F0E2072147A00AB4CAB /* WXAnalyzerProtocol.h */,
59A596171CB630E50012CD52 /* WXNavigationProtocol.h */,
DCDFED001E68238F00C228D7 /* WXJSExceptionProtocol.h */,
Expand Down Expand Up @@ -1637,6 +1667,7 @@
775BEE711C1BD977008D1629 /* WXModuleProtocol.h in Headers */,
7469869F1C4E2C000054A57E /* NSArray+Weex.h in Headers */,
74CC7A201C2BF9DC00829368 /* WXListComponent.h in Headers */,
17036A5320FDE7490029AE3D /* WXApmProtocol.h in Headers */,
7423EB511F4ADE30001662D1 /* WXComponent+DataBinding.h in Headers */,
74FD6E041C7C0E9600DBEB6D /* WXScrollerProtocol.h in Headers */,
74CFDD3D1F459400007A1A66 /* WXRecycleListDataManager.h in Headers */,
Expand Down Expand Up @@ -1764,6 +1795,7 @@
74A4BA851CAD453400195969 /* WXNetworkProtocol.h in Headers */,
7461F8A81CFC33A800F62D44 /* WXThreadSafeMutableArray.h in Headers */,
D33451081D3E19480083598A /* WXCanvasComponent.h in Headers */,
17036A4E20FDE72F0029AE3D /* WXApmForInstance.h in Headers */,
74B8BEFE1DC47B72004A6027 /* WXRootView.h in Headers */,
77E65A111C155EA8008B8775 /* WXImageComponent.h in Headers */,
745B2D6C1E5A8E1E0092D38A /* WXRecyclerDataController.h in Headers */,
Expand Down Expand Up @@ -1844,6 +1876,7 @@
DCA445B11EFA576800D0CFA8 /* WXLog.h in Headers */,
DCA4459D1EFA56DB00D0CFA8 /* WXValidateProtocol.h in Headers */,
DCA445B81EFA579800D0CFA8 /* WXEventModuleProtocol.h in Headers */,
17036A5420FDE7490029AE3D /* WXApmProtocol.h in Headers */,
DCA445AE1EFA575700D0CFA8 /* WXMonitor.h in Headers */,
DCA445BD1EFA57B500D0CFA8 /* WXConfigCenterProtocol.h in Headers */,
DCA445A11EFA56FA00D0CFA8 /* WXScrollerProtocol.h in Headers */,
Expand Down Expand Up @@ -1907,6 +1940,7 @@
74B81AE31F73C3E300D3A61D /* WXRecycleListComponent.h in Headers */,
DCA445DA1EFA59A600D0CFA8 /* WXMultiColumnLayout.h in Headers */,
DCA445E01EFA59CD00D0CFA8 /* WXLoadingIndicator.h in Headers */,
17036A4F20FDE72F0029AE3D /* WXApmForInstance.h in Headers */,
DCA445E61EFA59E500D0CFA8 /* WXImageComponent.h in Headers */,
DCA4461B1EFA5AA200D0CFA8 /* WXDatePickerManager.h in Headers */,
DCA445D71EFA598D00D0CFA8 /* WXComponent+ViewManagement.h in Headers */,
Expand Down Expand Up @@ -2290,6 +2324,7 @@
74862F821E03A24500B7A041 /* WXComponentMethod.m in Sources */,
77E65A121C155EA8008B8775 /* WXImageComponent.m in Sources */,
74CFDD3E1F459400007A1A66 /* WXRecycleListDataManager.m in Sources */,
17036A5020FDE72F0029AE3D /* WXInstanceApm.m in Sources */,
2A837AB31CD9DE9200AEDF03 /* WXLoadingComponent.mm in Sources */,
2AE5B7531CAB7DBD0082FDDB /* WXAComponent.m in Sources */,
176BE43C209172330086B6AF /* WXComponent+Layout.mm in Sources */,
Expand Down Expand Up @@ -2380,6 +2415,7 @@
DCA445511EFA55B300D0CFA8 /* WXCycleSliderComponent.mm in Sources */,
DCE2CF9D1F46D4370021BDC4 /* WXVoiceOverModule.m in Sources */,
DCA445531EFA55B300D0CFA8 /* WXCellComponent.mm in Sources */,
17036A5120FDE72F0029AE3D /* WXInstanceApm.m in Sources */,
DCA445541EFA55B300D0CFA8 /* WXListComponent.mm in Sources */,
DCA445551EFA55B300D0CFA8 /* WXIndicatorComponent.m in Sources */,
17E5ACDB2091F05700EE81F1 /* WXComponent+Layout.mm in Sources */,
Expand Down