From 6a15ab613016f9128cb4b7fa54d799b06ccb06c7 Mon Sep 17 00:00:00 2001 From: Kiel Gillard Date: Thu, 7 Jul 2016 15:12:19 +1000 Subject: [PATCH] * Tidy the header imports, forward declaring classes and protocols where appropriate to avoid import cycles and using the framework/system header notation for imports occuring in .h files. * Perhaps controversially, decomposing ASRangeControllerUpdateRangeProtocol+Beta.h such that the categories on various classes are defined in the classes themselves since that's where the implementation of those categories is provided. * Updating unit tests and import other headers the tests took for granted. The tests could probably import the umbrella header and not have to worry about this. * Updating the "Life without Cocoapods" sample to build and run dependent on ASDK as a static library. * Added a "Life With Frameworks" sample app to build and run dependent on ASDK as a framework, proving the framework targets work. --- AsyncDisplayKit.xcodeproj/project.pbxproj | 4 +- .../xcschemes/AsyncDisplayKit-iOS.xcscheme | 2 +- .../xcschemes/AsyncDisplayKit.xcscheme | 2 +- AsyncDisplayKit/ASCollectionNode.h | 11 ++ AsyncDisplayKit/ASCollectionNode.mm | 3 +- AsyncDisplayKit/ASCollectionView.h | 3 +- AsyncDisplayKit/ASCollectionView.mm | 6 +- AsyncDisplayKit/ASMapNode.mm | 14 +- AsyncDisplayKit/ASPagerNode.h | 1 + AsyncDisplayKit/ASPagerNode.m | 2 + AsyncDisplayKit/ASTableNode.h | 12 +- AsyncDisplayKit/ASTableNode.mm | 2 + AsyncDisplayKit/ASTableView.mm | 1 + AsyncDisplayKit/ASTableViewInternal.h | 4 +- AsyncDisplayKit/ASVideoNode.mm | 6 + AsyncDisplayKit/ASViewController.h | 7 + AsyncDisplayKit/AsyncDisplayKit.h | 3 + .../Details/ASCollectionInternal.h | 10 +- AsyncDisplayKit/Details/ASEnvironment.h | 6 +- AsyncDisplayKit/Details/ASEnvironment.mm | 3 +- AsyncDisplayKit/Details/ASRangeController.h | 23 ++- AsyncDisplayKit/Details/ASRangeController.mm | 1 + ...SRangeControllerUpdateRangeProtocol+Beta.h | 37 +--- AsyncDisplayKit/Private/ASDefaultPlayButton.h | 2 +- AsyncDisplayKit/Private/ASDefaultPlayButton.m | 1 + .../Private/ASDisplayNode+FrameworkPrivate.h | 1 - .../Private/ASEnvironmentInternal.h | 2 +- AsyncDisplayKit/Private/ASInternalHelpers.h | 2 +- ...ASCollectionViewFlowLayoutInspectorTests.m | 1 + AsyncDisplayKitTests/ASCollectionViewTests.m | 1 + AsyncDisplayKitTests/ASTableViewTests.m | 1 + AsyncDisplayKitTests/ASTableViewThrashTests.m | 2 +- .../AppIcon.appiconset/Contents.json | 73 ++++++++ .../Base.lproj/LaunchScreen.storyboard | 27 +++ .../Life With Frameworks/Info.plist | 45 +++++ .../Life With Frameworks/main.m | 16 ++ .../project.pbxproj | 176 +++++++++++++++++- .../xcschemes/Life Without CocoaPods.xcscheme | 13 +- .../Life Without CocoaPods/Info.plist | 2 +- .../Life Without CocoaPods/ViewController.m | 16 +- 40 files changed, 450 insertions(+), 94 deletions(-) create mode 100644 smoke-tests/Life Without CocoaPods/Life With Frameworks/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 smoke-tests/Life Without CocoaPods/Life With Frameworks/Base.lproj/LaunchScreen.storyboard create mode 100644 smoke-tests/Life Without CocoaPods/Life With Frameworks/Info.plist create mode 100644 smoke-tests/Life Without CocoaPods/Life With Frameworks/main.m diff --git a/AsyncDisplayKit.xcodeproj/project.pbxproj b/AsyncDisplayKit.xcodeproj/project.pbxproj index df81db181d..f112662fd1 100644 --- a/AsyncDisplayKit.xcodeproj/project.pbxproj +++ b/AsyncDisplayKit.xcodeproj/project.pbxproj @@ -580,7 +580,6 @@ F7CE6C901D2CDB5800BE4C15 /* _ASTransitionContext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB55C25F1C6408D6004EDCF5 /* _ASTransitionContext.h */; }; F7CE6C911D2CDB5800BE4C15 /* _ASTransitionContext.m in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB55C2601C6408D6004EDCF5 /* _ASTransitionContext.m */; }; F7CE6C921D2CDB5800BE4C15 /* ASBatchFetching.m in CopyFiles */ = {isa = PBXBuildFile; fileRef = 044285061BAA63FE00D16268 /* ASBatchFetching.m */; }; - F7CE6C931D2CDB5800BE4C15 /* ASDisplayNode+FrameworkPrivate.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DE6EA3211C14000600183B10 /* ASDisplayNode+FrameworkPrivate.h */; }; F7CE6C941D2CDB5800BE4C15 /* ASDisplayNodeInternal.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 058D0A0C195D050800B7D73C /* ASDisplayNodeInternal.h */; }; F7CE6C951D2CDB5800BE4C15 /* ASLayoutTransition.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = E52405B41C8FEF16004DC8E7 /* ASLayoutTransition.h */; }; F7CE6C961D2CDB5800BE4C15 /* ASEnvironmentInternal.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 69E100691CA89CB600D88C1B /* ASEnvironmentInternal.h */; }; @@ -632,6 +631,7 @@ dstPath = "include/$(PRODUCT_NAME)"; dstSubfolderSpec = 16; files = ( + F7CE6C981D2CDB5800BE4C15 /* ASInternalHelpers.h in CopyFiles */, F7CE6CB71D2CE2D000BE4C15 /* ASLayoutableExtensibility.h in CopyFiles */, F7CE6C131D2CDB3E00BE4C15 /* ASPagerFlowLayout.h in CopyFiles */, F7CE6C141D2CDB3E00BE4C15 /* ASMapNode.h in CopyFiles */, @@ -761,12 +761,10 @@ F7CE6C901D2CDB5800BE4C15 /* _ASTransitionContext.h in CopyFiles */, F7CE6C911D2CDB5800BE4C15 /* _ASTransitionContext.m in CopyFiles */, F7CE6C921D2CDB5800BE4C15 /* ASBatchFetching.m in CopyFiles */, - F7CE6C931D2CDB5800BE4C15 /* ASDisplayNode+FrameworkPrivate.h in CopyFiles */, F7CE6C941D2CDB5800BE4C15 /* ASDisplayNodeInternal.h in CopyFiles */, F7CE6C951D2CDB5800BE4C15 /* ASLayoutTransition.h in CopyFiles */, F7CE6C961D2CDB5800BE4C15 /* ASEnvironmentInternal.h in CopyFiles */, F7CE6C971D2CDB5800BE4C15 /* ASImageNode+CGExtras.h in CopyFiles */, - F7CE6C981D2CDB5800BE4C15 /* ASInternalHelpers.h in CopyFiles */, F7CE6C991D2CDB5800BE4C15 /* ASLayoutSpecUtilities.h in CopyFiles */, F7CE6C9A1D2CDB5800BE4C15 /* ASMultidimensionalArrayUtils.h in CopyFiles */, F7CE6C9B1D2CDB5800BE4C15 /* ASPendingStateController.h in CopyFiles */, diff --git a/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit-iOS.xcscheme b/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit-iOS.xcscheme index ae3c3d3a9d..193b302afe 100644 --- a/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit-iOS.xcscheme +++ b/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit-iOS.xcscheme @@ -1,6 +1,6 @@ +#import +#import +#import #import @protocol ASCollectionViewLayoutFacilitatorProtocol; +@protocol ASCollectionDelegate; +@protocol ASCollectionDataSource; +@class ASCollectionView; NS_ASSUME_NONNULL_BEGIN @@ -104,4 +111,8 @@ NS_ASSUME_NONNULL_BEGIN @end +@interface ASCollectionNode (ASRangeControllerUpdateRangeProtocol) + +@end + NS_ASSUME_NONNULL_END diff --git a/AsyncDisplayKit/ASCollectionNode.mm b/AsyncDisplayKit/ASCollectionNode.mm index 2784c9a9d1..9f41145ed6 100644 --- a/AsyncDisplayKit/ASCollectionNode.mm +++ b/AsyncDisplayKit/ASCollectionNode.mm @@ -10,13 +10,14 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASCollectionNode.h" #import "ASCollectionInternal.h" #import "ASCollectionViewLayoutFacilitatorProtocol.h" +#import "ASCollectionNode.h" #import "ASDisplayNode+Subclasses.h" #import "ASEnvironmentInternal.h" #import "ASInternalHelpers.h" #import "ASRangeControllerUpdateRangeProtocol+Beta.h" +#import "ASCellNode+Internal.h" #include @interface _ASCollectionPendingState : NSObject diff --git a/AsyncDisplayKit/ASCollectionView.h b/AsyncDisplayKit/ASCollectionView.h index 9b7fe864b5..062fe5c445 100644 --- a/AsyncDisplayKit/ASCollectionView.h +++ b/AsyncDisplayKit/ASCollectionView.h @@ -14,13 +14,12 @@ #import #import #import -#import -#import @class ASCellNode; @class ASCollectionNode; @protocol ASCollectionDataSource; @protocol ASCollectionDelegate; +@protocol ASCollectionViewLayoutInspecting; NS_ASSUME_NONNULL_BEGIN diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index c3ebbbe0c6..5b180ed2af 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -13,7 +13,6 @@ #import "ASBatchFetching.h" #import "ASDelegateProxy.h" #import "ASCellNode+Internal.h" -#import "ASCollectionNode.h" #import "ASCollectionDataController.h" #import "ASCollectionViewLayoutController.h" #import "ASCollectionViewFlowLayoutInspector.h" @@ -22,8 +21,13 @@ #import "ASDisplayNode+Beta.h" #import "ASInternalHelpers.h" #import "UICollectionViewLayout+ASConvenience.h" +#import "ASRangeController.h" +#import "ASCollectionNode.h" +#import "ASCollectionView.h" #import "ASRangeControllerUpdateRangeProtocol+Beta.h" #import "_ASDisplayLayer.h" +#import "ASCollectionViewLayoutFacilitatorProtocol.h" + static const NSUInteger kASCollectionViewAnimationNone = UITableViewRowAnimationNone; static const ASSizeRange kInvalidSizeRange = {CGSizeZero, CGSizeZero}; diff --git a/AsyncDisplayKit/ASMapNode.mm b/AsyncDisplayKit/ASMapNode.mm index c8c2599b38..a0d1ec147a 100644 --- a/AsyncDisplayKit/ASMapNode.mm +++ b/AsyncDisplayKit/ASMapNode.mm @@ -10,13 +10,13 @@ #if TARGET_OS_IOS #import "ASMapNode.h" -#import -#import -#import -#import -#import -#import -#import +#import "ASDisplayNode+Subclasses.h" +#import "ASDisplayNodeExtras.h" +#import "ASInsetLayoutSpec.h" +#import "ASCenterLayoutSpec.h" +#import "ASThread.h" +#import "ASInternalHelpers.h" +#import "ASLayout.h" @interface ASMapNode() { diff --git a/AsyncDisplayKit/ASPagerNode.h b/AsyncDisplayKit/ASPagerNode.h index cbef217812..21b5d698e2 100644 --- a/AsyncDisplayKit/ASPagerNode.h +++ b/AsyncDisplayKit/ASPagerNode.h @@ -11,6 +11,7 @@ // #import +#import @class ASPagerNode; @class ASPagerFlowLayout; diff --git a/AsyncDisplayKit/ASPagerNode.m b/AsyncDisplayKit/ASPagerNode.m index c266ef18f3..b30cce61bb 100644 --- a/AsyncDisplayKit/ASPagerNode.m +++ b/AsyncDisplayKit/ASPagerNode.m @@ -14,6 +14,8 @@ #import "ASDelegateProxy.h" #import "ASDisplayNode+Subclasses.h" #import "ASPagerFlowLayout.h" +#import "ASCollectionView.h" +#import "ASCollectionViewProtocols.h" #import "UICollectionViewLayout+ASConvenience.h" @interface ASPagerNode () diff --git a/AsyncDisplayKit/ASTableNode.h b/AsyncDisplayKit/ASTableNode.h index 795e2ef95a..ece3386c2f 100644 --- a/AsyncDisplayKit/ASTableNode.h +++ b/AsyncDisplayKit/ASTableNode.h @@ -10,7 +10,13 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import +#import +#import +#import + +@protocol ASTableDataSource; +@protocol ASTableDelegate; +@class ASTableView; /** * ASTableNode is a node based class that wraps an ASTableView. It can be used @@ -28,3 +34,7 @@ @property (weak, nonatomic) id dataSource; @end + +@interface ASTableNode (ASRangeControllerUpdateRangeProtocol) + +@end diff --git a/AsyncDisplayKit/ASTableNode.mm b/AsyncDisplayKit/ASTableNode.mm index e5b09fea11..d64b7bb40a 100644 --- a/AsyncDisplayKit/ASTableNode.mm +++ b/AsyncDisplayKit/ASTableNode.mm @@ -16,6 +16,8 @@ #import "ASInternalHelpers.h" #import "ASRangeControllerUpdateRangeProtocol+Beta.h" #import "ASTableViewInternal.h" +#import "ASCellNode+Internal.h" +#import "ASTableNode.h" @interface _ASTablePendingState : NSObject @property (weak, nonatomic) id delegate; diff --git a/AsyncDisplayKit/ASTableView.mm b/AsyncDisplayKit/ASTableView.mm index 1244c2b893..b0154c3baa 100644 --- a/AsyncDisplayKit/ASTableView.mm +++ b/AsyncDisplayKit/ASTableView.mm @@ -25,6 +25,7 @@ #import "ASRangeController.h" #import "ASRangeControllerUpdateRangeProtocol+Beta.h" #import "_ASDisplayLayer.h" +#import "ASTableNode.h" #import diff --git a/AsyncDisplayKit/ASTableViewInternal.h b/AsyncDisplayKit/ASTableViewInternal.h index 22ac11ff7e..6c24652ae8 100644 --- a/AsyncDisplayKit/ASTableViewInternal.h +++ b/AsyncDisplayKit/ASTableViewInternal.h @@ -10,9 +10,11 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASTableNode.h" +#import @class ASDataController; +@class ASTableNode; +@class ASRangeController; @interface ASTableView (Internal) diff --git a/AsyncDisplayKit/ASVideoNode.mm b/AsyncDisplayKit/ASVideoNode.mm index 1248f8f9e2..64a25a4c60 100644 --- a/AsyncDisplayKit/ASVideoNode.mm +++ b/AsyncDisplayKit/ASVideoNode.mm @@ -8,8 +8,14 @@ // of patent rights can be found in the PATENTS file in the same directory. // #if TARGET_OS_IOS +#import +#import "ASDisplayNode+Subclasses.h" #import "ASVideoNode.h" #import "ASDefaultPlayButton.h" +#import "ASEqualityHelpers.h" +#import "ASInternalHelpers.h" +#import "ASDisplayNodeExtras.h" +#import "ASThread.h" static BOOL ASAssetIsEqual(AVAsset *asset1, AVAsset *asset2) { return ASObjectIsEqual(asset1, asset2) diff --git a/AsyncDisplayKit/ASViewController.h b/AsyncDisplayKit/ASViewController.h index 6222af8140..bb7e5381a2 100644 --- a/AsyncDisplayKit/ASViewController.h +++ b/AsyncDisplayKit/ASViewController.h @@ -74,4 +74,11 @@ typedef ASTraitCollection * _Nonnull (^ASDisplayTraitsForTraitWindowSizeBlock)(C @end +@interface ASViewController (ASRangeControllerUpdateRangeProtocol) + +/// Automatically adjust range mode based on view events if the containing node confirms to the ASRangeControllerUpdateRangeProtocol +@property (nonatomic, assign) BOOL automaticallyAdjustRangeModeBasedOnViewEvents; + +@end + NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/AsyncDisplayKit/AsyncDisplayKit.h b/AsyncDisplayKit/AsyncDisplayKit.h index 88547b0694..bdb769ec43 100644 --- a/AsyncDisplayKit/AsyncDisplayKit.h +++ b/AsyncDisplayKit/AsyncDisplayKit.h @@ -20,6 +20,7 @@ #import #import +#import #import #import #import @@ -28,6 +29,8 @@ #import #import #import +#import +#import #import #import diff --git a/AsyncDisplayKit/Details/ASCollectionInternal.h b/AsyncDisplayKit/Details/ASCollectionInternal.h index d110b85634..703409b075 100644 --- a/AsyncDisplayKit/Details/ASCollectionInternal.h +++ b/AsyncDisplayKit/Details/ASCollectionInternal.h @@ -10,10 +10,12 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASCollectionView.h" -#import "ASCollectionNode.h" -#import "ASDataController.h" -#import "ASRangeController.h" +#import + +@protocol ASCollectionViewLayoutFacilitatorProtocol; +@class ASCollectionNode; +@class ASDataController; +@class ASRangeController; @interface ASCollectionView () - (instancetype)_initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout layoutFacilitator:(id)layoutFacilitator ownedByNode:(BOOL)ownedByNode; diff --git a/AsyncDisplayKit/Details/ASEnvironment.h b/AsyncDisplayKit/Details/ASEnvironment.h index dd95c2e107..87c5464040 100644 --- a/AsyncDisplayKit/Details/ASEnvironment.h +++ b/AsyncDisplayKit/Details/ASEnvironment.h @@ -10,9 +10,9 @@ #import -#import "ASDimension.h" -#import "ASStackLayoutDefines.h" -#import "ASRelativeSize.h" +#import +#import +#import @protocol ASEnvironment; @class UITraitCollection; diff --git a/AsyncDisplayKit/Details/ASEnvironment.mm b/AsyncDisplayKit/Details/ASEnvironment.mm index 77ffca7a0f..54a2049e19 100644 --- a/AsyncDisplayKit/Details/ASEnvironment.mm +++ b/AsyncDisplayKit/Details/ASEnvironment.mm @@ -8,9 +8,8 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASEnvironment.h" #import "ASEnvironmentInternal.h" -#import +#import "ASAvailability.h" ASEnvironmentLayoutOptionsState _ASEnvironmentLayoutOptionsStateMakeDefault() { diff --git a/AsyncDisplayKit/Details/ASRangeController.h b/AsyncDisplayKit/Details/ASRangeController.h index c79124a961..6341e1dd17 100644 --- a/AsyncDisplayKit/Details/ASRangeController.h +++ b/AsyncDisplayKit/Details/ASRangeController.h @@ -9,11 +9,11 @@ // #import - -#import +#import #import #import #import +#import #define ASRangeControllerLoggingEnabled 0 @@ -203,4 +203,23 @@ NS_ASSUME_NONNULL_BEGIN @end +@interface ASRangeController (ASRangeControllerUpdateRangeProtocol) + +/** + * Update the range mode for a range controller to a explicitly set mode until the node that contains the range + * controller becomes visible again + * + * Logic for the automatic range mode: + * 1. If there are no visible node paths available nothing is to be done and no range update will happen + * 2. The initial range update if the range controller is visible always will be ASLayoutRangeModeCount + * (ASLayoutRangeModeMinimum) as it's the initial fetch + * 3. The range mode set explicitly via updateCurrentRangeWithMode: will last at least one range update. After that it + the range controller will use the explicit set range mode until it becomes visible and a new range update was + triggered or a new range mode via updateCurrentRangeWithMode: is set + * 4. If range mode is not explicitly set the range mode is variying based if the range controller is visible or not + */ +- (void)updateCurrentRangeWithMode:(ASLayoutRangeMode)rangeMode; + +@end + NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/AsyncDisplayKit/Details/ASRangeController.mm b/AsyncDisplayKit/Details/ASRangeController.mm index 6c84935540..270ae176f0 100644 --- a/AsyncDisplayKit/Details/ASRangeController.mm +++ b/AsyncDisplayKit/Details/ASRangeController.mm @@ -17,6 +17,7 @@ #import "ASMultiDimensionalArrayUtils.h" #import "ASInternalHelpers.h" #import "ASDisplayNode+FrameworkPrivate.h" +#import "ASCellNode.h" @interface ASRangeController () { diff --git a/AsyncDisplayKit/Details/ASRangeControllerUpdateRangeProtocol+Beta.h b/AsyncDisplayKit/Details/ASRangeControllerUpdateRangeProtocol+Beta.h index 09b10cd478..831246f33f 100644 --- a/AsyncDisplayKit/Details/ASRangeControllerUpdateRangeProtocol+Beta.h +++ b/AsyncDisplayKit/Details/ASRangeControllerUpdateRangeProtocol+Beta.h @@ -8,12 +8,7 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASLayoutRangeType.h" -#import "ASViewController.h" -#import "ASRangeController.h" -#import "ASCollectionNode.h" -#import "ASTableNode.h" - +#import @protocol ASRangeControllerUpdateRangeProtocol @@ -34,39 +29,9 @@ @end -@interface ASRangeController (ASRangeControllerUpdateRangeProtocol) - -/** - * Update the range mode for a range controller to a explicitly set mode until the node that contains the range - * controller becomes visible again - * - * Logic for the automatic range mode: - * 1. If there are no visible node paths available nothing is to be done and no range update will happen - * 2. The initial range update if the range controller is visible always will be ASLayoutRangeModeCount - * (ASLayoutRangeModeMinimum) as it's the initial fetch - * 3. The range mode set explicitly via updateCurrentRangeWithMode: will last at least one range update. After that it - the range controller will use the explicit set range mode until it becomes visible and a new range update was - triggered or a new range mode via updateCurrentRangeWithMode: is set - * 4. If range mode is not explicitly set the range mode is variying based if the range controller is visible or not - */ -- (void)updateCurrentRangeWithMode:(ASLayoutRangeMode)rangeMode; - -@end -@interface ASCollectionNode (ASRangeControllerUpdateRangeProtocol) - -@end -@interface ASTableNode (ASRangeControllerUpdateRangeProtocol) - -@end -@interface ASViewController (ASRangeControllerUpdateRangeProtocol) - -/// Automatically adjust range mode based on view events if the containing node confirms to the ASRangeControllerUpdateRangeProtocol -@property (nonatomic, assign) BOOL automaticallyAdjustRangeModeBasedOnViewEvents; - -@end diff --git a/AsyncDisplayKit/Private/ASDefaultPlayButton.h b/AsyncDisplayKit/Private/ASDefaultPlayButton.h index 08939784f7..cab4ae4231 100644 --- a/AsyncDisplayKit/Private/ASDefaultPlayButton.h +++ b/AsyncDisplayKit/Private/ASDefaultPlayButton.h @@ -10,7 +10,7 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import +#import @interface ASDefaultPlayButton : ASButtonNode diff --git a/AsyncDisplayKit/Private/ASDefaultPlayButton.m b/AsyncDisplayKit/Private/ASDefaultPlayButton.m index b64650235b..37012d609e 100644 --- a/AsyncDisplayKit/Private/ASDefaultPlayButton.m +++ b/AsyncDisplayKit/Private/ASDefaultPlayButton.m @@ -11,6 +11,7 @@ // #import "ASDefaultPlayButton.h" +#import "_ASDisplayLayer.h" @implementation ASDefaultPlayButton diff --git a/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h b/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h index 78ce6ce05e..b0f8f4bec8 100644 --- a/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h +++ b/AsyncDisplayKit/Private/ASDisplayNode+FrameworkPrivate.h @@ -17,7 +17,6 @@ #import "ASDisplayNode.h" #import "ASSentinel.h" #import "ASThread.h" -#import "_ASDisplayLayer.h" NS_ASSUME_NONNULL_BEGIN diff --git a/AsyncDisplayKit/Private/ASEnvironmentInternal.h b/AsyncDisplayKit/Private/ASEnvironmentInternal.h index 26f0747b81..0f1bcf1919 100644 --- a/AsyncDisplayKit/Private/ASEnvironmentInternal.h +++ b/AsyncDisplayKit/Private/ASEnvironmentInternal.h @@ -8,7 +8,7 @@ // of patent rights can be found in the PATENTS file in the same directory. // -#import "ASEnvironment.h" +#import #pragma once diff --git a/AsyncDisplayKit/Private/ASInternalHelpers.h b/AsyncDisplayKit/Private/ASInternalHelpers.h index f80f3c82e0..dac6ef6530 100644 --- a/AsyncDisplayKit/Private/ASInternalHelpers.h +++ b/AsyncDisplayKit/Private/ASInternalHelpers.h @@ -11,7 +11,7 @@ #import #import -#import "ASBaseDefines.h" +#import ASDISPLAYNODE_EXTERN_C_BEGIN diff --git a/AsyncDisplayKitTests/ASCollectionViewFlowLayoutInspectorTests.m b/AsyncDisplayKitTests/ASCollectionViewFlowLayoutInspectorTests.m index 1e33f77cd6..ba02de42e7 100644 --- a/AsyncDisplayKitTests/ASCollectionViewFlowLayoutInspectorTests.m +++ b/AsyncDisplayKitTests/ASCollectionViewFlowLayoutInspectorTests.m @@ -13,6 +13,7 @@ #import "ASCollectionView.h" #import "ASCollectionViewFlowLayoutInspector.h" +#import "ASCellNode.h" /** * Test Data Source diff --git a/AsyncDisplayKitTests/ASCollectionViewTests.m b/AsyncDisplayKitTests/ASCollectionViewTests.m index 2ed3584149..dc093c9ec7 100644 --- a/AsyncDisplayKitTests/ASCollectionViewTests.m +++ b/AsyncDisplayKitTests/ASCollectionViewTests.m @@ -12,6 +12,7 @@ #import "ASCollectionView.h" #import "ASCollectionDataController.h" #import "ASCollectionViewFlowLayoutInspector.h" +#import "ASCellNode.h" @interface ASCollectionViewTestDelegate : NSObject diff --git a/AsyncDisplayKitTests/ASTableViewTests.m b/AsyncDisplayKitTests/ASTableViewTests.m index 98914d1bd4..42b7a870d2 100644 --- a/AsyncDisplayKitTests/ASTableViewTests.m +++ b/AsyncDisplayKitTests/ASTableViewTests.m @@ -14,6 +14,7 @@ #import "ASTableViewInternal.h" #import "ASDisplayNode+Subclasses.h" #import "ASChangeSetDataController.h" +#import "ASCellNode.h" #define NumberOfSections 10 #define NumberOfRowsPerSection 20 diff --git a/AsyncDisplayKitTests/ASTableViewThrashTests.m b/AsyncDisplayKitTests/ASTableViewThrashTests.m index 62ddffdd90..5edb5874b0 100644 --- a/AsyncDisplayKitTests/ASTableViewThrashTests.m +++ b/AsyncDisplayKitTests/ASTableViewThrashTests.m @@ -31,7 +31,7 @@ static NSString *ASThrashArrayDescription(NSArray *array) { NSMutableString *str = [NSMutableString stringWithString:@"(\n"]; NSInteger i = 0; for (id obj in array) { - [str appendFormat:@"\t[%ld]: \"%@\",\n", i, obj]; + [str appendFormat:@"\t[%ld]: \"%@\",\n", (long)i, obj]; i += 1; } [str appendString:@")"]; diff --git a/smoke-tests/Life Without CocoaPods/Life With Frameworks/Assets.xcassets/AppIcon.appiconset/Contents.json b/smoke-tests/Life Without CocoaPods/Life With Frameworks/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..eeea76c2db --- /dev/null +++ b/smoke-tests/Life Without CocoaPods/Life With Frameworks/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,73 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/smoke-tests/Life Without CocoaPods/Life With Frameworks/Base.lproj/LaunchScreen.storyboard b/smoke-tests/Life Without CocoaPods/Life With Frameworks/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000000..ebf48f6039 --- /dev/null +++ b/smoke-tests/Life Without CocoaPods/Life With Frameworks/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smoke-tests/Life Without CocoaPods/Life With Frameworks/Info.plist b/smoke-tests/Life Without CocoaPods/Life With Frameworks/Info.plist new file mode 100644 index 0000000000..eabb3ae346 --- /dev/null +++ b/smoke-tests/Life Without CocoaPods/Life With Frameworks/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/smoke-tests/Life Without CocoaPods/Life With Frameworks/main.m b/smoke-tests/Life Without CocoaPods/Life With Frameworks/main.m new file mode 100644 index 0000000000..3f9d50d481 --- /dev/null +++ b/smoke-tests/Life Without CocoaPods/Life With Frameworks/main.m @@ -0,0 +1,16 @@ +// +// main.m +// Life With Frameworks +// +// Created by Kiel Gillard on 7/07/2016. +// Copyright © 2016 Facebook. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/project.pbxproj b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/project.pbxproj index 9a0904bba1..21f17c4b12 100644 --- a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/project.pbxproj +++ b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/project.pbxproj @@ -16,10 +16,24 @@ 0589692A1ABCE17C0059CE2A /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 058969291ABCE17C0059CE2A /* AssetsLibrary.framework */; }; 0589692C1ABCE1820059CE2A /* Photos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0589692B1ABCE1820059CE2A /* Photos.framework */; }; 92DD2FEC1BF4D8BB0074C9DD /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92DD2FEB1BF4D8BB0074C9DD /* MapKit.framework */; }; + F729B8BB1D2E176700C9EDBC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F729B8BA1D2E176700C9EDBC /* main.m */; }; + F729B8C61D2E176700C9EDBC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F729B8C51D2E176700C9EDBC /* Assets.xcassets */; }; + F729B8C91D2E176700C9EDBC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F729B8C71D2E176700C9EDBC /* LaunchScreen.storyboard */; }; + F729B8D11D2E17A300C9EDBC /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 058968F71ABCE06E0059CE2A /* AppDelegate.m */; }; + F729B8D21D2E17A300C9EDBC /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 058968FA1ABCE06E0059CE2A /* ViewController.m */; }; + F729B8D31D2E17C800C9EDBC /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7CE6CB31D2CDFFB00BE4C15 /* AsyncDisplayKit.framework */; }; + F729B8D41D2E17C800C9EDBC /* AsyncDisplayKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = F7CE6CB31D2CDFFB00BE4C15 /* AsyncDisplayKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; F7CE6CB61D2CE00800BE4C15 /* libAsyncDisplayKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F7CE6CAD1D2CDFFB00BE4C15 /* libAsyncDisplayKit.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + F729B8D51D2E17C800C9EDBC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F7CE6CA51D2CDFFB00BE4C15 /* AsyncDisplayKit.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = B35061D91B010EDF0018CF92; + remoteInfo = "AsyncDisplayKit-iOS"; + }; F7CE6CAC1D2CDFFB00BE4C15 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F7CE6CA51D2CDFFB00BE4C15 /* AsyncDisplayKit.xcodeproj */; @@ -57,6 +71,20 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + F729B8D71D2E17C800C9EDBC /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + F729B8D41D2E17C800C9EDBC /* AsyncDisplayKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 058968EF1ABCE06E0059CE2A /* Life Without CocoaPods.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Life Without CocoaPods.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 058968F31ABCE06E0059CE2A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -71,6 +99,11 @@ 058969291ABCE17C0059CE2A /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; 0589692B1ABCE1820059CE2A /* Photos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Photos.framework; path = System/Library/Frameworks/Photos.framework; sourceTree = SDKROOT; }; 92DD2FEB1BF4D8BB0074C9DD /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; + F729B8B71D2E176700C9EDBC /* Life With Frameworks.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Life With Frameworks.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + F729B8BA1D2E176700C9EDBC /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + F729B8C51D2E176700C9EDBC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + F729B8C81D2E176700C9EDBC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + F729B8CA1D2E176700C9EDBC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F7CE6CA51D2CDFFB00BE4C15 /* AsyncDisplayKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AsyncDisplayKit.xcodeproj; path = ../../AsyncDisplayKit.xcodeproj; sourceTree = ""; }; /* End PBXFileReference section */ @@ -86,6 +119,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F729B8B41D2E176700C9EDBC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F729B8D31D2E17C800C9EDBC /* AsyncDisplayKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -97,6 +138,7 @@ 058969291ABCE17C0059CE2A /* AssetsLibrary.framework */, F7CE6CA51D2CDFFB00BE4C15 /* AsyncDisplayKit.xcodeproj */, 058968F11ABCE06E0059CE2A /* Life Without CocoaPods */, + F729B8B81D2E176700C9EDBC /* Life With Frameworks */, 058968F01ABCE06E0059CE2A /* Products */, ); indentWidth = 2; @@ -108,6 +150,7 @@ isa = PBXGroup; children = ( 058968EF1ABCE06E0059CE2A /* Life Without CocoaPods.app */, + F729B8B71D2E176700C9EDBC /* Life With Frameworks.app */, ); name = Products; sourceTree = ""; @@ -136,6 +179,25 @@ name = "Supporting Files"; sourceTree = ""; }; + F729B8B81D2E176700C9EDBC /* Life With Frameworks */ = { + isa = PBXGroup; + children = ( + F729B8C51D2E176700C9EDBC /* Assets.xcassets */, + F729B8C71D2E176700C9EDBC /* LaunchScreen.storyboard */, + F729B8CA1D2E176700C9EDBC /* Info.plist */, + F729B8B91D2E176700C9EDBC /* Supporting Files */, + ); + path = "Life With Frameworks"; + sourceTree = ""; + }; + F729B8B91D2E176700C9EDBC /* Supporting Files */ = { + isa = PBXGroup; + children = ( + F729B8BA1D2E176700C9EDBC /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; F7CE6CA61D2CDFFB00BE4C15 /* Products */ = { isa = PBXGroup; children = ( @@ -168,18 +230,40 @@ productReference = 058968EF1ABCE06E0059CE2A /* Life Without CocoaPods.app */; productType = "com.apple.product-type.application"; }; + F729B8B61D2E176700C9EDBC /* Life With Frameworks */ = { + isa = PBXNativeTarget; + buildConfigurationList = F729B8D01D2E176700C9EDBC /* Build configuration list for PBXNativeTarget "Life With Frameworks" */; + buildPhases = ( + F729B8B31D2E176700C9EDBC /* Sources */, + F729B8B41D2E176700C9EDBC /* Frameworks */, + F729B8B51D2E176700C9EDBC /* Resources */, + F729B8D71D2E17C800C9EDBC /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + F729B8D61D2E17C800C9EDBC /* PBXTargetDependency */, + ); + name = "Life With Frameworks"; + productName = "Life With Frameworks"; + productReference = F729B8B71D2E176700C9EDBC /* Life With Frameworks.app */; + productType = "com.apple.product-type.application"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 058968E71ABCE06E0059CE2A /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0620; + LastUpgradeCheck = 0730; ORGANIZATIONNAME = Facebook; TargetAttributes = { 058968EE1ABCE06E0059CE2A = { CreatedOnToolsVersion = 6.2; }; + F729B8B61D2E176700C9EDBC = { + CreatedOnToolsVersion = 7.3.1; + }; }; }; buildConfigurationList = 058968EA1ABCE06E0059CE2A /* Build configuration list for PBXProject "Life Without CocoaPods" */; @@ -202,6 +286,7 @@ projectRoot = ""; targets = ( 058968EE1ABCE06E0059CE2A /* Life Without CocoaPods */, + F729B8B61D2E176700C9EDBC /* Life With Frameworks */, ); }; /* End PBXProject section */ @@ -248,6 +333,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F729B8B51D2E176700C9EDBC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F729B8C91D2E176700C9EDBC /* LaunchScreen.storyboard in Resources */, + F729B8C61D2E176700C9EDBC /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -261,9 +355,24 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F729B8B31D2E176700C9EDBC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F729B8D21D2E17A300C9EDBC /* ViewController.m in Sources */, + F729B8D11D2E17A300C9EDBC /* AppDelegate.m in Sources */, + F729B8BB1D2E176700C9EDBC /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + F729B8D61D2E17C800C9EDBC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "AsyncDisplayKit-iOS"; + targetProxy = F729B8D51D2E17C800C9EDBC /* PBXContainerItemProxy */; + }; F7CE6CB51D2CE00300BE4C15 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = AsyncDisplayKit; @@ -271,6 +380,17 @@ }; /* End PBXTargetDependency section */ +/* Begin PBXVariantGroup section */ + F729B8C71D2E176700C9EDBC /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + F729B8C81D2E176700C9EDBC /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 058969101ABCE06E0059CE2A /* Debug */ = { isa = XCBuildConfiguration; @@ -292,6 +412,7 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_GENERATE_TEST_COVERAGE_FILES = YES; @@ -359,14 +480,12 @@ INFOPLIST_FILE = "Life Without CocoaPods/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "/Users/nadi/src/AsyncDisplayKit/build/Debug-iphoneos", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = ( "-ObjC", "-lc++", ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -378,18 +497,49 @@ INFOPLIST_FILE = "Life Without CocoaPods/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.1; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "/Users/nadi/src/AsyncDisplayKit/build/Debug-iphoneos", - ); + LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = ( "-ObjC", "-lc++", ); + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; }; + F729B8CB1D2E176700C9EDBC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_TESTABILITY = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Life With Frameworks/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.Life-With-Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + F729B8CC1D2E176700C9EDBC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Life With Frameworks/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.Life-With-Frameworks"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -411,6 +561,14 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + F729B8D01D2E176700C9EDBC /* Build configuration list for PBXNativeTarget "Life With Frameworks" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F729B8CB1D2E176700C9EDBC /* Debug */, + F729B8CC1D2E176700C9EDBC /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; /* End XCConfigurationList section */ }; rootObject = 058968E71ABCE06E0059CE2A /* Project object */; diff --git a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/xcshareddata/xcschemes/Life Without CocoaPods.xcscheme b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/xcshareddata/xcschemes/Life Without CocoaPods.xcscheme index 71e83345d7..2abacce743 100644 --- a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/xcshareddata/xcschemes/Life Without CocoaPods.xcscheme +++ b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods.xcodeproj/xcshareddata/xcschemes/Life Without CocoaPods.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> @@ -38,15 +38,18 @@ ReferencedContainer = "container:Life Without CocoaPods.xcodeproj"> + + @@ -62,10 +65,10 @@ diff --git a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/Info.plist b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/Info.plist index 20d72f5238..fb4115c84c 100644 --- a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/Info.plist +++ b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.facebook.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/ViewController.m b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/ViewController.m index 6fe33cada7..9d7af84d65 100644 --- a/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/ViewController.m +++ b/smoke-tests/Life Without CocoaPods/Life Without CocoaPods/ViewController.m @@ -12,21 +12,19 @@ #import -@interface ViewController () { - ASTextNode *_textNode; -} - +@interface ViewController () +@property (nonatomic, strong) ASTextNode *textNode; @end @implementation ViewController - (void)viewDidLoad { - _textNode = [[ASTextNode alloc] init]; - _textNode.attributedString = [[NSAttributedString alloc] initWithString:@"Testing, testing."]; - [_textNode measure:self.view.bounds.size]; - _textNode.frame = (CGRect){ .origin = CGPointZero, .size = _textNode.calculatedSize }; - [self.view addSubnode:_textNode]; + self.textNode = [[ASTextNode alloc] init]; + self.textNode.attributedString = [[NSAttributedString alloc] initWithString:@"Testing, testing." attributes:@{ NSForegroundColorAttributeName: [UIColor redColor] }]; + [self.textNode measure:self.view.bounds.size]; + self.textNode.frame = (CGRect){ .origin = CGPointZero, .size = self.textNode.calculatedSize }; + [self.view addSubnode:self.textNode]; } @end