From e9bd484149a71113d3d07f5b6496c2508fd2266b Mon Sep 17 00:00:00 2001 From: Andy Finnell Date: Tue, 21 May 2024 13:04:39 -0400 Subject: [PATCH] Update to Xcode 15 (#2107) * Update to Xcode 15 ## Summary We want to make Texture build with recent tools like Xcode 15. Part of this is bumping the minimum supported OS to iOS 14. I only removed the dead code (i.e. code gated on versions older than iOS 14). There are still some warnings about outdated APIs in use, but they are non-trivial changes to fix. ## Test plan Run all the examples. Run all the unit tests and make them pass. * Use Xcode 15.3 so we have 17.4 simulators * Fixing an asset catalog compiler error when building against iPhone SE * Fix a couple of file extensions for assets A couple of PNGs were marked as JPGs --- .github/workflows/ci-master-only.yml | 4 +- .github/workflows/ci-pull-requests-only.yml | 4 +- .github/workflows/ci.yml | 4 +- .ruby-version | 1 + AsyncDisplayKit.xcodeproj/project.pbxproj | 92 ++++++++---- .../xcschemes/AsyncDisplayKit.xcscheme | 2 +- Cartfile | 4 +- Cartfile.resolved | 7 +- Podfile | 8 +- Podfile.lock | 20 --- Source/ASCollectionView.mm | 8 +- Source/ASDKViewController.mm | 17 +-- Source/ASDisplayNode+Yoga.mm | 2 +- Source/ASDisplayNode.mm | 72 +++++----- Source/ASImageNode+AnimatedImage.mm | 6 +- Source/ASImageNode.mm | 27 ++-- Source/ASMultiplexImageNode.mm | 4 +- Source/ASTableView.mm | 8 +- Source/Base/ASAvailability.h | 4 - Source/Base/ASSignpost.h | 20 --- Source/Debug/AsyncDisplayKit+Debug.mm | 13 +- Source/Details/ASGraphicsContext.mm | 133 +++++++----------- Source/Details/ASThread.h | 28 +--- Source/Details/ASTraitCollection.mm | 87 ++++-------- Source/Details/_ASDisplayViewAccessiblity.mm | 31 ++-- Source/Private/ASDisplayNode+UIViewBridge.mm | 46 ++---- Source/Private/_ASPendingState.mm | 42 +++--- .../TextExperiment/Component/ASTextLayout.h | 6 +- .../TextExperiment/Component/ASTextLayout.mm | 6 +- Source/UIImage+ASConvenience.mm | 7 +- .../ASDKListKit.xcodeproj/project.pbxproj | 78 ++++------ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ SubspecWorkspaces/ASDKListKit/Podfile | 4 +- Tests/ASDisplayNodeSnapshotTests.mm | 42 ++---- Tests/ASDisplayNodeTests.mm | 12 +- Tests/ASDisplayNodeTestsHelper.mm | 2 - Tests/ASGraphicsContextTests.mm | 9 -- Tests/ASImageNodeSnapshotTests.mm | 8 -- Tests/ASSnapshotTestCase.mm | 6 +- Tests/ASTextNodePerformanceTests.mm | 4 +- Tests/ASTextNodeSnapshotTests.mm | 11 -- Tests/ASThrashUtility.m | 6 +- Texture.podspec | 29 +++- build.sh | 31 ++-- examples/ASCollectionView/Podfile | 2 +- examples/ASCollectionView/Podfile.lock | 59 -------- .../Sample.xcodeproj/project.pbxproj | 24 ++++ examples/ASDKLayoutTransition/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/ASDKTube/Podfile | 2 +- .../ASDKTube/Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/ASDKgram/Podfile | 2 +- .../ASDKgram/Sample.xcodeproj/project.pbxproj | 24 ++++ examples/ASMapNode/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/ASViewController/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../AppIcon.appiconset/Contents.json | 45 ++++-- .../ASViewController/Sample/DetailCellNode.m | 2 +- examples/AnimatedGIF/Podfile | 3 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/AsyncDisplayKitOverview/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/CatDealsCollectionView/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/CustomCollectionView-Swift/Podfile | 2 +- .../CustomCollectionView-Swift/Podfile.lock | 59 -------- .../Sample.xcodeproj/project.pbxproj | 10 +- .../AppIcon.appiconset/Contents.json | 47 +------ .../Sample/Assets.xcassets/Contents.json | 6 +- .../image_0.imageset/Contents.json | 8 +- .../{image_0.jpg => image_0.png} | Bin .../image_1.imageset/Contents.json | 8 +- .../image_10.imageset/Contents.json | 8 +- .../image_11.imageset/Contents.json | 8 +- .../image_12.imageset/Contents.json | 8 +- .../image_13.imageset/Contents.json | 8 +- .../image_2.imageset/Contents.json | 8 +- .../image_3.imageset/Contents.json | 8 +- .../{image_3.jpg => image_3.png} | Bin .../image_4.imageset/Contents.json | 8 +- .../image_5.imageset/Contents.json | 8 +- .../image_6.imageset/Contents.json | 8 +- .../image_7.imageset/Contents.json | 8 +- .../image_8.imageset/Contents.json | 8 +- .../image_9.imageset/Contents.json | 8 +- examples/CustomCollectionView/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../HorizontalWithinVerticalScrolling/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ examples/Kittens/Podfile | 2 +- .../Kittens/Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/LayoutSpecExamples-Swift/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 2 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/LayoutSpecExamples/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/PagerNode/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/SocialAppLayout-Inverted/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../Sample/PostNode.m | 9 +- examples/SocialAppLayout/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/Swift/Podfile | 2 +- .../Swift/Sample.xcodeproj/project.pbxproj | 2 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../VerticalWithinHorizontalScrolling/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples/Videos/Podfile | 2 +- .../Videos/Sample.xcodeproj/project.pbxproj | 24 ++++ .../contents.xcworkspacedata | 10 ++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples_extra/ASDKgram-Swift/Podfile | 2 +- examples_extra/ASDKgram-Swift/Podfile.lock | 44 ------ .../ASLayoutSpecPlayground-Swift/Podfile | 2 +- examples_extra/ASTableViewStressTest/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 23 +-- examples_extra/ASTraitCollection/Podfile | 2 +- .../BackgroundPropertySetting/Podfile | 2 +- examples_extra/CarthageBuildTest/Cartfile | 2 +- .../Podfile | 2 +- examples_extra/EditableText/Podfile | 2 +- examples_extra/Multiplex/Podfile | 2 +- examples_extra/Placeholders/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 42 +++++- .../contents.xcworkspacedata | 10 ++ examples_extra/RepoSearcher/Podfile | 2 +- .../RepoSearcher.xcodeproj/project.pbxproj | 29 ++-- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ .../RepoSearcher/AppDelegate.swift | 2 +- .../RepoSearcher/SearchViewController.swift | 2 +- .../Shop/Shop.xcodeproj/project.pbxproj | 38 ++++- .../Shop/Scenes/Shop/ShopViewController.swift | 2 +- examples_extra/SynchronousConcurrency/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 23 +-- examples_extra/SynchronousKittens/Podfile | 2 +- examples_extra/TextStressTest/Podfile | 2 +- .../Sample.xcodeproj/project.pbxproj | 35 +---- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++ examples_extra/VideoTableView/Podfile | 2 +- 168 files changed, 1359 insertions(+), 1004 deletions(-) create mode 100644 .ruby-version delete mode 100644 Podfile.lock create mode 100644 SubspecWorkspaces/ASDKListKit/ASDKListKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/ASCollectionView/Podfile.lock create mode 100644 examples/ASDKLayoutTransition/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/ASDKLayoutTransition/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/ASDKTube/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/ASDKTube/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/ASMapNode/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/ASMapNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/ASViewController/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/ASViewController/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/AnimatedGIF/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/AnimatedGIF/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/AsyncDisplayKitOverview/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/AsyncDisplayKitOverview/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/CatDealsCollectionView/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/CatDealsCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/CustomCollectionView-Swift/Podfile.lock rename examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/{image_0.jpg => image_0.png} (100%) rename examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/{image_3.jpg => image_3.png} (100%) create mode 100644 examples/CustomCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/HorizontalWithinVerticalScrolling/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/Kittens/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/Kittens/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/LayoutSpecExamples-Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/LayoutSpecExamples/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/PagerNode/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/PagerNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/SocialAppLayout-Inverted/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/SocialAppLayout-Inverted/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/SocialAppLayout/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/SocialAppLayout/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples/Videos/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples/Videos/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples_extra/ASDKgram-Swift/Podfile.lock create mode 100644 examples_extra/Placeholders/Sample.xcworkspace/contents.xcworkspacedata create mode 100644 examples_extra/RepoSearcher/RepoSearcher.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 examples_extra/TextStressTest/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/.github/workflows/ci-master-only.yml b/.github/workflows/ci-master-only.yml index a6086f4ba..c7a1110a2 100644 --- a/.github/workflows/ci-master-only.yml +++ b/.github/workflows/ci-master-only.yml @@ -8,9 +8,9 @@ on: jobs: cocoapods-lint: env: - DEVELOPER_DIR: /Applications/Xcode_14.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer name: Verify that podspec lints - runs-on: macOS-latest + runs-on: macos-latest steps: - name: Checkout the Git repository uses: actions/checkout@v2 diff --git a/.github/workflows/ci-pull-requests-only.yml b/.github/workflows/ci-pull-requests-only.yml index 74589129a..5fb368222 100644 --- a/.github/workflows/ci-pull-requests-only.yml +++ b/.github/workflows/ci-pull-requests-only.yml @@ -8,7 +8,7 @@ on: jobs: buildsh: env: - DEVELOPER_DIR: /Applications/Xcode_14.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer strategy: matrix: mode: [cocoapods-lint-default-subspecs, cocoapods-lint-other-subspecs] @@ -18,7 +18,7 @@ jobs: - mode: cocoapods-lint-other-subspecs name: Verify that other subspecs lint name: ${{ matrix.name }} - runs-on: macOS-latest + runs-on: macos-latest steps: - name: Checkout the Git repository uses: actions/checkout@v2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a93bf690f..885175a10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: [push, pull_request] jobs: buildsh: env: - DEVELOPER_DIR: /Applications/Xcode_14.2.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_15.3.app/Contents/Developer strategy: matrix: mode: [tests, framework, life-without-cocoapods, carthage, examples-pt1, examples-pt2, examples-pt3, examples-pt4] @@ -27,7 +27,7 @@ jobs: - mode: examples-pt4 name: Build examples (examples-pt4) name: ${{ matrix.name }} - runs-on: macOS-latest + runs-on: macos-latest steps: - name: Checkout the Git repository uses: actions/checkout@v2 diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 000000000..15a279981 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.3.0 diff --git a/AsyncDisplayKit.xcodeproj/project.pbxproj b/AsyncDisplayKit.xcodeproj/project.pbxproj index f6f4fc28b..09c40c062 100644 --- a/AsyncDisplayKit.xcodeproj/project.pbxproj +++ b/AsyncDisplayKit.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 47; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -2160,7 +2160,7 @@ 058D09B8195D04C000B7D73C /* Sources */, 058D09B9195D04C000B7D73C /* Frameworks */, 058D09BA195D04C000B7D73C /* Resources */, - 572FAC967DD43A0D06367D02 /* [CP] Embed Pods Frameworks */, + 278B6002A4EF2D1E2D748E1E /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -2196,8 +2196,9 @@ 058D09A4195D04C000B7D73C /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; CLASSPREFIX = AS; - LastUpgradeCheck = 1140; + LastUpgradeCheck = 1530; ORGANIZATIONNAME = Pinterest; TargetAttributes = { 057D02BE1AC0A66700C7AC3C = { @@ -2262,42 +2263,42 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 2E61B6A0DB0F436A9DDBE86F /* [CP] Check Pods Manifest.lock */ = { + 278B6002A4EF2D1E2D748E1E /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", + "${PODS_ROOT}/Target Support Files/Pods-AsyncDisplayKitTests/Pods-AsyncDisplayKitTests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/OCMock/OCMock.framework", + "${BUILT_PRODUCTS_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework", ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-AsyncDisplayKitTests-checkManifestLockResult.txt", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMock.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSnapshotTestCase.framework", ); 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"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AsyncDisplayKitTests/Pods-AsyncDisplayKitTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 572FAC967DD43A0D06367D02 /* [CP] Embed Pods Frameworks */ = { + 2E61B6A0DB0F436A9DDBE86F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-AsyncDisplayKitTests/Pods-AsyncDisplayKitTests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/OCMock/OCMock.framework", - "${BUILT_PRODUCTS_DIR}/iOSSnapshotTestCase/FBSnapshotTestCase.framework", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMock.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBSnapshotTestCase.framework", + "$(DERIVED_FILE_DIR)/Pods-AsyncDisplayKitTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AsyncDisplayKitTests/Pods-AsyncDisplayKitTests-frameworks.sh\"\n"; + 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 */ @@ -2616,7 +2617,10 @@ "$(inherited)", ); INFOPLIST_FILE = Tests/TestHost/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2633,7 +2637,10 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; INFOPLIST_FILE = Tests/TestHost/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2663,6 +2670,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES_ERROR; 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; @@ -2671,6 +2679,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_GENERATE_TEST_COVERAGE_FILES = YES; @@ -2693,7 +2702,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -2723,6 +2732,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES_ERROR; 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; @@ -2731,6 +2741,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_GENERATE_TEST_COVERAGE_FILES = YES; GCC_NO_COMMON_BLOCKS = YES; @@ -2742,7 +2753,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -2801,20 +2812,28 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = Source/AsyncDisplayKit.modulemap; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 c++11"; MTL_ENABLE_DEBUG_INFO = YES; OTHER_CFLAGS = ( "-Wundef", @@ -2833,6 +2852,7 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -2840,13 +2860,20 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = Source/AsyncDisplayKit.modulemap; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 c++11"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = ( "-Wundef", @@ -2883,6 +2910,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES_ERROR; 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; @@ -2891,6 +2919,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_GENERATE_TEST_COVERAGE_FILES = YES; GCC_NO_COMMON_BLOCKS = YES; @@ -2902,7 +2931,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -2942,7 +2971,10 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; INFOPLIST_FILE = Tests/TestHost/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2954,6 +2986,7 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = ""; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; @@ -2961,14 +2994,21 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREPROCESSOR_DEFINITIONS = "PROFILE=1"; INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); MODULEMAP_FILE = Source/AsyncDisplayKit.modulemap; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 c++11"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = ( "-Wundef", diff --git a/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit.xcscheme b/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit.xcscheme index 717ca42d1..8f64e6df6 100644 --- a/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit.xcscheme +++ b/AsyncDisplayKit.xcodeproj/xcshareddata/xcschemes/AsyncDisplayKit.xcscheme @@ -1,6 +1,6 @@ 3.6' - pod 'iOSSnapshotTestCase/Core', '~> 6.2' + pod 'OCMock', '~>3.9' + pod 'iOSSnapshotTestCase/Core', '~> 8.0' end diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index d32a95f74..000000000 --- a/Podfile.lock +++ /dev/null @@ -1,20 +0,0 @@ -PODS: - - iOSSnapshotTestCase/Core (6.2.0) - - OCMock (3.9.1) - -DEPENDENCIES: - - iOSSnapshotTestCase/Core (~> 6.2) - - OCMock (~> 3.6) - -SPEC REPOS: - trunk: - - iOSSnapshotTestCase - - OCMock - -SPEC CHECKSUMS: - iOSSnapshotTestCase: 9ab44cb5aa62b84d31847f40680112e15ec579a6 - OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 - -PODFILE CHECKSUM: 0a3b63450c1b52ec105545b62c41089097e077d6 - -COCOAPODS: 1.12.1 diff --git a/Source/ASCollectionView.mm b/Source/ASCollectionView.mm index c6ba31683..1ff6062a4 100644 --- a/Source/ASCollectionView.mm +++ b/Source/ASCollectionView.mm @@ -277,9 +277,7 @@ - (instancetype)_initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionV // Experiments done by Instagram show that this option being YES (default) // when unused causes a significant hit to scroll performance. // https://github.com/Instagram/IGListKit/issues/318 - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - super.prefetchingEnabled = NO; - } + super.prefetchingEnabled = NO; _layoutController = [[ASCollectionViewLayoutController alloc] initWithCollectionView:self]; @@ -1863,9 +1861,7 @@ - (void)_beginBatchFetchingIfNeededWithContentOffset:(CGPoint)contentOffset velo // Since we are accessing self.collectionViewLayout, we should make sure we are on main ASDisplayNodeAssertMainThread(); BOOL flipsHorizontallyInOppositeLayoutDirection = NO; - if (AS_AVAILABLE_IOS(11.0)) { - flipsHorizontallyInOppositeLayoutDirection = self.collectionViewLayout.flipsHorizontallyInOppositeLayoutDirection; - } + flipsHorizontallyInOppositeLayoutDirection = self.collectionViewLayout.flipsHorizontallyInOppositeLayoutDirection; if (ASDisplayShouldFetchBatchForScrollView(self, self.scrollDirection, self.scrollableDirections, contentOffset, velocity, flipsHorizontallyInOppositeLayoutDirection)) { [self _beginBatchFetching]; } diff --git a/Source/ASDKViewController.mm b/Source/ASDKViewController.mm index da4a19e82..206026ab0 100644 --- a/Source/ASDKViewController.mm +++ b/Source/ASDKViewController.mm @@ -165,10 +165,6 @@ - (void)viewDidLayoutSubviews [_node recursivelyEnsureDisplaySynchronously:YES]; } [super viewDidLayoutSubviews]; - - if (!AS_AT_LEAST_IOS11) { - [self _updateNodeFallbackSafeArea]; - } } - (void)_updateNodeFallbackSafeArea @@ -286,21 +282,12 @@ - (ASInterfaceState)interfaceState - (UIEdgeInsets)additionalSafeAreaInsets { - if (AS_AVAILABLE_IOS_TVOS(11.0, 11.0)) { - return super.additionalSafeAreaInsets; - } - - return _fallbackAdditionalSafeAreaInsets; + return super.additionalSafeAreaInsets; } - (void)setAdditionalSafeAreaInsets:(UIEdgeInsets)additionalSafeAreaInsets { - if (AS_AVAILABLE_IOS_TVOS(11.0, 11.0)) { - [super setAdditionalSafeAreaInsets:additionalSafeAreaInsets]; - } else { - _fallbackAdditionalSafeAreaInsets = additionalSafeAreaInsets; - [self _updateNodeFallbackSafeArea]; - } + [super setAdditionalSafeAreaInsets:additionalSafeAreaInsets]; } #pragma mark - ASTraitEnvironment diff --git a/Source/ASDisplayNode+Yoga.mm b/Source/ASDisplayNode+Yoga.mm index 619f5a780..4c847e649 100644 --- a/Source/ASDisplayNode+Yoga.mm +++ b/Source/ASDisplayNode+Yoga.mm @@ -305,7 +305,7 @@ - (void)invalidateCalculatedYogaLayout YGNodeRef yogaNode = self.style.yogaNode; if (yogaNode && [self shouldHaveYogaMeasureFunc]) { // Yoga internally asserts that MarkDirty() may only be called on nodes with a measurement function. - BOOL needsTemporaryMeasureFunc = (YGNodeGetMeasureFunc(yogaNode) == NULL); + BOOL needsTemporaryMeasureFunc = !YGNodeHasMeasureFunc(yogaNode); if (needsTemporaryMeasureFunc) { ASDisplayNodeAssert(self.yogaLayoutInProgress == NO, @"shouldHaveYogaMeasureFunc == YES, and inside a layout pass, but no measure func pointer! %@", self); diff --git a/Source/ASDisplayNode.mm b/Source/ASDisplayNode.mm index 09f112102..cd768e6c4 100644 --- a/Source/ASDisplayNode.mm +++ b/Source/ASDisplayNode.mm @@ -443,42 +443,40 @@ - (void)onDidLoad:(ASDisplayNodeDidLoadBlock)body - (void)asyncTraitCollectionDidChangeWithPreviousTraitCollection:(ASPrimitiveTraitCollection)previousTraitCollection { - if (@available(iOS 13.0, tvOS 10.0, *)) { - // When changing between light and dark mode, often the entire node needs to re-render. - // This change doesn't happen frequently so it's fairly safe to render nodes again - __instanceLock__.lock(); - BOOL loaded = _loaded(self); - ASPrimitiveTraitCollection primitiveTraitCollection = _primitiveTraitCollection; - __instanceLock__.unlock(); - if (primitiveTraitCollection.userInterfaceStyle != previousTraitCollection.userInterfaceStyle) { - if (loaded) { - // we need to run that on main thread, cause accessing CALayer properties. - // It seems than in iOS 13 sometimes it causes deadlock. - ASPerformBlockOnMainThread(^{ - self->__instanceLock__.lock(); - CGFloat cornerRadius = self->_cornerRadius; - ASCornerRoundingType cornerRoundingType = self->_cornerRoundingType; - UIColor *backgroundColor = self->_backgroundColor; - self->__instanceLock__.unlock(); - // TODO: we should resolve color using node's trait collection - // but Texture changes it from many places, so we may receive the wrong one. - CGColorRef cgBackgroundColor = backgroundColor.CGColor; - if (!CGColorEqualToColor(self->_layer.backgroundColor, cgBackgroundColor)) { - // Background colors do not dynamically update for layer backed nodes since they utilize CGColorRef - // instead of UIColor. Non layer backed node also receive color to the layer (see [_ASPendingState -applyToView:withSpecialPropertiesHandling:]). - // We utilize the _backgroundColor instance variable to track the full dynamic color - // and apply any changes here when trait collection updates occur. - self->_layer.backgroundColor = cgBackgroundColor; - } + // When changing between light and dark mode, often the entire node needs to re-render. + // This change doesn't happen frequently so it's fairly safe to render nodes again + __instanceLock__.lock(); + BOOL loaded = _loaded(self); + ASPrimitiveTraitCollection primitiveTraitCollection = _primitiveTraitCollection; + __instanceLock__.unlock(); + if (primitiveTraitCollection.userInterfaceStyle != previousTraitCollection.userInterfaceStyle) { + if (loaded) { + // we need to run that on main thread, cause accessing CALayer properties. + // It seems than in iOS 13 sometimes it causes deadlock. + ASPerformBlockOnMainThread(^{ + self->__instanceLock__.lock(); + CGFloat cornerRadius = self->_cornerRadius; + ASCornerRoundingType cornerRoundingType = self->_cornerRoundingType; + UIColor *backgroundColor = self->_backgroundColor; + self->__instanceLock__.unlock(); + // TODO: we should resolve color using node's trait collection + // but Texture changes it from many places, so we may receive the wrong one. + CGColorRef cgBackgroundColor = backgroundColor.CGColor; + if (!CGColorEqualToColor(self->_layer.backgroundColor, cgBackgroundColor)) { + // Background colors do not dynamically update for layer backed nodes since they utilize CGColorRef + // instead of UIColor. Non layer backed node also receive color to the layer (see [_ASPendingState -applyToView:withSpecialPropertiesHandling:]). + // We utilize the _backgroundColor instance variable to track the full dynamic color + // and apply any changes here when trait collection updates occur. + self->_layer.backgroundColor = cgBackgroundColor; + } - // If we have clipping corners, re-render the clipping corner layer upon user interface style change - if (cornerRoundingType == ASCornerRoundingTypeClipping && cornerRadius > 0.0f) { - [self _updateClipCornerLayerContentsWithRadius:cornerRadius backgroundColor:backgroundColor]; - } - - [self setNeedsDisplay]; - }); - } + // If we have clipping corners, re-render the clipping corner layer upon user interface style change + if (cornerRoundingType == ASCornerRoundingTypeClipping && cornerRadius > 0.0f) { + [self _updateClipCornerLayerContentsWithRadius:cornerRadius backgroundColor:backgroundColor]; + } + + [self setNeedsDisplay]; + }); } } } @@ -835,7 +833,7 @@ - (void)setFallbackSafeAreaInsets:(UIEdgeInsets)insets } _fallbackSafeAreaInsets = insets; - needsManualUpdate = !AS_AT_LEAST_IOS11 || _flags.layerBacked; + needsManualUpdate = _flags.layerBacked; updatesLayoutMargins = needsManualUpdate && [self _locked_insetsLayoutMarginsFromSafeArea]; } @@ -856,7 +854,7 @@ - (void)_fallbackUpdateSafeAreaOnChildren CGRect bounds = self.bounds; for (ASDisplayNode *child in self.subnodes) { - if (AS_AT_LEAST_IOS11 && !child.layerBacked) { + if (!child.layerBacked) { // In iOS 11 view-backed nodes already know what their safe area is. continue; } diff --git a/Source/ASImageNode+AnimatedImage.mm b/Source/ASImageNode+AnimatedImage.mm index 9716f8529..8d7fb857e 100644 --- a/Source/ASImageNode+AnimatedImage.mm +++ b/Source/ASImageNode+AnimatedImage.mm @@ -327,11 +327,9 @@ - (void)displayLinkFired:(CADisplayLink *)displayLink CFTimeInterval timeBetweenLastFire; if (self.lastDisplayLinkFire == 0) { timeBetweenLastFire = 0; - } else if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - timeBetweenLastFire = displayLink.targetTimestamp - displayLink.timestamp; } else { - timeBetweenLastFire = CACurrentMediaTime() - self.lastDisplayLinkFire; - } + timeBetweenLastFire = displayLink.targetTimestamp - displayLink.timestamp; + } self.lastDisplayLinkFire = CACurrentMediaTime(); _playHead += timeBetweenLastFire; diff --git a/Source/ASImageNode.mm b/Source/ASImageNode.mm index 95ac20143..5dd5c32a6 100644 --- a/Source/ASImageNode.mm +++ b/Source/ASImageNode.mm @@ -99,10 +99,8 @@ - (BOOL)isEqual:(id)object && _willDisplayNodeContentWithRenderingContext == other.willDisplayNodeContentWithRenderingContext && _didDisplayNodeContentWithRenderingContext == other.didDisplayNodeContentWithRenderingContext && _imageModificationBlock == other.imageModificationBlock; - if (AS_AVAILABLE_IOS_TVOS(12, 10)) { - // iOS 12, tvOS 10 and later (userInterfaceStyle only available in iOS12+) - areKeysEqual = areKeysEqual && _userInterfaceStyle == other.userInterfaceStyle; - } + // iOS 12, tvOS 10 and later (userInterfaceStyle only available in iOS12+) + areKeysEqual = areKeysEqual && _userInterfaceStyle == other.userInterfaceStyle; return areKeysEqual; } else { return NO; @@ -294,14 +292,12 @@ - (NSObject *)drawParametersForAsyncLayer:(_ASDisplayLayer *)layer { ASLockScopeSelf(); UIImage *drawImage = _image; - if (AS_AVAILABLE_IOS_TVOS(13, 10)) { - if (_imageNodeFlags.regenerateFromImageAsset && drawImage != nil) { - _imageNodeFlags.regenerateFromImageAsset = NO; - UITraitCollection *tc = [UITraitCollection traitCollectionWithUserInterfaceStyle:_primitiveTraitCollection.userInterfaceStyle]; - UIImage *generatedImage = [drawImage.imageAsset imageWithTraitCollection:tc]; - if ( generatedImage != nil ) { - drawImage = generatedImage; - } + if (_imageNodeFlags.regenerateFromImageAsset && drawImage != nil) { + _imageNodeFlags.regenerateFromImageAsset = NO; + UITraitCollection *tc = [UITraitCollection traitCollectionWithUserInterfaceStyle:_primitiveTraitCollection.userInterfaceStyle]; + UIImage *generatedImage = [drawImage.imageAsset imageWithTraitCollection:tc]; + if ( generatedImage != nil ) { + drawImage = generatedImage; } } @@ -426,10 +422,7 @@ + (UIImage *)displayWithParameters:(id)parameter isCancelled:(NS_NOESC contentsKey.willDisplayNodeContentWithRenderingContext = willDisplayNodeContentWithRenderingContext; contentsKey.didDisplayNodeContentWithRenderingContext = didDisplayNodeContentWithRenderingContext; contentsKey.imageModificationBlock = imageModificationBlock; - - if (AS_AVAILABLE_IOS_TVOS(12, 10)) { - contentsKey.userInterfaceStyle = drawParameter->_traitCollection.userInterfaceStyle; - } + contentsKey.userInterfaceStyle = drawParameter->_traitCollection.userInterfaceStyle; if (isCancelled()) { return nil; @@ -780,7 +773,7 @@ - (NSDictionary *)debugLabelAttributes - (void)asyncTraitCollectionDidChangeWithPreviousTraitCollection:(ASPrimitiveTraitCollection)previousTraitCollection { [super asyncTraitCollectionDidChangeWithPreviousTraitCollection:previousTraitCollection]; - if (AS_AVAILABLE_IOS_TVOS(13, 10)) { + { AS::MutexLocker l(__instanceLock__); // update image if userInterfaceStyle was changed (dark mode) if (_image != nil diff --git a/Source/ASMultiplexImageNode.mm b/Source/ASMultiplexImageNode.mm index abacdfacb..750aba952 100644 --- a/Source/ASMultiplexImageNode.mm +++ b/Source/ASMultiplexImageNode.mm @@ -338,9 +338,7 @@ - (void)setDataSource:(id )dataSource _dataSource = dataSource; _dataSourceFlags.image = [_dataSource respondsToSelector:@selector(multiplexImageNode:imageForImageIdentifier:)]; _dataSourceFlags.URL = [_dataSource respondsToSelector:@selector(multiplexImageNode:URLForImageIdentifier:)]; - if (AS_AVAILABLE_IOS_TVOS(9, 10)) { - _dataSourceFlags.asset = [_dataSource respondsToSelector:@selector(multiplexImageNode:assetForLocalIdentifier:)]; - } + _dataSourceFlags.asset = [_dataSource respondsToSelector:@selector(multiplexImageNode:assetForLocalIdentifier:)]; } diff --git a/Source/ASTableView.mm b/Source/ASTableView.mm index be916d2e7..1ee0607fb 100644 --- a/Source/ASTableView.mm +++ b/Source/ASTableView.mm @@ -348,11 +348,9 @@ - (instancetype)_initWithFrame:(CGRect)frame style:(UITableViewStyle)style dataC [self registerClass:_ASTableViewCell.class forCellReuseIdentifier:kCellReuseIdentifier]; // iOS 11 automatically uses estimated heights, so disable those (see PR #485) - if (AS_AT_LEAST_IOS11) { - super.estimatedRowHeight = 0.0; - super.estimatedSectionHeaderHeight = 0.0; - super.estimatedSectionFooterHeight = 0.0; - } + super.estimatedRowHeight = 0.0; + super.estimatedSectionHeaderHeight = 0.0; + super.estimatedSectionFooterHeight = 0.0; return self; } diff --git a/Source/Base/ASAvailability.h b/Source/Base/ASAvailability.h index b210397fc..d57c6bd41 100644 --- a/Source/Base/ASAvailability.h +++ b/Source/Base/ASAvailability.h @@ -54,10 +54,6 @@ #define __IPHONE_13_0 130000 #endif -#define AS_AT_LEAST_IOS10 (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_10_0) -#define AS_AT_LEAST_IOS11 (kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_11_0) -#define AS_AT_LEAST_IOS13 (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0) - // Use __builtin_available if we're on Xcode >= 9, AS_AT_LEAST otherwise. #if __has_builtin(__builtin_available) #define AS_AVAILABLE_IOS(ver) __builtin_available(iOS ver, *) diff --git a/Source/Base/ASSignpost.h b/Source/Base/ASSignpost.h index 27a44afbb..3b918a280 100644 --- a/Source/Base/ASSignpost.h +++ b/Source/Base/ASSignpost.h @@ -55,45 +55,25 @@ typedef NS_ENUM(uint32_t, ASSignpostName) { #if AS_HAS_OS_SIGNPOST #define ASSignpostStart(name, identifier, format, ...) ({\ - if (AS_AVAILABLE_IOS_TVOS(12, 12)) { \ unowned os_log_t log = ASPointsOfInterestLog(); \ os_signpost_id_t spid = os_signpost_id_make_with_id(log, identifier); \ os_signpost_interval_begin(log, spid, #name, format, ##__VA_ARGS__); \ - } else if (AS_AVAILABLE_IOS_TVOS(10, 10)) { \ - kdebug_signpost_start(ASSignpost##name, (uintptr_t)identifier, 0, 0, 0); \ - } else { \ - syscall(SYS_kdebug_trace, APPSDBG_CODE(DBG_MACH_CHUD, ASSignpost##name) | DBG_FUNC_START, (uintptr_t)identifier, 0, 0, 0); \ - } \ }) #define ASSignpostEnd(name, identifier, format, ...) ({\ - if (AS_AVAILABLE_IOS_TVOS(12, 12)) { \ unowned os_log_t log = ASPointsOfInterestLog(); \ os_signpost_id_t spid = os_signpost_id_make_with_id(log, identifier); \ os_signpost_interval_end(log, spid, #name, format, ##__VA_ARGS__); \ - } else if (AS_AVAILABLE_IOS_TVOS(10, 10)) { \ - kdebug_signpost_end(ASSignpost##name, (uintptr_t)identifier, 0, 0, 0); \ - } else { \ - syscall(SYS_kdebug_trace, APPSDBG_CODE(DBG_MACH_CHUD, ASSignpost##name) | DBG_FUNC_END, (uintptr_t)identifier, 0, 0, 0); \ - } \ }) #else // !AS_HAS_OS_SIGNPOST #define ASSignpostStart(name, identifier, format, ...) ({\ - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { \ kdebug_signpost_start(ASSignpost##name, (uintptr_t)identifier, 0, 0, 0); \ - } else { \ - syscall(SYS_kdebug_trace, APPSDBG_CODE(DBG_MACH_CHUD, ASSignpost##name) | DBG_FUNC_START, (uintptr_t)identifier, 0, 0, 0); \ - } \ }) #define ASSignpostEnd(name, identifier, format, ...) ({\ - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { \ kdebug_signpost_end(ASSignpost##name, (uintptr_t)identifier, 0, 0, 0); \ - } else { \ - syscall(SYS_kdebug_trace, APPSDBG_CODE(DBG_MACH_CHUD, ASSignpost##name) | DBG_FUNC_END, (uintptr_t)identifier, 0, 0, 0); \ - } \ }) #endif diff --git a/Source/Debug/AsyncDisplayKit+Debug.mm b/Source/Debug/AsyncDisplayKit+Debug.mm index 45a8cb4e6..248fdac99 100644 --- a/Source/Debug/AsyncDisplayKit+Debug.mm +++ b/Source/Debug/AsyncDisplayKit+Debug.mm @@ -297,7 +297,18 @@ @implementation _ASRangeDebugOverlayView + (UIWindow *)keyWindow { // hack to work around app extensions not having UIApplication...not sure of a better way to do this? - return [[NSClassFromString(@"UIApplication") sharedApplication] keyWindow]; + UIApplication *application = [NSClassFromString(@"UIApplication") sharedApplication]; + NSMutableArray *windowScenes = [NSMutableArray array]; + for (UIScene *scene in [application connectedScenes]) { + if ([scene isKindOfClass:[UIWindowScene class]]) { + [windowScenes addObject:(UIWindowScene *)scene]; + } + } + if (@available(iOS 15, *)) { + return [windowScenes firstObject].keyWindow; + } else { + return [windowScenes firstObject].windows.firstObject; + } } + (_ASRangeDebugOverlayView *)sharedInstance NS_RETURNS_RETAINED diff --git a/Source/Details/ASGraphicsContext.mm b/Source/Details/ASGraphicsContext.mm index e8e7c3f83..8e4662c6f 100644 --- a/Source/Details/ASGraphicsContext.mm +++ b/Source/Details/ASGraphicsContext.mm @@ -13,30 +13,16 @@ #import -#if AS_AT_LEAST_IOS13 #define ASPerformBlockWithTraitCollection(work, traitCollection) \ - if (@available(iOS 13.0, tvOS 13.0, *)) { \ UITraitCollection *uiTraitCollection = ASPrimitiveTraitCollectionToUITraitCollection(traitCollection); \ [uiTraitCollection performAsCurrentTraitCollection:^{ \ work(); \ - }];\ - } else { \ - work(); \ - } -#else -#define ASPerformBlockWithTraitCollection(work, traitCollection) work(); -#endif + }]; -NS_AVAILABLE_IOS(10) NS_INLINE void ASConfigureExtendedRange(UIGraphicsImageRendererFormat *format) { - if (AS_AVAILABLE_IOS_TVOS(12, 12)) { // nop. We always use automatic range on iOS >= 12. - } else { - // Currently we never do wide color. One day we could pipe this information through from the ASImageNode if it was worth it. - format.prefersExtendedRange = NO; - } } UIImage *ASGraphicsCreateImageWithOptions(CGSize size, BOOL opaque, CGFloat scale, UIImage *sourceImage, @@ -51,77 +37,62 @@ NS_INLINE void ASConfigureExtendedRange(UIGraphicsImageRendererFormat *format) return nil; } - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - if (ASActivateExperimentalFeature(ASExperimentalDrawingGlobal)) { - // If they used default scale, reuse one of two preferred formats. - static UIGraphicsImageRendererFormat *defaultFormat; - static UIGraphicsImageRendererFormat *opaqueFormat; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - defaultFormat = [UIGraphicsImageRendererFormat preferredFormat]; - opaqueFormat = [UIGraphicsImageRendererFormat preferredFormat]; - } else { - defaultFormat = [UIGraphicsImageRendererFormat defaultFormat]; - opaqueFormat = [UIGraphicsImageRendererFormat defaultFormat]; - } - opaqueFormat.opaque = YES; - ASConfigureExtendedRange(defaultFormat); - ASConfigureExtendedRange(opaqueFormat); - }); + if (ASActivateExperimentalFeature(ASExperimentalDrawingGlobal)) { + // If they used default scale, reuse one of two preferred formats. + static UIGraphicsImageRendererFormat *defaultFormat; + static UIGraphicsImageRendererFormat *opaqueFormat; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + defaultFormat = [UIGraphicsImageRendererFormat preferredFormat]; + opaqueFormat = [UIGraphicsImageRendererFormat preferredFormat]; + opaqueFormat.opaque = YES; + ASConfigureExtendedRange(defaultFormat); + ASConfigureExtendedRange(opaqueFormat); + }); - UIGraphicsImageRendererFormat *format; - if (sourceImage) { - if (sourceImage.renderingMode == UIImageRenderingModeAlwaysTemplate) { - // Template images will be black and transparent, so if we use - // sourceImage.imageRenderFormat it will assume a grayscale color space. - // This is not good because a template image should be able to tint to any color, - // so we'll just use the default here. - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - format = [UIGraphicsImageRendererFormat preferredFormat]; - } else { - format = [UIGraphicsImageRendererFormat defaultFormat]; - } - } else { - format = sourceImage.imageRendererFormat; - } - // We only want the private bits (color space and bits per component) from the image. - // We have our own ideas about opacity and scale. - format.opaque = opaque; - format.scale = scale; - } else if (scale == 0 || scale == ASScreenScale()) { - format = opaque ? opaqueFormat : defaultFormat; + UIGraphicsImageRendererFormat *format; + if (sourceImage) { + if (sourceImage.renderingMode == UIImageRenderingModeAlwaysTemplate) { + // Template images will be black and transparent, so if we use + // sourceImage.imageRenderFormat it will assume a grayscale color space. + // This is not good because a template image should be able to tint to any color, + // so we'll just use the default here. + format = [UIGraphicsImageRendererFormat preferredFormat]; } else { - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - format = [UIGraphicsImageRendererFormat preferredFormat]; - } else { - format = [UIGraphicsImageRendererFormat defaultFormat]; - } - if (opaque) format.opaque = YES; - format.scale = scale; - ASConfigureExtendedRange(format); + format = sourceImage.imageRendererFormat; } - - // Avoid using the imageWithActions: method because it does not support cancellation at the - // last moment i.e. before actually creating the resulting image. - __block UIImage *image; - NSError *error; - [[[UIGraphicsImageRenderer alloc] initWithSize:size format:format] - runDrawingActions:^(UIGraphicsImageRendererContext *rendererContext) { - ASDisplayNodeCAssert(UIGraphicsGetCurrentContext(), @"Should have a context!"); - ASPerformBlockWithTraitCollection(work, traitCollection); - } - completionActions:^(UIGraphicsImageRendererContext *rendererContext) { - if (isCancelled == nil || !isCancelled()) { - image = rendererContext.currentImage; - } + // We only want the private bits (color space and bits per component) from the image. + // We have our own ideas about opacity and scale. + format.opaque = opaque; + format.scale = scale; + } else if (scale == 0 || scale == ASScreenScale()) { + format = opaque ? opaqueFormat : defaultFormat; + } else { + format = [UIGraphicsImageRendererFormat preferredFormat]; + if (opaque) format.opaque = YES; + format.scale = scale; + ASConfigureExtendedRange(format); + } + + // Avoid using the imageWithActions: method because it does not support cancellation at the + // last moment i.e. before actually creating the resulting image. + __block UIImage *image; + NSError *error; + [[[UIGraphicsImageRenderer alloc] initWithSize:size format:format] + runDrawingActions:^(UIGraphicsImageRendererContext *rendererContext) { + ASDisplayNodeCAssert(UIGraphicsGetCurrentContext(), @"Should have a context!"); + ASPerformBlockWithTraitCollection(work, traitCollection); + } + completionActions:^(UIGraphicsImageRendererContext *rendererContext) { + if (isCancelled == nil || !isCancelled()) { + image = rendererContext.currentImage; } - error:&error]; - if (error) { - NSCAssert(NO, @"Error drawing: %@", error); - } - return image; + } + error:&error]; + if (error) { + NSCAssert(NO, @"Error drawing: %@", error); } + return image; } // Bad OS or experiment flag. Use UIGraphics* API. diff --git a/Source/Details/ASThread.h b/Source/Details/ASThread.h index d5187a358..b5ec21331 100644 --- a/Source/Details/ASThread.h +++ b/Source/Details/ASThread.h @@ -159,11 +159,7 @@ namespace AS { success = os_unfair_lock_trylock(&_unfair); break; case RecursiveUnfair: - if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)) { - success = ASRecursiveUnfairLockTryLock(&_runfair); - } else { - success = _recursive.try_lock(); - } + success = ASRecursiveUnfairLockTryLock(&_runfair); break; } if (success) { @@ -184,11 +180,7 @@ namespace AS { os_unfair_lock_lock(&_unfair); break; case RecursiveUnfair: - if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)) { - ASRecursiveUnfairLockLock(&_runfair); - } else { - _recursive.lock(); - } + ASRecursiveUnfairLockLock(&_runfair); break; } DidLock(); @@ -207,11 +199,7 @@ namespace AS { os_unfair_lock_unlock(&_unfair); break; case RecursiveUnfair: - if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)) { - ASRecursiveUnfairLockUnlock(&_runfair); - } else { - _recursive.unlock(); - } + ASRecursiveUnfairLockUnlock(&_runfair); break; } } @@ -229,19 +217,13 @@ namespace AS { // Check if we can use unfair lock and store in static var. static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - gMutex_unfair = YES; - } + gMutex_unfair = YES; }); if (recursive) { if (gMutex_unfair) { _type = RecursiveUnfair; - if (@available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)) { - _runfair = AS_RECURSIVE_UNFAIR_LOCK_INIT; - } else { - new (&_recursive) std::recursive_mutex(); - } + _runfair = AS_RECURSIVE_UNFAIR_LOCK_INIT; } else { _type = Recursive; new (&_recursive) std::recursive_mutex(); diff --git a/Source/Details/ASTraitCollection.mm b/Source/Details/ASTraitCollection.mm index f26a2beae..853692555 100644 --- a/Source/Details/ASTraitCollection.mm +++ b/Source/Details/ASTraitCollection.mm @@ -33,25 +33,18 @@ ASPrimitiveTraitCollection ASPrimitiveTraitCollectionMakeDefault() { tc.horizontalSizeClass = UIUserInterfaceSizeClassUnspecified; tc.verticalSizeClass = UIUserInterfaceSizeClassUnspecified; tc.containerSize = CGSizeZero; - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - tc.displayGamut = UIDisplayGamutUnspecified; - tc.preferredContentSizeCategory = UIContentSizeCategoryUnspecified; - tc.layoutDirection = UITraitEnvironmentLayoutDirectionUnspecified; - } - if (AS_AVAILABLE_IOS_TVOS(12, 10)) { - tc.userInterfaceStyle = UIUserInterfaceStyleUnspecified; - } + tc.displayGamut = UIDisplayGamutUnspecified; + tc.preferredContentSizeCategory = UIContentSizeCategoryUnspecified; + tc.layoutDirection = UITraitEnvironmentLayoutDirectionUnspecified; + tc.userInterfaceStyle = UIUserInterfaceStyleUnspecified; #if TARGET_OS_IOS - if(AS_AVAILABLE_IOS(13)){ - tc.userInterfaceLevel = UIUserInterfaceLevelUnspecified; - } + tc.userInterfaceLevel = UIUserInterfaceLevelUnspecified; #endif - if (AS_AVAILABLE_IOS_TVOS(13, 13)) { - tc.accessibilityContrast = UIAccessibilityContrastUnspecified; - tc.legibilityWeight = UILegibilityWeightUnspecified; - } + tc.accessibilityContrast = UIAccessibilityContrastUnspecified; + tc.legibilityWeight = UILegibilityWeightUnspecified; + return tc; } @@ -62,27 +55,19 @@ ASPrimitiveTraitCollection ASPrimitiveTraitCollectionFromUITraitCollection(UITra environmentTraitCollection.displayScale = traitCollection.displayScale; environmentTraitCollection.userInterfaceIdiom = traitCollection.userInterfaceIdiom; environmentTraitCollection.forceTouchCapability = traitCollection.forceTouchCapability; - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - environmentTraitCollection.displayGamut = traitCollection.displayGamut; - environmentTraitCollection.layoutDirection = traitCollection.layoutDirection; + environmentTraitCollection.displayGamut = traitCollection.displayGamut; + environmentTraitCollection.layoutDirection = traitCollection.layoutDirection; - ASDisplayNodeCAssertPermanent(traitCollection.preferredContentSizeCategory); - environmentTraitCollection.preferredContentSizeCategory = traitCollection.preferredContentSizeCategory; - } - if (AS_AVAILABLE_IOS_TVOS(12, 10)) { - environmentTraitCollection.userInterfaceStyle = traitCollection.userInterfaceStyle; - } + ASDisplayNodeCAssertPermanent(traitCollection.preferredContentSizeCategory); + environmentTraitCollection.preferredContentSizeCategory = traitCollection.preferredContentSizeCategory; + environmentTraitCollection.userInterfaceStyle = traitCollection.userInterfaceStyle; #if TARGET_OS_IOS - if(AS_AVAILABLE_IOS(13)){ - environmentTraitCollection.userInterfaceLevel = traitCollection.userInterfaceLevel; - } + environmentTraitCollection.userInterfaceLevel = traitCollection.userInterfaceLevel; #endif - if (AS_AVAILABLE_IOS_TVOS(13, 13)) { - environmentTraitCollection.accessibilityContrast = traitCollection.accessibilityContrast; - environmentTraitCollection.legibilityWeight = traitCollection.legibilityWeight; - } + environmentTraitCollection.accessibilityContrast = traitCollection.accessibilityContrast; + environmentTraitCollection.legibilityWeight = traitCollection.legibilityWeight; return environmentTraitCollection; } @@ -95,14 +80,10 @@ ASPrimitiveTraitCollection ASPrimitiveTraitCollectionFromUITraitCollection(UITra [UITraitCollection traitCollectionWithForceTouchCapability:traitCollection.forceTouchCapability], ]]; - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - [collections addObject:[UITraitCollection traitCollectionWithDisplayGamut:traitCollection.displayGamut]]; - [collections addObject:[UITraitCollection traitCollectionWithLayoutDirection:traitCollection.layoutDirection]]; - [collections addObject:[UITraitCollection traitCollectionWithPreferredContentSizeCategory:traitCollection.preferredContentSizeCategory]]; - } - if (AS_AVAILABLE_IOS_TVOS(12, 10)) { - [collections addObject:[UITraitCollection traitCollectionWithUserInterfaceStyle:traitCollection.userInterfaceStyle]]; - } + [collections addObject:[UITraitCollection traitCollectionWithDisplayGamut:traitCollection.displayGamut]]; + [collections addObject:[UITraitCollection traitCollectionWithLayoutDirection:traitCollection.layoutDirection]]; + [collections addObject:[UITraitCollection traitCollectionWithPreferredContentSizeCategory:traitCollection.preferredContentSizeCategory]]; + [collections addObject:[UITraitCollection traitCollectionWithUserInterfaceStyle:traitCollection.userInterfaceStyle]]; UITraitCollection *result = [UITraitCollection traitCollectionWithTraitsFromCollections:collections]; return result; @@ -241,27 +222,19 @@ BOOL ASPrimitiveTraitCollectionIsEqualToASPrimitiveTraitCollection(ASPrimitiveTr [props addObject:@{ @"displayScale": [NSString stringWithFormat: @"%.0lf", (double)traits.displayScale] }]; [props addObject:@{ @"userInterfaceIdiom": AS_NSStringFromUIUserInterfaceIdiom(traits.userInterfaceIdiom) }]; [props addObject:@{ @"forceTouchCapability": AS_NSStringFromUIForceTouchCapability(traits.forceTouchCapability) }]; - if (AS_AVAILABLE_IOS_TVOS(12, 10)) { - [props addObject:@{ @"userInterfaceStyle": AS_NSStringFromUIUserInterfaceStyle(traits.userInterfaceStyle) }]; - } - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - [props addObject:@{ @"layoutDirection": AS_NSStringFromUITraitEnvironmentLayoutDirection(traits.layoutDirection) }]; - if (traits.preferredContentSizeCategory != nil) { - [props addObject:@{ @"preferredContentSizeCategory": traits.preferredContentSizeCategory }]; - } - [props addObject:@{ @"displayGamut": AS_NSStringFromUIDisplayGamut(traits.displayGamut) }]; + [props addObject:@{ @"userInterfaceStyle": AS_NSStringFromUIUserInterfaceStyle(traits.userInterfaceStyle) }]; + [props addObject:@{ @"layoutDirection": AS_NSStringFromUITraitEnvironmentLayoutDirection(traits.layoutDirection) }]; + if (traits.preferredContentSizeCategory != nil) { + [props addObject:@{ @"preferredContentSizeCategory": traits.preferredContentSizeCategory }]; } + [props addObject:@{ @"displayGamut": AS_NSStringFromUIDisplayGamut(traits.displayGamut) }]; #if TARGET_OS_IOS - if (AS_AVAILABLE_IOS(13)){ - [props addObject:@{ @"userInterfaceLevel": AS_NSStringFromUITraitEnvironmentUserInterfaceLevel(traits.userInterfaceLevel) }]; - } + [props addObject:@{ @"userInterfaceLevel": AS_NSStringFromUITraitEnvironmentUserInterfaceLevel(traits.userInterfaceLevel) }]; #endif - if (AS_AVAILABLE_IOS_TVOS(13, 13)) { - [props addObject:@{ @"accessibilityContrast": AS_NSStringFromUITraitEnvironmentAccessibilityContrast(traits.accessibilityContrast) }]; - [props addObject:@{ @"legibilityWeight": AS_NSStringFromUITraitEnvironmentLegibilityWeight(traits.legibilityWeight) }]; - } + [props addObject:@{ @"accessibilityContrast": AS_NSStringFromUITraitEnvironmentAccessibilityContrast(traits.accessibilityContrast) }]; + [props addObject:@{ @"legibilityWeight": AS_NSStringFromUITraitEnvironmentLegibilityWeight(traits.legibilityWeight) }]; [props addObject:@{ @"containerSize": NSStringFromCGSize(traits.containerSize) }]; return ASObjectDescriptionMakeWithoutObject(props); } @@ -274,9 +247,7 @@ @implementation ASTraitCollection { + (ASTraitCollection *)traitCollectionWithASPrimitiveTraitCollection:(ASPrimitiveTraitCollection)traits NS_RETURNS_RETAINED { ASTraitCollection *tc = [[ASTraitCollection alloc] init]; - if (AS_AVAILABLE_IOS_TVOS(10, 10)) { - ASDisplayNodeCAssertPermanent(traits.preferredContentSizeCategory); - } + ASDisplayNodeCAssertPermanent(traits.preferredContentSizeCategory); tc->_prim = traits; return tc; } diff --git a/Source/Details/_ASDisplayViewAccessiblity.mm b/Source/Details/_ASDisplayViewAccessiblity.mm index 8f3e12991..23b1f89db 100644 --- a/Source/Details/_ASDisplayViewAccessiblity.mm +++ b/Source/Details/_ASDisplayViewAccessiblity.mm @@ -90,11 +90,9 @@ + (ASAccessibilityElement *)accessibilityElementWithContainer:(UIView *)containe accessibilityElement.accessibilityValue = node.accessibilityValue; accessibilityElement.accessibilityTraits = node.accessibilityTraits; accessibilityElement.accessibilityElementsHidden = node.accessibilityElementsHidden; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - accessibilityElement.accessibilityAttributedLabel = node.accessibilityAttributedLabel; - accessibilityElement.accessibilityAttributedHint = node.accessibilityAttributedHint; - accessibilityElement.accessibilityAttributedValue = node.accessibilityAttributedValue; - } + accessibilityElement.accessibilityAttributedLabel = node.accessibilityAttributedLabel; + accessibilityElement.accessibilityAttributedHint = node.accessibilityAttributedHint; + accessibilityElement.accessibilityAttributedValue = node.accessibilityAttributedValue; return accessibilityElement; } @@ -190,20 +188,15 @@ static void CollectAccessibilityElementsForContainer(ASDisplayNode *container, U SortAccessibilityElements(labeledNodes); - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - NSArray *attributedLabels = [labeledNodes valueForKey:@"accessibilityAttributedLabel"]; - NSMutableAttributedString *attributedLabel = [NSMutableAttributedString new]; - [attributedLabels enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { - if (idx != 0) { - [attributedLabel appendAttributedString:[[NSAttributedString alloc] initWithString:@", "]]; - } - [attributedLabel appendAttributedString:(NSAttributedString *)obj]; - }]; - accessiblityElement.accessibilityAttributedLabel = attributedLabel; - } else { - NSArray *labels = [labeledNodes valueForKey:@"accessibilityLabel"]; - accessiblityElement.accessibilityLabel = [labels componentsJoinedByString:@", "]; - } + NSArray *attributedLabels = [labeledNodes valueForKey:@"accessibilityAttributedLabel"]; + NSMutableAttributedString *attributedLabel = [NSMutableAttributedString new]; + [attributedLabels enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (idx != 0) { + [attributedLabel appendAttributedString:[[NSAttributedString alloc] initWithString:@", "]]; + } + [attributedLabel appendAttributedString:(NSAttributedString *)obj]; + }]; + accessiblityElement.accessibilityAttributedLabel = attributedLabel; SortAccessibilityElements(actions); accessiblityElement.accessibilityCustomActions = actions; diff --git a/Source/Private/ASDisplayNode+UIViewBridge.mm b/Source/Private/ASDisplayNode+UIViewBridge.mm index 114e8119f..aa8e0e814 100644 --- a/Source/Private/ASDisplayNode+UIViewBridge.mm +++ b/Source/Private/ASDisplayNode+UIViewBridge.mm @@ -964,11 +964,6 @@ - (UIEdgeInsets)layoutMargins ASDisplayNodeAssert(!_flags.layerBacked, @"Danger: this property is undefined on layer-backed nodes."); UIEdgeInsets margins = _getFromViewOnly(layoutMargins); - if (!AS_AT_LEAST_IOS11 && self.insetsLayoutMarginsFromSafeArea) { - UIEdgeInsets safeArea = self.safeAreaInsets; - margins = ASConcatInsets(margins, safeArea); - } - return margins; } @@ -1006,11 +1001,10 @@ - (UIEdgeInsets)safeAreaInsets { _bridge_prologue_read; - if (AS_AVAILABLE_IOS_TVOS(11.0, 11.0)) { - if (!_flags.layerBacked && _loaded(self)) { - return self.view.safeAreaInsets; - } + if (!_flags.layerBacked && _loaded(self)) { + return self.view.safeAreaInsets; } + return _fallbackSafeAreaInsets; } @@ -1030,13 +1024,11 @@ - (void)setInsetsLayoutMarginsFromSafeArea:(BOOL)insetsLayoutMarginsFromSafeArea _flags.fallbackInsetsLayoutMarginsFromSafeArea = insetsLayoutMarginsFromSafeArea; - if (AS_AVAILABLE_IOS_TVOS(11.0, 11.0)) { - if (!_flags.layerBacked) { - _setToViewOnly(insetsLayoutMarginsFromSafeArea, insetsLayoutMarginsFromSafeArea); - } + if (!_flags.layerBacked) { + _setToViewOnly(insetsLayoutMarginsFromSafeArea, insetsLayoutMarginsFromSafeArea); } - shouldNotifyAboutUpdate = _loaded(self) && (!AS_AT_LEAST_IOS11 || _flags.layerBacked); + shouldNotifyAboutUpdate = _loaded(self) && _flags.layerBacked; } if (shouldNotifyAboutUpdate) { @@ -1086,31 +1078,20 @@ - (void)setLayerCornerRadius:(CGFloat)newLayerCornerRadius - (CACornerMask)layerMaskedCorners { _bridge_prologue_read; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - return _getFromLayer(maskedCorners); - } else { - return kASCACornerAllCorners; - } + return _getFromLayer(maskedCorners); } - (void)setLayerMaskedCorners:(CACornerMask)newLayerMaskedCorners { _bridge_prologue_write; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - _setToLayer(maskedCorners, newLayerMaskedCorners); - } else { - ASDisplayNodeAssert(newLayerMaskedCorners == kASCACornerAllCorners, - @"Cannot change maskedCorners property in iOS < 11 while using DefaultSlowCALayer rounding."); - } + _setToLayer(maskedCorners, newLayerMaskedCorners); } - (BOOL)_locked_insetsLayoutMarginsFromSafeArea { DISABLED_ASAssertLocked(__instanceLock__); - if (AS_AVAILABLE_IOS_TVOS(11.0, 11.0)) { - if (!_flags.layerBacked) { - return _getFromViewOnly(insetsLayoutMarginsFromSafeArea); - } + if (!_flags.layerBacked) { + return _getFromViewOnly(insetsLayoutMarginsFromSafeArea); } return _flags.fallbackInsetsLayoutMarginsFromSafeArea; } @@ -1161,11 +1142,10 @@ - (void)setAccessibilityLabel:(NSString *)accessibilityLabel _bridge_prologue_write; NSString *oldAccessibilityLabel = _getFromViewOnly(accessibilityLabel); _setAccessibilityToViewAndProperty(_accessibilityLabel, accessibilityLabel, accessibilityLabel, accessibilityLabel); - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { + { NSAttributedString *accessibilityAttributedLabel = accessibilityLabel ? [[NSAttributedString alloc] initWithString:accessibilityLabel] : nil; _setAccessibilityToViewAndProperty(_accessibilityAttributedLabel, accessibilityAttributedLabel, accessibilityAttributedLabel, accessibilityAttributedLabel); } - // We need to update action name when it's changed to reflect the latest state. // Note: Update the custom action itself won't work when a11y is inside a list of custom actions // in which one action results in a name change in the next action. In that case the UIAccessibility @@ -1201,7 +1181,7 @@ - (void)setAccessibilityHint:(NSString *)accessibilityHint { _bridge_prologue_write; _setAccessibilityToViewAndProperty(_accessibilityHint, accessibilityHint, accessibilityHint, accessibilityHint); - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { + { NSAttributedString *accessibilityAttributedHint = accessibilityHint ? [[NSAttributedString alloc] initWithString:accessibilityHint] : nil; _setAccessibilityToViewAndProperty(_accessibilityAttributedHint, accessibilityAttributedHint, accessibilityAttributedHint, accessibilityAttributedHint); } @@ -1231,7 +1211,7 @@ - (void)setAccessibilityValue:(NSString *)accessibilityValue { _bridge_prologue_write; _setAccessibilityToViewAndProperty(_accessibilityValue, accessibilityValue, accessibilityValue, accessibilityValue); - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { + { NSAttributedString *accessibilityAttributedValue = accessibilityValue ? [[NSAttributedString alloc] initWithString:accessibilityValue] : nil; _setAccessibilityToViewAndProperty(_accessibilityAttributedValue, accessibilityAttributedValue, accessibilityAttributedValue, accessibilityAttributedValue); } diff --git a/Source/Private/_ASPendingState.mm b/Source/Private/_ASPendingState.mm index a9d760e9e..918e1d012 100644 --- a/Source/Private/_ASPendingState.mm +++ b/Source/Private/_ASPendingState.mm @@ -985,10 +985,8 @@ - (void)applyToLayer:(CALayer *)layer if (flags.setCornerRadius) layer.cornerRadius = cornerRadius; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - if (flags.setMaskedCorners) { - layer.maskedCorners = maskedCorners; - } + if (flags.setMaskedCorners) { + layer.maskedCorners = maskedCorners; } if (flags.setContentMode) @@ -1182,10 +1180,8 @@ - (void)applyToView:(UIView *)view withSpecialPropertiesHandling:(BOOL)specialPr if (flags.setPreservesSuperviewLayoutMargins) view.preservesSuperviewLayoutMargins = _flags.preservesSuperviewLayoutMargins; - if (AS_AVAILABLE_IOS_TVOS(11.0, 11.0)) { - if (flags.setInsetsLayoutMarginsFromSafeArea) { - view.insetsLayoutMarginsFromSafeArea = _flags.insetsLayoutMarginsFromSafeArea; - } + if (flags.setInsetsLayoutMarginsFromSafeArea) { + view.insetsLayoutMarginsFromSafeArea = _flags.insetsLayoutMarginsFromSafeArea; } if (flags.setSemanticContentAttribute) { @@ -1204,16 +1200,14 @@ - (void)applyToView:(UIView *)view withSpecialPropertiesHandling:(BOOL)specialPr if (flags.setAccessibilityValue) view.accessibilityValue = accessibilityValue; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - if (flags.setAccessibilityAttributedLabel) { - view.accessibilityAttributedLabel = accessibilityAttributedLabel; - } - if (flags.setAccessibilityAttributedHint) { - view.accessibilityAttributedHint = accessibilityAttributedHint; - } - if (flags.setAccessibilityAttributedValue) { - view.accessibilityAttributedValue = accessibilityAttributedValue; - } + if (flags.setAccessibilityAttributedLabel) { + view.accessibilityAttributedLabel = accessibilityAttributedLabel; + } + if (flags.setAccessibilityAttributedHint) { + view.accessibilityAttributedHint = accessibilityAttributedHint; + } + if (flags.setAccessibilityAttributedValue) { + view.accessibilityAttributedValue = accessibilityAttributedValue; } if (flags.setAccessibilityTraits) @@ -1360,18 +1354,14 @@ + (_ASPendingState *)pendingViewStateFromView:(UIView *)view pendingState.semanticContentAttribute = view.semanticContentAttribute; pendingState.layoutMargins = view.layoutMargins; pendingState.preservesSuperviewLayoutMargins = view.preservesSuperviewLayoutMargins; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - pendingState.insetsLayoutMarginsFromSafeArea = view.insetsLayoutMarginsFromSafeArea; - } + pendingState.insetsLayoutMarginsFromSafeArea = view.insetsLayoutMarginsFromSafeArea; pendingState.isAccessibilityElement = view.isAccessibilityElement; pendingState.accessibilityLabel = view.accessibilityLabel; pendingState.accessibilityHint = view.accessibilityHint; pendingState.accessibilityValue = view.accessibilityValue; - if (AS_AVAILABLE_IOS_TVOS(11, 11)) { - pendingState.accessibilityAttributedLabel = view.accessibilityAttributedLabel; - pendingState.accessibilityAttributedHint = view.accessibilityAttributedHint; - pendingState.accessibilityAttributedValue = view.accessibilityAttributedValue; - } + pendingState.accessibilityAttributedLabel = view.accessibilityAttributedLabel; + pendingState.accessibilityAttributedHint = view.accessibilityAttributedHint; + pendingState.accessibilityAttributedValue = view.accessibilityAttributedValue; pendingState.accessibilityTraits = view.accessibilityTraits; pendingState.accessibilityFrame = view.accessibilityFrame; pendingState.accessibilityLanguage = view.accessibilityLanguage; diff --git a/Source/TextExperiment/Component/ASTextLayout.h b/Source/TextExperiment/Component/ASTextLayout.h index 55ac417f1..8f3137163 100644 --- a/Source/TextExperiment/Component/ASTextLayout.h +++ b/Source/TextExperiment/Component/ASTextLayout.h @@ -10,9 +10,9 @@ #import #import -#import "ASTextDebugOption.h" -#import "ASTextLine.h" -#import "ASTextInput.h" +#import +#import +#import @protocol ASTextLinePositionModifier; diff --git a/Source/TextExperiment/Component/ASTextLayout.mm b/Source/TextExperiment/Component/ASTextLayout.mm index f01c25908..fcf4d029c 100644 --- a/Source/TextExperiment/Component/ASTextLayout.mm +++ b/Source/TextExperiment/Component/ASTextLayout.mm @@ -438,7 +438,7 @@ + (ASTextLayout *)layoutWithContainer:(ASTextContainer *)container text:(NSAttri // It may use larger constraint size when create CTFrame with // CTFramesetterCreateFrame in iOS 10. - BOOL needFixLayoutSizeBug = AS_AT_LEAST_IOS10; + BOOL needFixLayoutSizeBug = YES; layout = [[ASTextLayout alloc] _init]; layout.text = text; @@ -2137,7 +2137,7 @@ - (NSArray *)selectionRectsForRange:(ASTextRange *)range { } else { topRect.rect = CGRectMake(_container.path ? startLine.left : _container.insets.left, startLine.top, topOffset - startLine.left, startLine.height); } - topRect.writingDirection = UITextWritingDirectionRightToLeft; + topRect.writingDirection = NSWritingDirectionRightToLeft; } else { if (isVertical) { topRect.rect = CGRectMake(startLine.left, topOffset, startLine.width, (_container.path ? startLine.bottom : _container.size.height - _container.insets.bottom) - topOffset); @@ -2160,7 +2160,7 @@ - (NSArray *)selectionRectsForRange:(ASTextRange *)range { } else { bottomRect.rect = CGRectMake(bottomOffset, endLine.top, (_container.path ? endLine.right : _container.size.width - _container.insets.right) - bottomOffset, endLine.height); } - bottomRect.writingDirection = UITextWritingDirectionRightToLeft; + bottomRect.writingDirection = NSWritingDirectionRightToLeft; } else { if (isVertical) { CGFloat top = _container.path ? endLine.top : _container.insets.top; diff --git a/Source/UIImage+ASConvenience.mm b/Source/UIImage+ASConvenience.mm index cc5896b4f..66b5fc953 100644 --- a/Source/UIImage+ASConvenience.mm +++ b/Source/UIImage+ASConvenience.mm @@ -30,12 +30,7 @@ @implementation UIImage (ASDKFastImageNamed) NSString *imageKey = imageName; if (traitCollection) { char imageKeyBuffer[256]; - if (@available(iOS 12.0, tvOS 10.0, *)) { - snprintf(imageKeyBuffer, sizeof(imageKeyBuffer), "%s|%ld|%ld|%ld", imageName.UTF8String, (long)traitCollection.horizontalSizeClass, (long)traitCollection.verticalSizeClass, (long)traitCollection.userInterfaceStyle); - } else { - // Fallback on earlier versions - snprintf(imageKeyBuffer, sizeof(imageKeyBuffer), "%s|%ld|%ld", imageName.UTF8String, (long)traitCollection.horizontalSizeClass, (long)traitCollection.verticalSizeClass); - } + snprintf(imageKeyBuffer, sizeof(imageKeyBuffer), "%s|%ld|%ld|%ld", imageName.UTF8String, (long)traitCollection.horizontalSizeClass, (long)traitCollection.verticalSizeClass, (long)traitCollection.userInterfaceStyle); imageKey = [NSString stringWithUTF8String:imageKeyBuffer]; } diff --git a/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcodeproj/project.pbxproj b/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcodeproj/project.pbxproj index e275becc1..5f5f11354 100644 --- a/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcodeproj/project.pbxproj +++ b/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcodeproj/project.pbxproj @@ -15,10 +15,10 @@ CC55323D1E16F2A90011C01F /* ASListTestCellNode.m in Sources */ = {isa = PBXBuildFile; fileRef = CC5532351E16F2A90011C01F /* ASListTestCellNode.m */; }; CC55323E1E16F2A90011C01F /* ASListTestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CC5532371E16F2A90011C01F /* ASListTestObject.m */; }; CC55323F1E16F2A90011C01F /* ASListKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CC5532381E16F2A90011C01F /* ASListKitTests.m */; }; - CCC31FAD1EF9B96600E41731 /* ASDisplayNode+OCMock.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FA51EF9B96600E41731 /* ASDisplayNode+OCMock.m */; }; - CCC31FAE1EF9B96600E41731 /* ASTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FA71EF9B96600E41731 /* ASTestCase.m */; }; - CCC31FAF1EF9B96600E41731 /* NSInvocation+ASTestHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FAA1EF9B96600E41731 /* NSInvocation+ASTestHelpers.m */; }; - CCC31FB01EF9B96600E41731 /* OCMockObject+ASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FAC1EF9B96600E41731 /* OCMockObject+ASAdditions.m */; }; + CCC31FAD1EF9B96600E41731 /* ASDisplayNode+OCMock.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FA51EF9B96600E41731 /* ASDisplayNode+OCMock.mm */; }; + CCC31FAE1EF9B96600E41731 /* ASTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FA71EF9B96600E41731 /* ASTestCase.mm */; }; + CCC31FAF1EF9B96600E41731 /* NSInvocation+ASTestHelpers.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FAA1EF9B96600E41731 /* NSInvocation+ASTestHelpers.mm */; }; + CCC31FB01EF9B96600E41731 /* OCMockObject+ASAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCC31FAC1EF9B96600E41731 /* OCMockObject+ASAdditions.mm */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -39,14 +39,14 @@ CC5532361E16F2A90011C01F /* ASListTestObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASListTestObject.h; sourceTree = ""; }; CC5532371E16F2A90011C01F /* ASListTestObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASListTestObject.m; sourceTree = ""; }; CC5532381E16F2A90011C01F /* ASListKitTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASListKitTests.m; sourceTree = ""; }; - CCC31FA51EF9B96600E41731 /* ASDisplayNode+OCMock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ASDisplayNode+OCMock.m"; sourceTree = ""; }; + CCC31FA51EF9B96600E41731 /* ASDisplayNode+OCMock.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "ASDisplayNode+OCMock.mm"; sourceTree = ""; }; CCC31FA61EF9B96600E41731 /* ASTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASTestCase.h; sourceTree = ""; }; - CCC31FA71EF9B96600E41731 /* ASTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASTestCase.m; sourceTree = ""; }; + CCC31FA71EF9B96600E41731 /* ASTestCase.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASTestCase.mm; sourceTree = ""; }; CCC31FA81EF9B96600E41731 /* ASXCTExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASXCTExtensions.h; sourceTree = ""; }; CCC31FA91EF9B96600E41731 /* NSInvocation+ASTestHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+ASTestHelpers.h"; sourceTree = ""; }; - CCC31FAA1EF9B96600E41731 /* NSInvocation+ASTestHelpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+ASTestHelpers.m"; sourceTree = ""; }; + CCC31FAA1EF9B96600E41731 /* NSInvocation+ASTestHelpers.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSInvocation+ASTestHelpers.mm"; sourceTree = ""; }; CCC31FAB1EF9B96600E41731 /* OCMockObject+ASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OCMockObject+ASAdditions.h"; sourceTree = ""; }; - CCC31FAC1EF9B96600E41731 /* OCMockObject+ASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMockObject+ASAdditions.m"; sourceTree = ""; }; + CCC31FAC1EF9B96600E41731 /* OCMockObject+ASAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "OCMockObject+ASAdditions.mm"; sourceTree = ""; }; D6BDED6F23A72F40F571EEF0 /* Pods-ASDKListKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ASDKListKitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ASDKListKitTests/Pods-ASDKListKitTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -133,14 +133,14 @@ CCC31FA41EF9B96600E41731 /* Common */ = { isa = PBXGroup; children = ( - CCC31FA51EF9B96600E41731 /* ASDisplayNode+OCMock.m */, + CCC31FA51EF9B96600E41731 /* ASDisplayNode+OCMock.mm */, CCC31FA61EF9B96600E41731 /* ASTestCase.h */, - CCC31FA71EF9B96600E41731 /* ASTestCase.m */, + CCC31FA71EF9B96600E41731 /* ASTestCase.mm */, CCC31FA81EF9B96600E41731 /* ASXCTExtensions.h */, CCC31FA91EF9B96600E41731 /* NSInvocation+ASTestHelpers.h */, - CCC31FAA1EF9B96600E41731 /* NSInvocation+ASTestHelpers.m */, + CCC31FAA1EF9B96600E41731 /* NSInvocation+ASTestHelpers.mm */, CCC31FAB1EF9B96600E41731 /* OCMockObject+ASAdditions.h */, - CCC31FAC1EF9B96600E41731 /* OCMockObject+ASAdditions.m */, + CCC31FAC1EF9B96600E41731 /* OCMockObject+ASAdditions.mm */, ); name = Common; path = ../../Tests/Common; @@ -157,8 +157,6 @@ CC55321F1E16EB9D0011C01F /* Sources */, CC5532201E16EB9D0011C01F /* Frameworks */, CC5532211E16EB9D0011C01F /* Resources */, - 989E6C194A1983B8B21AB82F /* [CP] Embed Pods Frameworks */, - 876CE14CAF6A87E34577E157 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -188,6 +186,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = CC5532181E16EB7A0011C01F; @@ -217,43 +216,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ASDKListKitTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../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"; - showEnvVarsInLog = 0; - }; - 876CE14CAF6A87E34577E157 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ASDKListKitTests/Pods-ASDKListKitTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 989E6C194A1983B8B21AB82F /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ASDKListKitTests/Pods-ASDKListKitTests-frameworks.sh\"\n"; + 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 */ @@ -263,14 +235,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CCC31FAD1EF9B96600E41731 /* ASDisplayNode+OCMock.m in Sources */, + CCC31FAD1EF9B96600E41731 /* ASDisplayNode+OCMock.mm in Sources */, CC55323E1E16F2A90011C01F /* ASListTestObject.m in Sources */, - CCC31FAF1EF9B96600E41731 /* NSInvocation+ASTestHelpers.m in Sources */, + CCC31FAF1EF9B96600E41731 /* NSInvocation+ASTestHelpers.mm in Sources */, CC5532391E16F2A90011C01F /* ASListTestSupplementarySource.m in Sources */, - CCC31FB01EF9B96600E41731 /* OCMockObject+ASAdditions.m in Sources */, + CCC31FB01EF9B96600E41731 /* OCMockObject+ASAdditions.mm in Sources */, CC55323D1E16F2A90011C01F /* ASListTestCellNode.m in Sources */, CC55323B1E16F2A90011C01F /* ASListKitTestAdapterDataSource.m in Sources */, - CCC31FAE1EF9B96600E41731 /* ASTestCase.m in Sources */, + CCC31FAE1EF9B96600E41731 /* ASTestCase.mm in Sources */, CC55323C1E16F2A90011C01F /* ASListTestSection.m in Sources */, CC55323F1E16F2A90011C01F /* ASListKitTests.m in Sources */, CC55323A1E16F2A90011C01F /* ASListTestSupplementaryNode.m in Sources */, @@ -283,14 +255,14 @@ CC55321D1E16EB7A0011C01F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; }; name = Debug; }; CC55321E1E16EB7A0011C01F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; }; name = Release; }; @@ -336,7 +308,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = ASDKListKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -382,7 +354,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = ASDKListKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = asyncdisplaykit.ASDKListKitTests; diff --git a/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/SubspecWorkspaces/ASDKListKit/ASDKListKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SubspecWorkspaces/ASDKListKit/Podfile b/SubspecWorkspaces/ASDKListKit/Podfile index 0f2828e60..4f3eb9d93 100644 --- a/SubspecWorkspaces/ASDKListKit/Podfile +++ b/SubspecWorkspaces/ASDKListKit/Podfile @@ -1,9 +1,9 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'ASDKListKitTests' do pod 'Texture/IGListKit', :path => '../..' - pod 'OCMock', '~> 3.4' + pod 'OCMock', '~> 3.9' pod 'JGMethodSwizzler', :git => 'https://github.com/JonasGessner/JGMethodSwizzler', :branch => 'master' end diff --git a/Tests/ASDisplayNodeSnapshotTests.mm b/Tests/ASDisplayNodeSnapshotTests.mm index 964bbb50f..1df9e4d63 100644 --- a/Tests/ASDisplayNodeSnapshotTests.mm +++ b/Tests/ASDisplayNodeSnapshotTests.mm @@ -67,43 +67,24 @@ - (void)testClippingCornerRounding node.image = BlueImageMake(bounds); node.frame = bounds; node.cornerRoundingType = ASCornerRoundingTypeClipping; -#if AS_AT_LEAST_IOS13 - if (@available(iOS 13.0, *)) { - node.backgroundColor = UIColor.systemBackgroundColor; - } else { - node.backgroundColor = UIColor.greenColor; - } -#else - node.backgroundColor = UIColor.greenColor; -#endif + node.backgroundColor = UIColor.systemBackgroundColor; node.maskedCorners = c; node.cornerRadius = 15; // A layout pass is required, because that's where we lay out the clip layers. [node.layer layoutIfNeeded]; -#if AS_AT_LEAST_IOS13 - if (@available(iOS 13.0, *)) { - [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleLight] performAsCurrentTraitCollection:^{ - ASSnapshotVerifyNode(node, ([NSString stringWithFormat:@"%d_light", (int)c])); - }]; - - [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ - ASSnapshotVerifyNode(node, ([NSString stringWithFormat:@"%d_dark", (int)c])); - }]; - } else { - ASSnapshotVerifyNode(node, ([NSString stringWithFormat:@"%d", (int)c])); - } -#else - ASSnapshotVerifyNode(node, ([NSString stringWithFormat:@"%d", (int)c])); -#endif + [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleLight] performAsCurrentTraitCollection:^{ + ASSnapshotVerifyNode(node, ([NSString stringWithFormat:@"%d_light", (int)c])); + }]; + + [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ + ASSnapshotVerifyNode(node, ([NSString stringWithFormat:@"%d_dark", (int)c])); + }]; } } -#if AS_AT_LEAST_IOS13 - - (void)testUserInterfaceStyleSnapshotTesting { - if (@available(iOS 13.0, *)) { ASDisplayNode *node = [[ASDisplayNode alloc] init]; [node setLayerBacked:YES]; @@ -119,11 +100,9 @@ - (void)testUserInterfaceStyleSnapshotTesting [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ ASSnapshotVerifyNode(node, @"user_interface_style_dark"); }]; - } } - (void)testBackgroundDynamicColor { - if (@available(iOS 13.0, *)) { ASDisplayNode *node = [[ASImageNode alloc] init]; node.backgroundColor = [UIColor systemGray6Color]; auto bounds = CGRectMake(0, 0, 100, 100); @@ -138,11 +117,9 @@ - (void)testBackgroundDynamicColor { [tcDark performAsCurrentTraitCollection: ^{ ASSnapshotVerifyNode(node, @"dark"); }]; - } } - (void)testBackgroundDynamicColorLayerBacked { - if (@available(iOS 13.0, *)) { ASDisplayNode *node = [[ASImageNode alloc] init]; node.backgroundColor = [UIColor systemGray6Color]; node.layerBacked = YES; @@ -158,9 +135,6 @@ - (void)testBackgroundDynamicColorLayerBacked { [tcDark performAsCurrentTraitCollection: ^{ ASSnapshotVerifyNode(node, @"dark"); }]; - } } -#endif // #if AS_AT_LEAST_IOS13 - @end diff --git a/Tests/ASDisplayNodeTests.mm b/Tests/ASDisplayNodeTests.mm index 00b013350..e3a494edd 100644 --- a/Tests/ASDisplayNodeTests.mm +++ b/Tests/ASDisplayNodeTests.mm @@ -628,10 +628,8 @@ - (void)checkValuesMatchSetValues:(ASDisplayNode *)node isLayerBacked:(BOOL)isLa XCTAssertEqual(YES, node.accessibilityViewIsModal, @"accessibilityViewIsModal broken %@", hasLoadedView); XCTAssertEqual(YES, node.shouldGroupAccessibilityChildren, @"shouldGroupAccessibilityChildren broken %@", hasLoadedView); XCTAssertEqual(UIAccessibilityNavigationStyleSeparate, node.accessibilityNavigationStyle, @"accessibilityNavigationStyle broken %@", hasLoadedView); - if (AS_AVAILABLE_IOS_TVOS(8, 9)) { - XCTAssertNotNil(node.accessibilityCustomActions, @"accessibilityCustomActions broken %@", hasLoadedView); - XCTAssertEqualObjects(@"custom action", ((UIAccessibilityCustomAction *)(node.accessibilityCustomActions.firstObject)).name, @"accessibilityCustomActions broken %@", hasLoadedView); - } + XCTAssertNotNil(node.accessibilityCustomActions, @"accessibilityCustomActions broken %@", hasLoadedView); + XCTAssertEqualObjects(@"custom action", ((UIAccessibilityCustomAction *)(node.accessibilityCustomActions.firstObject)).name, @"accessibilityCustomActions broken %@", hasLoadedView); XCTAssertTrue(CGPointEqualToPoint(CGPointMake(1.0, 1.0), node.accessibilityActivationPoint), @"accessibilityActivationPoint broken %@", hasLoadedView); XCTAssertNotNil(node.accessibilityPath, @"accessibilityPath broken %@", hasLoadedView); @@ -705,9 +703,7 @@ - (void)checkSimpleBridgePropertiesSetPropagate:(BOOL)isLayerBacked node.accessibilityViewIsModal = YES; node.shouldGroupAccessibilityChildren = YES; node.accessibilityNavigationStyle = UIAccessibilityNavigationStyleSeparate; - if (AS_AVAILABLE_IOS_TVOS(8, 9)) { - node.accessibilityCustomActions = @[ [[UIAccessibilityCustomAction alloc] initWithName:@"custom action" target:self selector:@selector(dummySelector)] ]; - } + node.accessibilityCustomActions = @[ [[UIAccessibilityCustomAction alloc] initWithName:@"custom action" target:self selector:@selector(dummySelector)] ]; node.accessibilityActivationPoint = CGPointMake(1.0, 1.0); node.accessibilityPath = [UIBezierPath bezierPath]; @@ -1298,7 +1294,7 @@ - (void)testThatUIKitDeallocationTrampoliningWorks node.idGestureRecognizer = [[UIGestureRecognizer alloc] init]; UIGraphicsBeginImageContextWithOptions(CGSizeMake(1000, 1000), YES, 1); node.bigImage = UIGraphicsGetImageFromCurrentImageContext(); - node.randomProperty = @[ @"Hello, world!" ]; + node.randomProperty = [NSArray arrayWithObject:@"Hello, world!"]; UIGraphicsEndImageContext(); weakImage = node.bigImage; weakView = node.view; diff --git a/Tests/ASDisplayNodeTestsHelper.mm b/Tests/ASDisplayNodeTestsHelper.mm index ae2054911..54c479618 100644 --- a/Tests/ASDisplayNodeTestsHelper.mm +++ b/Tests/ASDisplayNodeTestsHelper.mm @@ -27,9 +27,7 @@ BOOL ASDisplayNodeRunRunLoopUntilBlockIsTrue(as_condition_block_t block) CFTimeInterval timeoutDate = CACurrentMediaTime() + kTimeoutInterval; BOOL passed = NO; while (true) { - OSMemoryBarrier(); passed = block(); - OSMemoryBarrier(); if (passed) { break; } diff --git a/Tests/ASGraphicsContextTests.mm b/Tests/ASGraphicsContextTests.mm index 1a9373418..0c827d4d0 100644 --- a/Tests/ASGraphicsContextTests.mm +++ b/Tests/ASGraphicsContextTests.mm @@ -26,11 +26,8 @@ - (void)setUp [ASConfigurationManager test_resetWithConfiguration:config]; } - -#if AS_AT_LEAST_IOS13 - (void)testCanceled { - if (AS_AVAILABLE_IOS_TVOS(13, 13)) { CGSize size = CGSize{.width=100, .height=100}; XCTestExpectation *expectationCancelled = [self expectationWithDescription:@"canceled"]; @@ -46,12 +43,10 @@ - (void)testCanceled XCTAssertNil(canceledImage); [self waitForExpectations:@[expectationCancelled] timeout:1]; - } } - (void)testCanceledNil { - if (AS_AVAILABLE_IOS_TVOS(13, 13)) { CGSize size = CGSize{.width=100, .height=100}; ASPrimitiveTraitCollection traitCollection = ASPrimitiveTraitCollectionMakeDefault(); @@ -63,12 +58,10 @@ - (void)testCanceledNil XCTAssert(image); [self waitForExpectations:@[expectation] timeout:1]; - } } - (void)testTraitCollectionPassedToWork { - if (AS_AVAILABLE_IOS_TVOS(13, 13)) { CGSize size = CGSize{.width=100, .height=100}; XCTestExpectation *expectationDark = [self expectationWithDescription:@"trait collection dark"]; @@ -90,7 +83,5 @@ - (void)testTraitCollectionPassedToWork }); [self waitForExpectations:@[expectationDark, expectationLight] timeout:1]; - } } -#endif @end diff --git a/Tests/ASImageNodeSnapshotTests.mm b/Tests/ASImageNodeSnapshotTests.mm index 13364930b..78889c80f 100644 --- a/Tests/ASImageNodeSnapshotTests.mm +++ b/Tests/ASImageNodeSnapshotTests.mm @@ -11,7 +11,6 @@ #import -#if AS_AT_LEAST_IOS13 static UIImage* makeImageWithColor(UIColor *color, CGSize size) { CGRect rect = CGRect{.origin = CGPointZero, .size = size}; UIGraphicsBeginImageContextWithOptions(size, false, 0); @@ -21,7 +20,6 @@ UIGraphicsEndImageContext(); return image; } -#endif @interface ASImageNodeSnapshotTests : ASSnapshotTestCase @end @@ -238,10 +236,8 @@ - (void)testUIGraphicsRendererDrawingExperiment ASSnapshotVerifyNode(imageNode, nil); } -#if AS_AT_LEAST_IOS13 - (void)testDynamicAssetImage { - if (@available(iOS 13.0, *)) { UIImage *image = [UIImage imageNamed:@"light-dark" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; ASImageNode *node = [[ASImageNode alloc] init]; node.image = image; @@ -254,12 +250,10 @@ - (void)testDynamicAssetImage [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ ASSnapshotVerifyNode(node, @"user_interface_style_dark"); }]; - } } - (void)testDynamicTintColor { - if (@available(iOS 13.0, *)) { UIImage *image = makeImageWithColor(UIColor.redColor, CGSize{.width = 100, .height = 100}); image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; UIColor* tintColor = UIColor.systemBackgroundColor; @@ -277,7 +271,5 @@ - (void)testDynamicTintColor [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ ASSnapshotVerifyNode(node, @"user_interface_style_dark"); }]; - } } -#endif // #if AS_AT_LEAST_IOS13 @end diff --git a/Tests/ASSnapshotTestCase.mm b/Tests/ASSnapshotTestCase.mm index ce50b7cb3..d1495b1d1 100644 --- a/Tests/ASSnapshotTestCase.mm +++ b/Tests/ASSnapshotTestCase.mm @@ -27,11 +27,7 @@ + (void)hackilySynchronouslyRecursivelyRenderNode:(ASDisplayNode *)node // Disable asynchronous display for rendering snapshots since things like UITraitCollection are thread-local // so changes to them (`-[UITraitCollection performAsCurrentTraitCollection]`) aren't preserved across threads. // Since the goal of this method is to just to ensure a node is rendered before snapshotting, this should be reasonable default for all callers. -#if AS_AT_LEAST_IOS13 - if (@available(iOS 13.0, *)) { - ASTraitCollectionPropagateDown(node, ASPrimitiveTraitCollectionFromUITraitCollection(UITraitCollection.currentTraitCollection)); - } -#endif // #if AS_AT_LEAST_IOS13 + ASTraitCollectionPropagateDown(node, ASPrimitiveTraitCollectionFromUITraitCollection(UITraitCollection.currentTraitCollection)); node.displaysAsynchronously = NO; ASDisplayNodePerformBlockOnEveryNode(nil, node, YES, ^(ASDisplayNode * _Nonnull node) { [node.layer setNeedsDisplay]; diff --git a/Tests/ASTextNodePerformanceTests.mm b/Tests/ASTextNodePerformanceTests.mm index 961d192aa..ad4015f5a 100644 --- a/Tests/ASTextNodePerformanceTests.mm +++ b/Tests/ASTextNodePerformanceTests.mm @@ -41,7 +41,9 @@ @implementation ASTextNodePerformanceTests dispatch_once(&onceToken, ^{ NSString *file = [[NSBundle bundleForClass:self] pathForResource:@"AttributedStringsFixture0" ofType:@"plist" inDirectory:@"TestResources"]; if (file != nil) { - array = [NSKeyedUnarchiver unarchiveObjectWithFile:file]; + NSError *error = nil; + NSData *data = [NSData dataWithContentsOfFile:file]; + array = [NSKeyedUnarchiver unarchivedArrayOfObjectsOfClass:[NSAttributedString class] fromData:data error:&error]; } NSAssert([array isKindOfClass:[NSArray class]], nil); NSSet *unique = [NSSet setWithArray:array]; diff --git a/Tests/ASTextNodeSnapshotTests.mm b/Tests/ASTextNodeSnapshotTests.mm index 74118a6e8..c950226a7 100644 --- a/Tests/ASTextNodeSnapshotTests.mm +++ b/Tests/ASTextNodeSnapshotTests.mm @@ -184,11 +184,8 @@ - (void)testTintColorHierarchyChange ASSnapshotVerifyNode(node, @"red_tint_from_parent"); } -#if AS_AT_LEAST_IOS13 - - (void)testUserInterfaceStyleSnapshotTesting { - if (@available(iOS 13.0, *)) { UITraitCollection.currentTraitCollection = [UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleLight]; ASTextNode *node = [[ASTextNode alloc] init]; @@ -226,12 +223,10 @@ - (void)testUserInterfaceStyleSnapshotTesting [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ ASSnapshotVerifyNode(node, @"user_interface_style_dark"); }]; - } } - (void)testUserInterfaceStyleSnapshotTestingTintColor { - if (@available(iOS 13.0, *)) { UITraitCollection.currentTraitCollection = [UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleLight]; ASTextNode *node = [[ASTextNode alloc] init]; @@ -267,12 +262,6 @@ - (void)testUserInterfaceStyleSnapshotTestingTintColor [[UITraitCollection traitCollectionWithUserInterfaceStyle:UIUserInterfaceStyleDark] performAsCurrentTraitCollection:^{ ASSnapshotVerifyNode(node, @"user_interface_style_dark"); }]; - } } - - - -#endif // #if AS_AT_LEAST_IOS13 - @end diff --git a/Tests/ASThrashUtility.m b/Tests/ASThrashUtility.m index ac2da5315..b50c110b4 100644 --- a/Tests/ASThrashUtility.m +++ b/Tests/ASThrashUtility.m @@ -423,12 +423,14 @@ + (BOOL)supportsSecureCoding + (ASThrashUpdate *)thrashUpdateWithBase64String:(NSString *)base64 { - return [NSKeyedUnarchiver unarchiveObjectWithData:[[NSData alloc] initWithBase64EncodedString:base64 options:kNilOptions]]; + NSError *error = nil; + return [NSKeyedUnarchiver unarchivedObjectOfClass:[ASThrashUpdate class] fromData:[[NSData alloc] initWithBase64EncodedString:base64 options:kNilOptions] error:&error]; } - (NSString *)base64Representation { - return [[NSKeyedArchiver archivedDataWithRootObject:self] base64EncodedStringWithOptions:kNilOptions]; + NSError *error = nil; + return [[NSKeyedArchiver archivedDataWithRootObject:self requiringSecureCoding:NO error:&error] base64EncodedStringWithOptions:kNilOptions]; } - (void)encodeWithCoder:(NSCoder *)aCoder diff --git a/Texture.podspec b/Texture.podspec index 86caec693..77b71c7fd 100644 --- a/Texture.podspec +++ b/Texture.podspec @@ -10,12 +10,16 @@ Pod::Spec.new do |spec| spec.header_dir = 'AsyncDisplayKit' spec.documentation_url = 'http://texturegroup.org/appledoc/' - - spec.ios.deployment_target = '9.0' - spec.tvos.deployment_target = '9.0' - + + ios_deployment_target = '14.0' + tvos_deployment_target = '14.0' + spec.ios.deployment_target = ios_deployment_target + spec.tvos.deployment_target = tvos_deployment_target + # Subspecs spec.subspec 'Core' do |core| + core.ios.deployment_target = ios_deployment_target + core.tvos.deployment_target = tvos_deployment_target core.compiler_flags = '-fno-exceptions' core.public_header_files = [ 'Source/*.h', @@ -41,48 +45,63 @@ Pod::Spec.new do |spec| end spec.subspec 'PINRemoteImage' do |pin| + pin.ios.deployment_target = ios_deployment_target + pin.tvos.deployment_target = tvos_deployment_target pin.dependency 'PINRemoteImage/iOS', '~> 3.0.0' pin.dependency 'PINRemoteImage/PINCache' pin.dependency 'Texture/Core' end spec.subspec 'IGListKit' do |igl| + igl.ios.deployment_target = ios_deployment_target + igl.tvos.deployment_target = tvos_deployment_target igl.dependency 'IGListKit', '~> 4.0' igl.dependency 'IGListDiffKit', '~> 4.0' igl.dependency 'Texture/Core' end spec.subspec 'Yoga' do |yoga| + yoga.ios.deployment_target = ios_deployment_target yoga.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) YOGA=1' } - yoga.dependency 'Yoga', '1.6.0' + yoga.dependency 'Yoga', '~> 2.0' yoga.dependency 'Texture/Core' end # If flag is enabled the old TextNode with all dependencies will be compiled out spec.subspec 'TextNode2' do |text_node| + text_node.ios.deployment_target = ios_deployment_target + text_node.tvos.deployment_target = tvos_deployment_target text_node.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) AS_ENABLE_TEXTNODE=0' } text_node.dependency 'Texture/Core' end spec.subspec 'Video' do |video| + video.ios.deployment_target = ios_deployment_target + video.tvos.deployment_target = tvos_deployment_target video.frameworks = ['AVFoundation', 'CoreMedia'] video.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) AS_USE_VIDEO=1' } video.dependency 'Texture/Core' end spec.subspec 'MapKit' do |map| + map.ios.deployment_target = ios_deployment_target + map.tvos.deployment_target = tvos_deployment_target map.frameworks = ['CoreLocation', 'MapKit'] map.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) AS_USE_MAPKIT=1' } map.dependency 'Texture/Core' end spec.subspec 'Photos' do |photos| + photos.ios.deployment_target = ios_deployment_target + photos.tvos.deployment_target = tvos_deployment_target photos.frameworks = 'Photos' photos.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) AS_USE_PHOTOS=1' } photos.dependency 'Texture/Core' end spec.subspec 'AssetsLibrary' do |assetslib| + assetslib.ios.deployment_target = ios_deployment_target + assetslib.tvos.deployment_target = tvos_deployment_target assetslib.ios.frameworks = 'AssetsLibrary' assetslib.ios.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) AS_USE_ASSETS_LIBRARY=1' } assetslib.dependency 'Texture/Core' diff --git a/build.sh b/build.sh index 886d8ced6..90242b8e3 100755 --- a/build.sh +++ b/build.sh @@ -9,8 +9,8 @@ # echo ************* diagnostics end # run this on a 2x device until we've updated snapshot images to 3x -PLATFORM="${TEXTURE_BUILD_PLATFORM:-platform=iOS Simulator,OS=16.2,name=iPhone SE (3rd generation)}" -SDK="${TEXTURE_BUILD_SDK:-iphonesimulator16.2}" +PLATFORM="${TEXTURE_BUILD_PLATFORM:-platform=iOS Simulator,OS=17.4,name=iPhone SE (3rd generation)}" +SDK="${TEXTURE_BUILD_SDK:-iphonesimulator17.4}" DERIVED_DATA_PATH="~/ASDKDerivedData" # It is pitch black. @@ -37,10 +37,14 @@ function build_example { if [ -f "${example}/Podfile" ]; then echo "Using CocoaPods" pod install --project-directory=$example - + + workspace=$(ls -d ${example}/*.xcworkspace) + filename=$(basename -- "$workspace") + scheme="${filename%.*}" + set -o pipefail && xcodebuild \ - -workspace "${example}/Sample.xcworkspace" \ - -scheme Sample \ + -workspace "${workspace}" \ + -scheme "$scheme" \ -sdk "$SDK" \ -destination "$PLATFORM" \ -derivedDataPath "$DERIVED_DATA_PATH" \ @@ -52,7 +56,8 @@ function build_example { cd $example echo "git \"file://${local_repo}\" \"${current_branch}\"" > "Cartfile" - carthage update --platform iOS + carthage update --no-use-binaries --no-build --platform iOS + carthage build --no-skip-current --use-xcframeworks set -o pipefail && xcodebuild \ -project "Sample.xcodeproj" \ @@ -155,6 +160,16 @@ examples-pt4) success="1" ;; +examples-extras) + echo "Verifying that all AsyncDisplayKit examples extras compile." + for example in $(find ./examples_extra -type d -maxdepth 1 \( ! -iname ".*" \)); do + echo "Building (examples-extra) $example" + + build_example $example + done + success="1" + ;; + examples-extra-pt1) echo "Verifying that all AsyncDisplayKit examples compile." for example in $((find ./examples_extra -type d -maxdepth 1 \( ! -iname ".*" \)) | head -6); do @@ -219,7 +234,7 @@ framework|all) cocoapods-lint|all) echo "Verifying that podspec lints." - set -o pipefail && pod env && pod lib lint + set -o pipefail && pod env && pod lib lint --allow-warnings success="1" ;; @@ -248,7 +263,7 @@ cocoapods-lint-other-subspecs) carthage|all) echo "Verifying carthage works." - set -o pipefail && carthage update && carthage build --no-skip-current + set -o pipefail && carthage update --no-use-binaries --no-build && carthage build --no-skip-current --use-xcframeworks success="1" ;; diff --git a/examples/ASCollectionView/Podfile b/examples/ASCollectionView/Podfile index 108b3ae44..881c8d079 100644 --- a/examples/ASCollectionView/Podfile +++ b/examples/ASCollectionView/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/ASCollectionView/Podfile.lock b/examples/ASCollectionView/Podfile.lock deleted file mode 100644 index 27a2385b6..000000000 --- a/examples/ASCollectionView/Podfile.lock +++ /dev/null @@ -1,59 +0,0 @@ -PODS: - - PINCache (3.0.1-beta.8): - - PINCache/Arc-exception-safe (= 3.0.1-beta.8) - - PINCache/Core (= 3.0.1-beta.8) - - PINCache/Arc-exception-safe (3.0.1-beta.8): - - PINCache/Core - - PINCache/Core (3.0.1-beta.8): - - PINOperation (~> 1.1.1) - - PINOperation (1.1.2) - - PINRemoteImage/Core (3.0.0): - - PINOperation - - PINRemoteImage/iOS (3.0.0): - - PINRemoteImage/Core - - PINRemoteImage/PINCache (3.0.0): - - PINCache (= 3.0.1-beta.8) - - PINRemoteImage/Core - - Texture (2.8.1): - - Texture/AssetsLibrary (= 2.8.1) - - Texture/Core (= 2.8.1) - - Texture/MapKit (= 2.8.1) - - Texture/Photos (= 2.8.1) - - Texture/PINRemoteImage (= 2.8.1) - - Texture/Video (= 2.8.1) - - Texture/AssetsLibrary (2.8.1): - - Texture/Core - - Texture/Core (2.8.1) - - Texture/MapKit (2.8.1): - - Texture/Core - - Texture/Photos (2.8.1): - - Texture/Core - - Texture/PINRemoteImage (2.8.1): - - PINRemoteImage/iOS (~> 3.0.0) - - PINRemoteImage/PINCache - - Texture/Core - - Texture/Video (2.8.1): - - Texture/Core - -DEPENDENCIES: - - Texture (from `../..`) - -SPEC REPOS: - https://github.com/CocoaPods/Specs.git: - - PINCache - - PINOperation - - PINRemoteImage - -EXTERNAL SOURCES: - Texture: - :path: "../.." - -SPEC CHECKSUMS: - PINCache: 534fd41d358d828dfdf227a0d327f3673a65e20b - PINOperation: 24b774353ca248fcf87d67b2d61eef42087c125a - PINRemoteImage: e2b89e19fb6e77ffc099f9d9f3b3fe1745e3f9f9 - Texture: ad4b83ac33d473dc767a087305174d628c0b8c03 - -PODFILE CHECKSUM: b17902b22e47a614d87184388d54379942b9e58c - -COCOAPODS: 1.9.1 diff --git a/examples/ASCollectionView/Sample.xcodeproj/project.pbxproj b/examples/ASCollectionView/Sample.xcodeproj/project.pbxproj index 209056acd..5e8b6ae95 100644 --- a/examples/ASCollectionView/Sample.xcodeproj/project.pbxproj +++ b/examples/ASCollectionView/Sample.xcodeproj/project.pbxproj @@ -131,6 +131,7 @@ AC3C4A5A1A11F47200143C57 /* Sources */, AC3C4A5B1A11F47200143C57 /* Frameworks */, AC3C4A5C1A11F47200143C57 /* Resources */, + E8164CD18C904F16153917FE /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -160,6 +161,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -186,6 +188,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + E8164CD18C904F16153917FE /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; F868CFBB21824CC9521B6588 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -308,6 +330,7 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = 1; @@ -321,6 +344,7 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = 1; diff --git a/examples/ASDKLayoutTransition/Podfile b/examples/ASDKLayoutTransition/Podfile index cbdb4fd56..53eecd949 100644 --- a/examples/ASDKLayoutTransition/Podfile +++ b/examples/ASDKLayoutTransition/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' pod 'Texture/Yoga', :path => '../..' diff --git a/examples/ASDKLayoutTransition/Sample.xcodeproj/project.pbxproj b/examples/ASDKLayoutTransition/Sample.xcodeproj/project.pbxproj index d9af6f631..a5c2badda 100644 --- a/examples/ASDKLayoutTransition/Sample.xcodeproj/project.pbxproj +++ b/examples/ASDKLayoutTransition/Sample.xcodeproj/project.pbxproj @@ -117,6 +117,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + AF1ECB34FD3C50CA83345B86 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -146,6 +147,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -173,6 +175,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + AF1ECB34FD3C50CA83345B86 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -291,6 +313,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -305,6 +328,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/ASDKLayoutTransition/Sample.xcworkspace/contents.xcworkspacedata b/examples/ASDKLayoutTransition/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/ASDKLayoutTransition/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/ASDKLayoutTransition/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/ASDKLayoutTransition/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/ASDKLayoutTransition/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/ASDKTube/Podfile b/examples/ASDKTube/Podfile index 2c3865603..469e222e4 100644 --- a/examples/ASDKTube/Podfile +++ b/examples/ASDKTube/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/ASDKTube/Sample.xcodeproj/project.pbxproj b/examples/ASDKTube/Sample.xcodeproj/project.pbxproj index b17491325..275e52494 100644 --- a/examples/ASDKTube/Sample.xcodeproj/project.pbxproj +++ b/examples/ASDKTube/Sample.xcodeproj/project.pbxproj @@ -192,6 +192,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 31A80672909DDAD46E5F9B14 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -221,6 +222,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -254,6 +256,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 31A80672909DDAD46E5F9B14 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -376,6 +398,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -388,6 +411,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; diff --git a/examples/ASDKTube/Sample.xcworkspace/contents.xcworkspacedata b/examples/ASDKTube/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/ASDKTube/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/ASDKTube/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/ASDKTube/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/ASDKTube/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/ASDKgram/Podfile b/examples/ASDKgram/Podfile index 26b3a6411..f8652262b 100644 --- a/examples/ASDKgram/Podfile +++ b/examples/ASDKgram/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture/IGListKit', :path => '../..' pod 'Texture/PINRemoteImage', :path => '../..' diff --git a/examples/ASDKgram/Sample.xcodeproj/project.pbxproj b/examples/ASDKgram/Sample.xcodeproj/project.pbxproj index a4b54adb1..2af8f270b 100644 --- a/examples/ASDKgram/Sample.xcodeproj/project.pbxproj +++ b/examples/ASDKgram/Sample.xcodeproj/project.pbxproj @@ -275,6 +275,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 916BC772CBDBC2176C777CB8 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -304,6 +305,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -333,6 +335,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 916BC772CBDBC2176C777CB8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -474,6 +496,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Sample/Sample.pch; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -494,6 +517,7 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = Sample/Sample.pch; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/ASMapNode/Podfile b/examples/ASMapNode/Podfile index 108b3ae44..881c8d079 100644 --- a/examples/ASMapNode/Podfile +++ b/examples/ASMapNode/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/ASMapNode/Sample.xcodeproj/project.pbxproj b/examples/ASMapNode/Sample.xcodeproj/project.pbxproj index d2bbd283f..cfe12bfd1 100644 --- a/examples/ASMapNode/Sample.xcodeproj/project.pbxproj +++ b/examples/ASMapNode/Sample.xcodeproj/project.pbxproj @@ -121,6 +121,7 @@ 694993C91C8B334F00491CA5 /* Sources */, 694993CA1C8B334F00491CA5 /* Frameworks */, 694993CB1C8B334F00491CA5 /* Resources */, + 7ED9C74B2A67F085D215B739 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -150,6 +151,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -176,6 +178,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 7ED9C74B2A67F085D215B739 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; 80035273449C25F4B2E1454F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -310,6 +332,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -323,6 +346,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/ASMapNode/Sample.xcworkspace/contents.xcworkspacedata b/examples/ASMapNode/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/ASMapNode/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/ASMapNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/ASMapNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/ASMapNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/ASViewController/Podfile b/examples/ASViewController/Podfile index 108b3ae44..881c8d079 100644 --- a/examples/ASViewController/Podfile +++ b/examples/ASViewController/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/ASViewController/Sample.xcodeproj/project.pbxproj b/examples/ASViewController/Sample.xcodeproj/project.pbxproj index 28f7e1a57..5edcee6d9 100644 --- a/examples/ASViewController/Sample.xcodeproj/project.pbxproj +++ b/examples/ASViewController/Sample.xcodeproj/project.pbxproj @@ -126,6 +126,7 @@ 694993C91C8B334F00491CA5 /* Sources */, 694993CA1C8B334F00491CA5 /* Frameworks */, 694993CB1C8B334F00491CA5 /* Resources */, + 3EFD77CEB3976D309C1F3183 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -155,6 +156,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -181,6 +183,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 3EFD77CEB3976D309C1F3183 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; 80035273449C25F4B2E1454F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -315,6 +337,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -327,6 +350,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/ASViewController/Sample.xcworkspace/contents.xcworkspacedata b/examples/ASViewController/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/ASViewController/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/ASViewController/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/ASViewController/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/ASViewController/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/ASViewController/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/ASViewController/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json index 118c98f74..81213230d 100644 --- a/examples/ASViewController/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/examples/ASViewController/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -2,37 +2,52 @@ "images" : [ { "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/ASViewController/Sample/DetailCellNode.m b/examples/ASViewController/Sample/DetailCellNode.m index edc993207..5e215ff02 100644 --- a/examples/ASViewController/Sample/DetailCellNode.m +++ b/examples/ASViewController/Sample/DetailCellNode.m @@ -50,7 +50,7 @@ - (void)layoutDidFinish - (NSURL *)imageURL { CGSize imageSize = self.calculatedSize; - NSString *imageURLString = [NSString stringWithFormat:@"http://lorempixel.com/%ld/%ld/%@/%ld", (NSInteger)imageSize.width, (NSInteger)imageSize.height, self.imageCategory, self.row]; + NSString *imageURLString = [NSString stringWithFormat:@"https://lorempixel.com/%ld/%ld/%@/%ld", (NSInteger)imageSize.width, (NSInteger)imageSize.height, self.imageCategory, self.row]; return [NSURL URLWithString:imageURLString]; } diff --git a/examples/AnimatedGIF/Podfile b/examples/AnimatedGIF/Podfile index e653ed7b5..881c8d079 100644 --- a/examples/AnimatedGIF/Podfile +++ b/examples/AnimatedGIF/Podfile @@ -1,7 +1,6 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' - pod 'PINRemoteImage/WebP' end diff --git a/examples/AnimatedGIF/Sample.xcodeproj/project.pbxproj b/examples/AnimatedGIF/Sample.xcodeproj/project.pbxproj index 72b18ff85..f68315c5c 100644 --- a/examples/AnimatedGIF/Sample.xcodeproj/project.pbxproj +++ b/examples/AnimatedGIF/Sample.xcodeproj/project.pbxproj @@ -118,6 +118,7 @@ 683ADB9A1CA19883005863A4 /* Sources */, 683ADB9B1CA19883005863A4 /* Frameworks */, 683ADB9C1CA19883005863A4 /* Resources */, + B5717DAE3963992647B6B82B /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -147,6 +148,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -194,6 +196,26 @@ 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; }; + B5717DAE3963992647B6B82B /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -317,6 +339,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = ASAnimatedImage/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -329,6 +352,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = ASAnimatedImage/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/AnimatedGIF/Sample.xcworkspace/contents.xcworkspacedata b/examples/AnimatedGIF/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/AnimatedGIF/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/AnimatedGIF/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/AnimatedGIF/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/AnimatedGIF/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/AsyncDisplayKitOverview/Podfile b/examples/AsyncDisplayKitOverview/Podfile index ed581f79e..decd137f3 100644 --- a/examples/AsyncDisplayKitOverview/Podfile +++ b/examples/AsyncDisplayKitOverview/Podfile @@ -1,6 +1,6 @@ source 'https://cdn.cocoapods.org/' # Uncomment this line to define a global platform for your project -platform :ios, '9.0' +platform :ios, '14.0' # Uncomment this line if you're using Swift # use_frameworks! diff --git a/examples/AsyncDisplayKitOverview/Sample.xcodeproj/project.pbxproj b/examples/AsyncDisplayKitOverview/Sample.xcodeproj/project.pbxproj index 047651e5e..ac9dea39e 100644 --- a/examples/AsyncDisplayKitOverview/Sample.xcodeproj/project.pbxproj +++ b/examples/AsyncDisplayKitOverview/Sample.xcodeproj/project.pbxproj @@ -139,6 +139,7 @@ 6972162C1CCD8FB300122312 /* Sources */, 6972162D1CCD8FB300122312 /* Frameworks */, 6972162E1CCD8FB300122312 /* Resources */, + 7197C21102DA9DB3D2C82A84 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -168,6 +169,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -194,6 +196,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 7197C21102DA9DB3D2C82A84 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; 78A0D09A94A74B3737920EA7 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -333,6 +355,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -345,6 +368,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/AsyncDisplayKitOverview/Sample.xcworkspace/contents.xcworkspacedata b/examples/AsyncDisplayKitOverview/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/AsyncDisplayKitOverview/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/AsyncDisplayKitOverview/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/AsyncDisplayKitOverview/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/AsyncDisplayKitOverview/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/CatDealsCollectionView/Podfile b/examples/CatDealsCollectionView/Podfile index 2c3865603..469e222e4 100644 --- a/examples/CatDealsCollectionView/Podfile +++ b/examples/CatDealsCollectionView/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/CatDealsCollectionView/Sample.xcodeproj/project.pbxproj b/examples/CatDealsCollectionView/Sample.xcodeproj/project.pbxproj index df62e5b66..e55262b61 100644 --- a/examples/CatDealsCollectionView/Sample.xcodeproj/project.pbxproj +++ b/examples/CatDealsCollectionView/Sample.xcodeproj/project.pbxproj @@ -154,6 +154,7 @@ AC3C4A5A1A11F47200143C57 /* Sources */, AC3C4A5B1A11F47200143C57 /* Frameworks */, AC3C4A5C1A11F47200143C57 /* Resources */, + F3ED64CE6E6CA3D0457EB055 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -183,6 +184,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -209,6 +211,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + F3ED64CE6E6CA3D0457EB055 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; F868CFBB21824CC9521B6588 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -335,6 +357,7 @@ buildSettings = { ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; @@ -347,6 +370,7 @@ buildSettings = { ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/examples/CatDealsCollectionView/Sample.xcworkspace/contents.xcworkspacedata b/examples/CatDealsCollectionView/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/CatDealsCollectionView/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/CatDealsCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/CatDealsCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/CatDealsCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/CustomCollectionView-Swift/Podfile b/examples/CustomCollectionView-Swift/Podfile index 6ae53e286..0dbb8cd95 100644 --- a/examples/CustomCollectionView-Swift/Podfile +++ b/examples/CustomCollectionView-Swift/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' use_frameworks! diff --git a/examples/CustomCollectionView-Swift/Podfile.lock b/examples/CustomCollectionView-Swift/Podfile.lock deleted file mode 100644 index 370843aa8..000000000 --- a/examples/CustomCollectionView-Swift/Podfile.lock +++ /dev/null @@ -1,59 +0,0 @@ -PODS: - - PINCache (3.0.1-beta.8): - - PINCache/Arc-exception-safe (= 3.0.1-beta.8) - - PINCache/Core (= 3.0.1-beta.8) - - PINCache/Arc-exception-safe (3.0.1-beta.8): - - PINCache/Core - - PINCache/Core (3.0.1-beta.8): - - PINOperation (~> 1.1.1) - - PINOperation (1.1.2) - - PINRemoteImage/Core (3.0.0): - - PINOperation - - PINRemoteImage/iOS (3.0.0): - - PINRemoteImage/Core - - PINRemoteImage/PINCache (3.0.0): - - PINCache (= 3.0.1-beta.8) - - PINRemoteImage/Core - - Texture (2.8.1): - - Texture/AssetsLibrary (= 2.8.1) - - Texture/Core (= 2.8.1) - - Texture/MapKit (= 2.8.1) - - Texture/Photos (= 2.8.1) - - Texture/PINRemoteImage (= 2.8.1) - - Texture/Video (= 2.8.1) - - Texture/AssetsLibrary (2.8.1): - - Texture/Core - - Texture/Core (2.8.1) - - Texture/MapKit (2.8.1): - - Texture/Core - - Texture/Photos (2.8.1): - - Texture/Core - - Texture/PINRemoteImage (2.8.1): - - PINRemoteImage/iOS (~> 3.0.0) - - PINRemoteImage/PINCache - - Texture/Core - - Texture/Video (2.8.1): - - Texture/Core - -DEPENDENCIES: - - Texture (from `../..`) - -SPEC REPOS: - https://github.com/CocoaPods/Specs.git: - - PINCache - - PINOperation - - PINRemoteImage - -EXTERNAL SOURCES: - Texture: - :path: "../.." - -SPEC CHECKSUMS: - PINCache: 534fd41d358d828dfdf227a0d327f3673a65e20b - PINOperation: 24b774353ca248fcf87d67b2d61eef42087c125a - PINRemoteImage: e2b89e19fb6e77ffc099f9d9f3b3fe1745e3f9f9 - Texture: ad4b83ac33d473dc767a087305174d628c0b8c03 - -PODFILE CHECKSUM: 316495acd32fa1807206d27d639fc360fc516643 - -COCOAPODS: 1.9.1 diff --git a/examples/CustomCollectionView-Swift/Sample.xcodeproj/project.pbxproj b/examples/CustomCollectionView-Swift/Sample.xcodeproj/project.pbxproj index e69d4eff9..5cc9e5bd5 100644 --- a/examples/CustomCollectionView-Swift/Sample.xcodeproj/project.pbxproj +++ b/examples/CustomCollectionView-Swift/Sample.xcodeproj/project.pbxproj @@ -8,19 +8,19 @@ /* Begin PBXBuildFile section */ 27F2D2683285DCB73EE734BB /* Pods_Sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7DA4A9952245B7E9BA8201F /* Pods_Sample.framework */; }; + 4450BB142BFBDF7700EA0889 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4450BB132BFBDF7700EA0889 /* Assets.xcassets */; }; 5D823AD51DD3B7770075E14A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AD41DD3B7770075E14A /* AppDelegate.swift */; }; 5D823AD71DD3B7770075E14A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AD61DD3B7770075E14A /* ViewController.swift */; }; - 5D823ADC1DD3B7770075E14A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5D823ADB1DD3B7770075E14A /* Assets.xcassets */; }; 5D823ADF1DD3B7770075E14A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D823ADD1DD3B7770075E14A /* LaunchScreen.storyboard */; }; 5D823AE71DD3B7D30075E14A /* MosaicCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AE61DD3B7D30075E14A /* MosaicCollectionViewLayout.swift */; }; 5D823AE91DD3B7D70075E14A /* ImageCellNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AE81DD3B7D70075E14A /* ImageCellNode.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 4450BB132BFBDF7700EA0889 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 5D823AD11DD3B7770075E14A /* Sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 5D823AD41DD3B7770075E14A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 5D823AD61DD3B7770075E14A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 5D823ADB1DD3B7770075E14A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 5D823ADE1DD3B7770075E14A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 5D823AE01DD3B7770075E14A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5D823AE61DD3B7D30075E14A /* MosaicCollectionViewLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MosaicCollectionViewLayout.swift; sourceTree = ""; }; @@ -76,7 +76,7 @@ 5D823AD61DD3B7770075E14A /* ViewController.swift */, 5D823AE81DD3B7D70075E14A /* ImageCellNode.swift */, 5D823AE61DD3B7D30075E14A /* MosaicCollectionViewLayout.swift */, - 5D823ADB1DD3B7770075E14A /* Assets.xcassets */, + 4450BB132BFBDF7700EA0889 /* Assets.xcassets */, 5D823ADD1DD3B7770075E14A /* LaunchScreen.storyboard */, 5D823AE01DD3B7770075E14A /* Info.plist */, ); @@ -155,8 +155,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 4450BB142BFBDF7700EA0889 /* Assets.xcassets in Resources */, 5D823ADF1DD3B7770075E14A /* LaunchScreen.storyboard in Resources */, - 5D823ADC1DD3B7770075E14A /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -345,6 +345,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = 888KTQ92ZP; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -359,6 +360,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = 888KTQ92ZP; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json index b8236c653..13613e3ee 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,48 +1,13 @@ { "images" : [ { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "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" : "universal", + "platform" : "ios", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/Contents.json index da4a164c9..73c00596a 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/Contents.json index 09ec0851e..2ea2a81fe 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { + "filename" : "image_0.png", "idiom" : "universal", - "filename" : "image_0.jpg", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/image_0.jpg b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/image_0.png similarity index 100% rename from examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/image_0.jpg rename to examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_0.imageset/image_0.png diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_1.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_1.imageset/Contents.json index 6d2e9f5f7..f412e74ca 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_1.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_1.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_1.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_10.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_10.imageset/Contents.json index ea1070018..e321d9f64 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_10.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_10.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_10.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_11.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_11.imageset/Contents.json index dc8546905..0ca578294 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_11.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_11.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_11.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_12.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_12.imageset/Contents.json index a6d99003d..68fcc1bc1 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_12.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_12.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_12.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_13.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_13.imageset/Contents.json index 4eb6baad3..3bb8e409b 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_13.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_13.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_13.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_2.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_2.imageset/Contents.json index b2536e53d..a1db36794 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_2.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_2.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_2.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/Contents.json index 512e73509..3fd780aab 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { + "filename" : "image_3.png", "idiom" : "universal", - "filename" : "image_3.jpg", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/image_3.jpg b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/image_3.png similarity index 100% rename from examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/image_3.jpg rename to examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_3.imageset/image_3.png diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_4.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_4.imageset/Contents.json index 88b2b7b98..cb3376c9a 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_4.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_4.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_4.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_5.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_5.imageset/Contents.json index 1f24c086d..1b7859ee8 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_5.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_5.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_5.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_6.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_6.imageset/Contents.json index 25f33f2ac..96003d279 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_6.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_6.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_6.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_7.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_7.imageset/Contents.json index 5fdd6ba2c..e51281edd 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_7.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_7.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_7.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_8.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_8.imageset/Contents.json index 563d5ba82..f3ef13191 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_8.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_8.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_8.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_9.imageset/Contents.json b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_9.imageset/Contents.json index 66c1b859b..ae12b342f 100644 --- a/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_9.imageset/Contents.json +++ b/examples/CustomCollectionView-Swift/Sample/Assets.xcassets/image_9.imageset/Contents.json @@ -1,8 +1,8 @@ { "images" : [ { - "idiom" : "universal", "filename" : "image_9.jpg", + "idiom" : "universal", "scale" : "1x" }, { @@ -15,7 +15,7 @@ } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/examples/CustomCollectionView/Podfile b/examples/CustomCollectionView/Podfile index 2c3865603..469e222e4 100644 --- a/examples/CustomCollectionView/Podfile +++ b/examples/CustomCollectionView/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/CustomCollectionView/Sample.xcodeproj/project.pbxproj b/examples/CustomCollectionView/Sample.xcodeproj/project.pbxproj index c03d56c04..e5efa322e 100644 --- a/examples/CustomCollectionView/Sample.xcodeproj/project.pbxproj +++ b/examples/CustomCollectionView/Sample.xcodeproj/project.pbxproj @@ -134,6 +134,7 @@ AC3C4A5A1A11F47200143C57 /* Sources */, AC3C4A5B1A11F47200143C57 /* Frameworks */, AC3C4A5C1A11F47200143C57 /* Resources */, + 0A16DA86B54DA959FC54B333 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -164,6 +165,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -190,6 +192,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 0A16DA86B54DA959FC54B333 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; F868CFBB21824CC9521B6588 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -313,6 +335,7 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; DEVELOPMENT_TEAM = XSR3D45JSF; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample.CustomCollectionView; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -327,6 +350,7 @@ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; DEVELOPMENT_TEAM = XSR3D45JSF; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample.CustomCollectionView; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/CustomCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/CustomCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/CustomCollectionView/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/HorizontalWithinVerticalScrolling/Podfile b/examples/HorizontalWithinVerticalScrolling/Podfile index 2c3865603..469e222e4 100644 --- a/examples/HorizontalWithinVerticalScrolling/Podfile +++ b/examples/HorizontalWithinVerticalScrolling/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/HorizontalWithinVerticalScrolling/Sample.xcodeproj/project.pbxproj b/examples/HorizontalWithinVerticalScrolling/Sample.xcodeproj/project.pbxproj index cbd835c7e..b0f5c0315 100644 --- a/examples/HorizontalWithinVerticalScrolling/Sample.xcodeproj/project.pbxproj +++ b/examples/HorizontalWithinVerticalScrolling/Sample.xcodeproj/project.pbxproj @@ -127,6 +127,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 6D213818F5FA8F176A748881 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -156,6 +157,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -183,6 +185,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 6D213818F5FA8F176A748881 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -301,6 +323,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; @@ -313,6 +336,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/examples/HorizontalWithinVerticalScrolling/Sample.xcworkspace/contents.xcworkspacedata b/examples/HorizontalWithinVerticalScrolling/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/HorizontalWithinVerticalScrolling/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/Kittens/Podfile b/examples/Kittens/Podfile index 2c3865603..469e222e4 100644 --- a/examples/Kittens/Podfile +++ b/examples/Kittens/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/Kittens/Sample.xcodeproj/project.pbxproj b/examples/Kittens/Sample.xcodeproj/project.pbxproj index d4a47b3f2..d5e020c3f 100644 --- a/examples/Kittens/Sample.xcodeproj/project.pbxproj +++ b/examples/Kittens/Sample.xcodeproj/project.pbxproj @@ -129,6 +129,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 214EE71840CCE0155702370A /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -158,6 +159,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -185,6 +187,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 214EE71840CCE0155702370A /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -304,6 +326,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -317,6 +340,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/Kittens/Sample.xcworkspace/contents.xcworkspacedata b/examples/Kittens/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/Kittens/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/Kittens/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/Kittens/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/Kittens/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/LayoutSpecExamples-Swift/Podfile b/examples/LayoutSpecExamples-Swift/Podfile index 8f0a2963a..55ed77128 100644 --- a/examples/LayoutSpecExamples-Swift/Podfile +++ b/examples/LayoutSpecExamples-Swift/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' use_frameworks! diff --git a/examples/LayoutSpecExamples-Swift/Sample.xcodeproj/project.pbxproj b/examples/LayoutSpecExamples-Swift/Sample.xcodeproj/project.pbxproj index d94bd1e33..406810755 100644 --- a/examples/LayoutSpecExamples-Swift/Sample.xcodeproj/project.pbxproj +++ b/examples/LayoutSpecExamples-Swift/Sample.xcodeproj/project.pbxproj @@ -354,6 +354,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -367,6 +368,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/LayoutSpecExamples-Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/LayoutSpecExamples-Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/LayoutSpecExamples-Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/LayoutSpecExamples/Podfile b/examples/LayoutSpecExamples/Podfile index 108b3ae44..881c8d079 100644 --- a/examples/LayoutSpecExamples/Podfile +++ b/examples/LayoutSpecExamples/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/LayoutSpecExamples/Sample.xcodeproj/project.pbxproj b/examples/LayoutSpecExamples/Sample.xcodeproj/project.pbxproj index 3137fa836..822209c9c 100644 --- a/examples/LayoutSpecExamples/Sample.xcodeproj/project.pbxproj +++ b/examples/LayoutSpecExamples/Sample.xcodeproj/project.pbxproj @@ -128,6 +128,7 @@ 694993C91C8B334F00491CA5 /* Sources */, 694993CA1C8B334F00491CA5 /* Frameworks */, 694993CB1C8B334F00491CA5 /* Resources */, + B8E16AFBA84D624C4730E1D6 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -157,6 +158,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -200,6 +202,26 @@ 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; }; + B8E16AFBA84D624C4730E1D6 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -317,6 +339,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -329,6 +352,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/LayoutSpecExamples/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/LayoutSpecExamples/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/LayoutSpecExamples/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/PagerNode/Podfile b/examples/PagerNode/Podfile index 2c3865603..469e222e4 100644 --- a/examples/PagerNode/Podfile +++ b/examples/PagerNode/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/PagerNode/Sample.xcodeproj/project.pbxproj b/examples/PagerNode/Sample.xcodeproj/project.pbxproj index fcf899153..b041d1233 100644 --- a/examples/PagerNode/Sample.xcodeproj/project.pbxproj +++ b/examples/PagerNode/Sample.xcodeproj/project.pbxproj @@ -122,6 +122,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 67894442FEEE7B956C7BA242 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -151,6 +152,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -178,6 +180,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 67894442FEEE7B956C7BA242 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -296,6 +318,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -309,6 +332,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/PagerNode/Sample.xcworkspace/contents.xcworkspacedata b/examples/PagerNode/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/PagerNode/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/PagerNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/PagerNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/PagerNode/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/SocialAppLayout-Inverted/Podfile b/examples/SocialAppLayout-Inverted/Podfile index 2c3865603..469e222e4 100644 --- a/examples/SocialAppLayout-Inverted/Podfile +++ b/examples/SocialAppLayout-Inverted/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/SocialAppLayout-Inverted/Sample.xcodeproj/project.pbxproj b/examples/SocialAppLayout-Inverted/Sample.xcodeproj/project.pbxproj index 03410a2df..0c42979bb 100644 --- a/examples/SocialAppLayout-Inverted/Sample.xcodeproj/project.pbxproj +++ b/examples/SocialAppLayout-Inverted/Sample.xcodeproj/project.pbxproj @@ -206,6 +206,7 @@ 3EEA4EE01BECC4A1008A7F35 /* Sources */, 3EEA4EE11BECC4A1008A7F35 /* Frameworks */, 3EEA4EE21BECC4A1008A7F35 /* Resources */, + 44013D28ADB05DD4038B95D9 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -235,6 +236,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -281,6 +283,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 44013D28ADB05DD4038B95D9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; B5BD9E5609B2CB179EEE0CF4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -406,6 +428,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -419,6 +442,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/SocialAppLayout-Inverted/Sample.xcworkspace/contents.xcworkspacedata b/examples/SocialAppLayout-Inverted/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/SocialAppLayout-Inverted/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/SocialAppLayout-Inverted/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/SocialAppLayout-Inverted/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/SocialAppLayout-Inverted/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/SocialAppLayout-Inverted/Sample/PostNode.m b/examples/SocialAppLayout-Inverted/Sample/PostNode.m index a0711d78e..08bd54519 100644 --- a/examples/SocialAppLayout-Inverted/Sample/PostNode.m +++ b/examples/SocialAppLayout-Inverted/Sample/PostNode.m @@ -136,16 +136,13 @@ - (instancetype)initWithPost:(Post *)post _avatarNode.URL = [NSURL URLWithString:_post.photo]; _avatarNode.imageModificationBlock = ^UIImage *(UIImage *image, ASPrimitiveTraitCollection traitCollection) { - UIImage *modifiedImage; CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height); - UIGraphicsBeginImageContextWithOptions(image.size, false, [[UIScreen mainScreen] scale]); - + UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:image.size]; + UIImage *modifiedImage = [renderer imageWithActions:^(UIGraphicsImageRendererContext * _Nonnull rendererContext) { [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:44.0] addClip]; [image drawInRect:rect]; - modifiedImage = UIGraphicsGetImageFromCurrentImageContext(); - - UIGraphicsEndImageContext(); + }]; return modifiedImage; diff --git a/examples/SocialAppLayout/Podfile b/examples/SocialAppLayout/Podfile index 2c3865603..469e222e4 100644 --- a/examples/SocialAppLayout/Podfile +++ b/examples/SocialAppLayout/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/SocialAppLayout/Sample.xcodeproj/project.pbxproj b/examples/SocialAppLayout/Sample.xcodeproj/project.pbxproj index eb233bf22..3c4882e63 100644 --- a/examples/SocialAppLayout/Sample.xcodeproj/project.pbxproj +++ b/examples/SocialAppLayout/Sample.xcodeproj/project.pbxproj @@ -204,6 +204,7 @@ 3EEA4EE01BECC4A1008A7F35 /* Sources */, 3EEA4EE11BECC4A1008A7F35 /* Frameworks */, 3EEA4EE21BECC4A1008A7F35 /* Resources */, + 2901F57C49086ABE2359BAFE /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -233,6 +234,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -279,6 +281,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 2901F57C49086ABE2359BAFE /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; B5BD9E5609B2CB179EEE0CF4 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -404,6 +426,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -417,6 +440,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.AsyncDisplayKit.Sample; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/SocialAppLayout/Sample.xcworkspace/contents.xcworkspacedata b/examples/SocialAppLayout/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/SocialAppLayout/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/SocialAppLayout/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/SocialAppLayout/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/SocialAppLayout/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/Swift/Podfile b/examples/Swift/Podfile index 8f0a2963a..55ed77128 100644 --- a/examples/Swift/Podfile +++ b/examples/Swift/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' use_frameworks! diff --git a/examples/Swift/Sample.xcodeproj/project.pbxproj b/examples/Swift/Sample.xcodeproj/project.pbxproj index e35c78658..51422ff4a 100644 --- a/examples/Swift/Sample.xcodeproj/project.pbxproj +++ b/examples/Swift/Sample.xcodeproj/project.pbxproj @@ -335,6 +335,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -348,6 +349,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples/Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/Swift/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/VerticalWithinHorizontalScrolling/Podfile b/examples/VerticalWithinHorizontalScrolling/Podfile index 2c3865603..469e222e4 100644 --- a/examples/VerticalWithinHorizontalScrolling/Podfile +++ b/examples/VerticalWithinHorizontalScrolling/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/VerticalWithinHorizontalScrolling/Sample.xcodeproj/project.pbxproj b/examples/VerticalWithinHorizontalScrolling/Sample.xcodeproj/project.pbxproj index d5f12f47e..3b1967f00 100644 --- a/examples/VerticalWithinHorizontalScrolling/Sample.xcodeproj/project.pbxproj +++ b/examples/VerticalWithinHorizontalScrolling/Sample.xcodeproj/project.pbxproj @@ -127,6 +127,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 186B55FCA84F337F42649DBF /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -156,6 +157,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -183,6 +185,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 186B55FCA84F337F42649DBF /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -301,6 +323,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; @@ -313,6 +336,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/contents.xcworkspacedata b/examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/VerticalWithinHorizontalScrolling/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples/Videos/Podfile b/examples/Videos/Podfile index 2c3865603..469e222e4 100644 --- a/examples/Videos/Podfile +++ b/examples/Videos/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples/Videos/Sample.xcodeproj/project.pbxproj b/examples/Videos/Sample.xcodeproj/project.pbxproj index fe88c8b27..2acadee19 100644 --- a/examples/Videos/Sample.xcodeproj/project.pbxproj +++ b/examples/Videos/Sample.xcodeproj/project.pbxproj @@ -129,6 +129,7 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, + 7D341AC54C81424CD16C90D6 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -158,6 +159,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -189,6 +191,26 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 7D341AC54C81424CD16C90D6 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -305,6 +327,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -316,6 +339,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_NAME = "$(TARGET_NAME)"; }; diff --git a/examples/Videos/Sample.xcworkspace/contents.xcworkspacedata b/examples/Videos/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples/Videos/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples/Videos/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/Videos/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples/Videos/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples_extra/ASDKgram-Swift/Podfile b/examples_extra/ASDKgram-Swift/Podfile index 26a1bbbf9..d23e836fb 100644 --- a/examples_extra/ASDKgram-Swift/Podfile +++ b/examples_extra/ASDKgram-Swift/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'ASDKgram-Swift' do use_frameworks! inhibit_all_warnings! diff --git a/examples_extra/ASDKgram-Swift/Podfile.lock b/examples_extra/ASDKgram-Swift/Podfile.lock deleted file mode 100644 index 0ce6bc3c9..000000000 --- a/examples_extra/ASDKgram-Swift/Podfile.lock +++ /dev/null @@ -1,44 +0,0 @@ -PODS: - - PINCache (3.0.3): - - PINCache/Arc-exception-safe (= 3.0.3) - - PINCache/Core (= 3.0.3) - - PINCache/Arc-exception-safe (3.0.3): - - PINCache/Core - - PINCache/Core (3.0.3): - - PINOperation (~> 1.2.1) - - PINOperation (1.2.1) - - PINRemoteImage/Core (3.0.3): - - PINOperation - - PINRemoteImage/iOS (3.0.3): - - PINRemoteImage/Core - - PINRemoteImage/PINCache (3.0.3): - - PINCache (~> 3.0.3) - - PINRemoteImage/Core - - Texture/Core (3.0.0) - - Texture/PINRemoteImage (3.0.0): - - PINRemoteImage/iOS (~> 3.0.0) - - PINRemoteImage/PINCache - - Texture/Core - -DEPENDENCIES: - - Texture/PINRemoteImage (from `../..`) - -SPEC REPOS: - https://github.com/CocoaPods/Specs.git: - - PINCache - - PINOperation - - PINRemoteImage - -EXTERNAL SOURCES: - Texture: - :path: "../.." - -SPEC CHECKSUMS: - PINCache: 7a8fc1a691173d21dbddbf86cd515de6efa55086 - PINOperation: 00c935935f1e8cf0d1e2d6b542e75b88fc3e5e20 - PINRemoteImage: f1295b29f8c5e640e25335a1b2bd9d805171bd01 - Texture: 41ce7d2fdff193a45cc8cfa3c254115cf776068a - -PODFILE CHECKSUM: b5184b4d7838af27c267b131a26a505b747bbf7a - -COCOAPODS: 1.10.1 diff --git a/examples_extra/ASLayoutSpecPlayground-Swift/Podfile b/examples_extra/ASLayoutSpecPlayground-Swift/Podfile index 3d1f3062c..97f211f7a 100644 --- a/examples_extra/ASLayoutSpecPlayground-Swift/Podfile +++ b/examples_extra/ASLayoutSpecPlayground-Swift/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' use_frameworks! target 'Sample' do pod 'Texture', :path => '../..' diff --git a/examples_extra/ASTableViewStressTest/Podfile b/examples_extra/ASTableViewStressTest/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/ASTableViewStressTest/Podfile +++ b/examples_extra/ASTableViewStressTest/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/ASTableViewStressTest/Sample.xcodeproj/project.pbxproj b/examples_extra/ASTableViewStressTest/Sample.xcodeproj/project.pbxproj index c0da5a201..199f2f79b 100644 --- a/examples_extra/ASTableViewStressTest/Sample.xcodeproj/project.pbxproj +++ b/examples_extra/ASTableViewStressTest/Sample.xcodeproj/project.pbxproj @@ -118,7 +118,6 @@ 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, F012A6F39E0149F18F564F50 /* [CP] Copy Pods Resources */, - 75CADB9ECE58AB74892E1D67 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -175,21 +174,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 75CADB9ECE58AB74892E1D67 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -214,13 +198,18 @@ files = ( ); inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/examples_extra/ASTraitCollection/Podfile b/examples_extra/ASTraitCollection/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/ASTraitCollection/Podfile +++ b/examples_extra/ASTraitCollection/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/BackgroundPropertySetting/Podfile b/examples_extra/BackgroundPropertySetting/Podfile index 3d1f3062c..97f211f7a 100644 --- a/examples_extra/BackgroundPropertySetting/Podfile +++ b/examples_extra/BackgroundPropertySetting/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' use_frameworks! target 'Sample' do pod 'Texture', :path => '../..' diff --git a/examples_extra/CarthageBuildTest/Cartfile b/examples_extra/CarthageBuildTest/Cartfile index aa14143b0..ff4d93045 100644 --- a/examples_extra/CarthageBuildTest/Cartfile +++ b/examples_extra/CarthageBuildTest/Cartfile @@ -1 +1 @@ -github "facebook/AsyncDisplayKit" "master" +github "TextureGroup/Texture" "master" diff --git a/examples_extra/CollectionViewWithViewControllerCells/Podfile b/examples_extra/CollectionViewWithViewControllerCells/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/CollectionViewWithViewControllerCells/Podfile +++ b/examples_extra/CollectionViewWithViewControllerCells/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/EditableText/Podfile b/examples_extra/EditableText/Podfile index 108b3ae44..881c8d079 100644 --- a/examples_extra/EditableText/Podfile +++ b/examples_extra/EditableText/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/Multiplex/Podfile b/examples_extra/Multiplex/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/Multiplex/Podfile +++ b/examples_extra/Multiplex/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/Placeholders/Podfile b/examples_extra/Placeholders/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/Placeholders/Podfile +++ b/examples_extra/Placeholders/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/Placeholders/Sample.xcodeproj/project.pbxproj b/examples_extra/Placeholders/Sample.xcodeproj/project.pbxproj index 6054b17bd..337643721 100644 --- a/examples_extra/Placeholders/Sample.xcodeproj/project.pbxproj +++ b/examples_extra/Placeholders/Sample.xcodeproj/project.pbxproj @@ -136,12 +136,13 @@ isa = PBXNativeTarget; buildConfigurationList = 05E212A419D4DB510098F589 /* Build configuration list for PBXNativeTarget "Sample" */; buildPhases = ( + ED9469B2D6B31A3FC8A4887F /* [CP] Check Pods Manifest.lock */, E080B80F89C34A25B3488E26 /* Check Pods Manifest.lock */, 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, F012A6F39E0149F18F564F50 /* Copy Pods Resources */, - 8DF84F9CA640D8BF98C61D50 /* Embed Pods Frameworks */, + E92C45670B0FC9D2335A9626 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -199,34 +200,61 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 8DF84F9CA640D8BF98C61D50 /* Embed Pods Frameworks */ = { + E080B80F89C34A25B3488E26 /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Embed Pods Frameworks"; + name = "Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; - E080B80F89C34A25B3488E26 /* Check Pods Manifest.lock */ = { + E92C45670B0FC9D2335A9626 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", ); - name = "Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + ED9469B2D6B31A3FC8A4887F /* [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-Sample-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; }; F012A6F39E0149F18F564F50 /* Copy Pods Resources */ = { diff --git a/examples_extra/Placeholders/Sample.xcworkspace/contents.xcworkspacedata b/examples_extra/Placeholders/Sample.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..7b5a2f305 --- /dev/null +++ b/examples_extra/Placeholders/Sample.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/examples_extra/RepoSearcher/Podfile b/examples_extra/RepoSearcher/Podfile index 2521a46ba..1bd77be00 100644 --- a/examples_extra/RepoSearcher/Podfile +++ b/examples_extra/RepoSearcher/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'RepoSearcher' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks diff --git a/examples_extra/RepoSearcher/RepoSearcher.xcodeproj/project.pbxproj b/examples_extra/RepoSearcher/RepoSearcher.xcodeproj/project.pbxproj index aa470f0eb..b21cb82d1 100644 --- a/examples_extra/RepoSearcher/RepoSearcher.xcodeproj/project.pbxproj +++ b/examples_extra/RepoSearcher/RepoSearcher.xcodeproj/project.pbxproj @@ -153,7 +153,6 @@ 427F7FC31E58519300D3E11B /* Frameworks */, 427F7FC41E58519300D3E11B /* Resources */, D44B2BB927A2C0B1D632AB44 /* [CP] Embed Pods Frameworks */, - D6DD975D2C366D8DF2A87634 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -185,6 +184,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -217,33 +217,20 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-RepoSearcher/Pods-RepoSearcher-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-RepoSearcher/Pods-RepoSearcher-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/IGListDiffKit/IGListDiffKit.framework", "${BUILT_PRODUCTS_DIR}/IGListKit/IGListKit.framework", "${BUILT_PRODUCTS_DIR}/Texture/AsyncDisplayKit.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IGListDiffKit.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IGListKit.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AsyncDisplayKit.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-RepoSearcher/Pods-RepoSearcher-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D6DD975D2C366D8DF2A87634 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-RepoSearcher/Pods-RepoSearcher-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RepoSearcher/Pods-RepoSearcher-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; DF4AE1C3A409D227D336F673 /* [CP] Check Pods Manifest.lock */ = { @@ -395,10 +382,11 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = RepoSearcher/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = wavio.RepoSearcher; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -408,10 +396,11 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = RepoSearcher/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = wavio.RepoSearcher; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Release; }; diff --git a/examples_extra/RepoSearcher/RepoSearcher.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples_extra/RepoSearcher/RepoSearcher.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples_extra/RepoSearcher/RepoSearcher.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples_extra/RepoSearcher/RepoSearcher/AppDelegate.swift b/examples_extra/RepoSearcher/RepoSearcher/AppDelegate.swift index 75583b7cd..0a84a98b9 100644 --- a/examples_extra/RepoSearcher/RepoSearcher/AppDelegate.swift +++ b/examples_extra/RepoSearcher/RepoSearcher/AppDelegate.swift @@ -16,7 +16,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { return window }() - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. window?.rootViewController = UINavigationController(rootViewController: SearchViewController()) window?.makeKeyAndVisible() diff --git a/examples_extra/RepoSearcher/RepoSearcher/SearchViewController.swift b/examples_extra/RepoSearcher/RepoSearcher/SearchViewController.swift index ec108c2a7..b4231b680 100644 --- a/examples_extra/RepoSearcher/RepoSearcher/SearchViewController.swift +++ b/examples_extra/RepoSearcher/RepoSearcher/SearchViewController.swift @@ -23,7 +23,7 @@ final class SearchViewController: ASDKViewController { let searchToken = SearchToken() var filterString = "" - init() { + override init() { let flowLayout = UICollectionViewFlowLayout() super.init(node: ASCollectionNode(collectionViewLayout: flowLayout)) adapter.setASDKCollectionNode(node) diff --git a/examples_extra/Shop/Shop.xcodeproj/project.pbxproj b/examples_extra/Shop/Shop.xcodeproj/project.pbxproj index 3f45385fc..d5fcaa5fa 100644 --- a/examples_extra/Shop/Shop.xcodeproj/project.pbxproj +++ b/examples_extra/Shop/Shop.xcodeproj/project.pbxproj @@ -228,6 +228,7 @@ 278BFA1A1DD4A7B80065BACA /* Sources */, 278BFA1B1DD4A7B80065BACA /* Frameworks */, 278BFA1C1DD4A7B80065BACA /* Resources */, + B040B28158ED2F7E9C7AF59B /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -269,7 +270,6 @@ TargetAttributes = { 278BFA1D1DD4A7B80065BACA = { CreatedOnToolsVersion = 8.1; - DevelopmentTeam = K3L9PW54G7; LastSwiftMigration = 0810; ProvisioningStyle = Automatic; }; @@ -356,6 +356,26 @@ 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; }; + B040B28158ED2F7E9C7AF59B /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Shop/Pods-Shop-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Shop/Pods-Shop-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -529,14 +549,15 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - DEVELOPMENT_TEAM = K3L9PW54G7; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Shop/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.sample.Shop; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Shop/Shop-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -546,13 +567,14 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - DEVELOPMENT_TEAM = K3L9PW54G7; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Shop/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.sample.Shop; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Shop/Shop-Bridging-Header.h"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -564,10 +586,11 @@ BUNDLE_LOADER = "$(TEST_HOST)"; DEVELOPMENT_TEAM = K3L9PW54G7; INFOPLIST_FILE = ShopTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.sample.ShopTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Shop.app/Shop"; }; name = Debug; @@ -580,10 +603,11 @@ BUNDLE_LOADER = "$(TEST_HOST)"; DEVELOPMENT_TEAM = K3L9PW54G7; INFOPLIST_FILE = ShopTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = org.sample.ShopTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Shop.app/Shop"; }; name = Release; diff --git a/examples_extra/Shop/Shop/Scenes/Shop/ShopViewController.swift b/examples_extra/Shop/Shop/Scenes/Shop/ShopViewController.swift index bea9f86ac..845363972 100644 --- a/examples_extra/Shop/Shop/Scenes/Shop/ShopViewController.swift +++ b/examples_extra/Shop/Shop/Scenes/Shop/ShopViewController.swift @@ -22,7 +22,7 @@ class ShopViewController: ASDKViewController { // MARK: - Object life cycle - init() { + override init() { super.init(node: ASTableNode()) tableNode.delegate = self tableNode.dataSource = self diff --git a/examples_extra/SynchronousConcurrency/Podfile b/examples_extra/SynchronousConcurrency/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/SynchronousConcurrency/Podfile +++ b/examples_extra/SynchronousConcurrency/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/SynchronousConcurrency/Sample.xcodeproj/project.pbxproj b/examples_extra/SynchronousConcurrency/Sample.xcodeproj/project.pbxproj index f3964a956..220b25a93 100644 --- a/examples_extra/SynchronousConcurrency/Sample.xcodeproj/project.pbxproj +++ b/examples_extra/SynchronousConcurrency/Sample.xcodeproj/project.pbxproj @@ -128,7 +128,6 @@ 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, F012A6F39E0149F18F564F50 /* [CP] Copy Pods Resources */, - 0342F7A1563F38A62746D4B8 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -185,21 +184,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 0342F7A1563F38A62746D4B8 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; E080B80F89C34A25B3488E26 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -224,13 +208,18 @@ files = ( ); inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/PINCache/PINCache.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/PINOperation/PINOperation.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINCache.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/PINOperation.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ diff --git a/examples_extra/SynchronousKittens/Podfile b/examples_extra/SynchronousKittens/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/SynchronousKittens/Podfile +++ b/examples_extra/SynchronousKittens/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end diff --git a/examples_extra/TextStressTest/Podfile b/examples_extra/TextStressTest/Podfile index fd3896a39..3ce98d4a2 100644 --- a/examples_extra/TextStressTest/Podfile +++ b/examples_extra/TextStressTest/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture/Yoga', :path => '../..' end diff --git a/examples_extra/TextStressTest/Sample.xcodeproj/project.pbxproj b/examples_extra/TextStressTest/Sample.xcodeproj/project.pbxproj index 806d9a2e8..f78705b16 100644 --- a/examples_extra/TextStressTest/Sample.xcodeproj/project.pbxproj +++ b/examples_extra/TextStressTest/Sample.xcodeproj/project.pbxproj @@ -132,8 +132,6 @@ 05E2127D19D4DB510098F589 /* Sources */, 05E2127E19D4DB510098F589 /* Frameworks */, 05E2127F19D4DB510098F589 /* Resources */, - 96436DA0C1AFF84D8041B522 /* [CP] Embed Pods Frameworks */, - D17B5BD4AA634EFE93D71E9F /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -163,6 +161,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -208,36 +207,6 @@ 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; }; - 96436DA0C1AFF84D8041B522 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D17B5BD4AA634EFE93D71E9F /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Sample/Pods-Sample-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -340,6 +309,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -352,6 +322,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = Sample/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.AsyncDisplayKit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/examples_extra/TextStressTest/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples_extra/TextStressTest/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/examples_extra/TextStressTest/Sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/examples_extra/VideoTableView/Podfile b/examples_extra/VideoTableView/Podfile index 2c3865603..469e222e4 100644 --- a/examples_extra/VideoTableView/Podfile +++ b/examples_extra/VideoTableView/Podfile @@ -1,5 +1,5 @@ source 'https://cdn.cocoapods.org/' -platform :ios, '9.0' +platform :ios, '14.0' target 'Sample' do pod 'Texture', :path => '../..' end