diff --git a/.github/workflows/cron-checks.yml b/.github/workflows/cron-checks.yml index 4b17d99509..a707374550 100644 --- a/.github/workflows/cron-checks.yml +++ b/.github/workflows/cron-checks.yml @@ -183,7 +183,6 @@ jobs: - uses: ./.github/actions/bootstrap - run: bundle exec fastlane rubocop - run: bundle exec fastlane run_swift_format strict:true - - run: bundle exec fastlane pod_lint slack: name: Slack Report diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml index 8c9ed4607e..4780c40833 100644 --- a/.github/workflows/release-publish.yml +++ b/.github/workflows/release-publish.yml @@ -22,7 +22,6 @@ jobs: - name: "Fastlane - Publish Release" env: GITHUB_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} - COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }} run: bundle exec fastlane publish_release --verbose diff --git a/.github/workflows/smoke-checks.yml b/.github/workflows/smoke-checks.yml index 9da15a31e7..bb86c8893c 100644 --- a/.github/workflows/smoke-checks.yml +++ b/.github/workflows/smoke-checks.yml @@ -59,8 +59,6 @@ jobs: - run: bundle exec fastlane rubocop - run: bundle exec fastlane run_swift_format strict:true - run: bundle exec fastlane validate_public_interface - - run: bundle exec fastlane pod_lint - if: startsWith(github.event.pull_request.head.ref, 'release/') build-old-xcode: name: Build LLC + UI (Xcode 15) @@ -271,7 +269,3 @@ jobs: - name: Test SPM Integration run: bundle exec fastlane spm_integration timeout-minutes: 25 - - name: Test CocoaPods Integration - if: always() - run: bundle exec fastlane cocoapods_integration - timeout-minutes: 25 diff --git a/.gitignore b/.gitignore index cef555267f..e9236fcee0 100644 --- a/.gitignore +++ b/.gitignore @@ -53,13 +53,6 @@ playground.xcworkspace # Package.pins .build/ -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -Pods/ - # fastlane # # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the @@ -85,7 +78,6 @@ StreamChatCoreTests.xctest.coverage.txt vendor/bundle/ .bundle/ .swiftpm -Sample/Cocoapods/Podfile.lock docusaurus/.env reports/ .scannerwork/ diff --git a/.styles/config/vocabularies/Base/accept.txt b/.styles/config/vocabularies/Base/accept.txt index 8b2eed9485..fda2eb7453 100644 --- a/.styles/config/vocabularies/Base/accept.txt +++ b/.styles/config/vocabularies/Base/accept.txt @@ -1,7 +1,6 @@ 100ms boolean Boolean -CocoaPods cooldown Cooldown encodable @@ -12,7 +11,6 @@ previewable formatters APIs Livestream -Podfile Cartfile XCFramework uploader diff --git a/AGENTS.md b/AGENTS.md index c302654138..a0a7295d95 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,9 +10,9 @@ Agents should prioritize backwards compatibility, API stability, and high test c ### Tech & toolchain • Language: Swift (iOS; Mac Catalyst supported) - • Package managers: Swift Package Manager (primary), CocoaPods and XCFrameworks (also supported) + • Package managers: Swift Package Manager (primary) and XCFrameworks (also supported) • Minimum Xcode: 15.x or newer (Apple Silicon supported) - • iOS targets: Follow existing deployment targets in package/podspec files; don’t lower without approval + • iOS targets: Follow existing deployment targets in package file; don’t lower without approval • CI: GitHub Actions (assume PR validation on build + tests + lint) • Linters & docs: SwiftLint and SwiftFormat @@ -31,20 +31,6 @@ Use the closest folder’s patterns and conventions when editing. 1. Open the repository root in Xcode (Package.swift is present), resolve packages. 2. Select the intended scheme (see Schemes below), pick an iOS Simulator (e.g., iPhone 15), then Build. -### Alternative: CocoaPods consumer check - -If you need to validate as a Pod consumer: - 1. Create a throwaway sample app. - 2. Add to Podfile: - -``` -use_frameworks! -pod 'StreamChatUI', '~> 4.0' -# core only: pod 'StreamChat', '~> 4.0' -``` - - 3. pod install then build the sample. - ### Schemes Common scheme names in this repo include (exact names may evolve): @@ -118,9 +104,9 @@ Security & credentials • If you add scripts, ensure they fail closed on missing env vars. Compatibility & distribution - • Maintain compatibility with supported iOS versions listed in Package.swift/podspecs. + • Maintain compatibility with supported iOS versions listed in Package.swift. • Don’t introduce third-party deps without discussion. - • Validate SPM and CocoaPods integration when changing module boundaries. + • Validate SPM integration when changing module boundaries. When in doubt • Mirror existing patterns in the nearest module. diff --git a/Documentation.docc/Documentation.md b/Documentation.docc/Documentation.md index 478da115da..a8eae40c9e 100644 --- a/Documentation.docc/Documentation.md +++ b/Documentation.docc/Documentation.md @@ -17,7 +17,7 @@ This is the official iOS SDK for [Stream Chat](https://getstream.io/chat/sdk/ios * [iOS/Swift Chat Tutorial](https://getstream.io/tutorials/ios-chat/): Learn how to use the SDK by following our simple tutorial. * [Register](https://getstream.io/chat/trial/): Register to get an API key for Stream Chat. -* [Installation](https://getstream.io/chat/docs/sdk/ios/basics/integration): Learn more about how to install the SDK using SPM or CocoaPods. +* [Installation](https://getstream.io/chat/docs/sdk/ios/basics/integration): Learn more about how to install the SDK using SPM. * Do you want to use Module Stable XCFrameworks? [Check this out](https://getstream.io/chat/docs/sdk/ios/basics/integration#xcframeworks) * [Documentation](https://getstream.io/chat/docs/sdk/ios/): An extensive documentation is available to help with you integration. * [SwiftUI](https://github.com/GetStream/stream-chat-swiftui): Check our SwiftUI SDK if you are developing with SwiftUI. diff --git a/Gemfile b/Gemfile index 6618b799d5..592a9f6682 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,6 @@ gem 'slather' eval_gemfile('fastlane/Pluginfile') group :fastlane_dependencies do - gem 'cocoapods' gem 'fastlane-plugin-lizard' gem 'plist' gem 'xctest_list' diff --git a/Gemfile.lock b/Gemfile.lock index cbc9d3c0f7..7583d92512 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,9 +19,6 @@ GEM tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) artifactory (3.0.17) ast (2.4.3) atomos (0.1.3) @@ -54,43 +51,6 @@ GEM nap open4 (~> 1.3) clamp (1.3.3) - cocoapods (1.16.2) - addressable (~> 2.8) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.16.2) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 2.1, < 3.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.6.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.8.0) - nap (~> 1.0) - ruby-macho (>= 2.3.0, < 3.0) - xcodeproj (>= 1.27.0, < 2.0) - cocoapods-core (1.16.2) - activesupport (>= 5.0, < 8) - addressable (~> 2.8) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix (~> 4.0) - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.5) - cocoapods-downloader (2.1) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.1) - cocoapods-trunk (1.6.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) coderay (1.1.3) colored (1.2) colored2 (3.1.2) @@ -125,9 +85,6 @@ GEM dotenv (2.8.1) drb (2.2.3) emoji_regex (3.2.3) - escape (0.0.4) - ethon (0.16.0) - ffi (>= 1.15.0) eventmachine (1.2.7) excon (0.112.0) faraday (1.10.4) @@ -209,7 +166,7 @@ GEM fastlane pry fastlane-plugin-sonarcloud_metric_kit (0.2.1) - fastlane-plugin-stream_actions (0.3.90) + fastlane-plugin-stream_actions (0.3.91) xctest_list (= 1.2.1) fastlane-plugin-versioning (0.7.1) fastlane-sirp (1.0.0) @@ -217,9 +174,6 @@ GEM faye-websocket (0.12.0) eventmachine (>= 0.12.0) websocket-driver (>= 0.8.0) - ffi (1.17.2) - fourflusher (2.3.1) - fuzzy_match (2.0.4) gh_inspector (1.1.3) git (2.3.3) activesupport (>= 5.0) @@ -284,7 +238,6 @@ GEM mini_mime (1.1.5) mini_portile2 (2.8.9) minitest (5.25.5) - molinillo (0.8.0) multi_json (1.17.0) multipart-post (2.4.1) mustermann (3.0.3) @@ -295,7 +248,6 @@ GEM naturally (2.3.0) net-http-persistent (4.0.6) connection_pool (~> 2.2, >= 2.2.4) - netrc (0.11.0) nio4r (2.7.4) nkf (0.2.0) nokogiri (1.18.9) @@ -361,7 +313,6 @@ GEM rubocop-ast (>= 0.4.0) rubocop-require_tools (0.1.2) rubocop (>= 0.49.1) - ruby-macho (2.5.1) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyzip (2.4.1) @@ -409,8 +360,6 @@ GEM tty-screen (0.8.2) tty-spinner (0.9.3) tty-cursor (~> 0.7) - typhoeus (1.4.1) - ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) @@ -437,7 +386,6 @@ PLATFORMS ruby DEPENDENCIES - cocoapods danger danger-commit_lint eventmachine @@ -445,7 +393,7 @@ DEPENDENCIES fastlane-plugin-create_xcframework fastlane-plugin-lizard fastlane-plugin-sonarcloud_metric_kit - fastlane-plugin-stream_actions (= 0.3.90) + fastlane-plugin-stream_actions (= 0.3.91) fastlane-plugin-versioning faye-websocket json diff --git a/Integration/CocoaPods/.gitignore b/Integration/CocoaPods/.gitignore deleted file mode 100644 index 713251f529..0000000000 --- a/Integration/CocoaPods/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# We never want to commit the lock file for this folder because the main -# point of the test is to always use the latest version. -Podfile.lock diff --git a/Integration/CocoaPods/CocoaPods.xcodeproj/project.pbxproj b/Integration/CocoaPods/CocoaPods.xcodeproj/project.pbxproj deleted file mode 100644 index 36bcd5b067..0000000000 --- a/Integration/CocoaPods/CocoaPods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,418 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXBuildFile section */ - 7917913025E795F700EB800A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7917912F25E795F700EB800A /* AppDelegate.swift */; }; - 7917913225E795F700EB800A /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7917913125E795F700EB800A /* SceneDelegate.swift */; }; - 7917913425E795F700EB800A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7917913325E795F700EB800A /* ViewController.swift */; }; - 7917913725E795F700EB800A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7917913525E795F700EB800A /* Main.storyboard */; }; - 7917913925E795F800EB800A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7917913825E795F800EB800A /* Assets.xcassets */; }; - 7917913C25E795F800EB800A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7917913A25E795F800EB800A /* LaunchScreen.storyboard */; }; - EEC092EE450F46F72ACE83CA /* libPods-CocoaPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 41373BEC28060ABA5E77F239 /* libPods-CocoaPods.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 19442B4FA7EA3BE101B39080 /* Pods-CocoaPods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CocoaPods.release.xcconfig"; path = "Target Support Files/Pods-CocoaPods/Pods-CocoaPods.release.xcconfig"; sourceTree = ""; }; - 41373BEC28060ABA5E77F239 /* libPods-CocoaPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CocoaPods.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7917912C25E795F700EB800A /* CocoaPods.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CocoaPods.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7917912F25E795F700EB800A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7917913125E795F700EB800A /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - 7917913325E795F700EB800A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 7917913625E795F700EB800A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 7917913825E795F800EB800A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 7917913B25E795F800EB800A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 7917913D25E795F800EB800A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 93BE9689A5F9B1E99087963F /* Pods-CocoaPods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CocoaPods.debug.xcconfig"; path = "Target Support Files/Pods-CocoaPods/Pods-CocoaPods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7917912925E795F700EB800A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - EEC092EE450F46F72ACE83CA /* libPods-CocoaPods.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 65C6857DA342BB6D2C4CD8DA /* Pods */ = { - isa = PBXGroup; - children = ( - 93BE9689A5F9B1E99087963F /* Pods-CocoaPods.debug.xcconfig */, - 19442B4FA7EA3BE101B39080 /* Pods-CocoaPods.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - 7917912325E795F700EB800A = { - isa = PBXGroup; - children = ( - 7917912E25E795F700EB800A /* CocoaPods */, - 7917912D25E795F700EB800A /* Products */, - 65C6857DA342BB6D2C4CD8DA /* Pods */, - 80A0FDEFBA102699D66F9C9F /* Frameworks */, - ); - sourceTree = ""; - }; - 7917912D25E795F700EB800A /* Products */ = { - isa = PBXGroup; - children = ( - 7917912C25E795F700EB800A /* CocoaPods.app */, - ); - name = Products; - sourceTree = ""; - }; - 7917912E25E795F700EB800A /* CocoaPods */ = { - isa = PBXGroup; - children = ( - 7917912F25E795F700EB800A /* AppDelegate.swift */, - 7917913125E795F700EB800A /* SceneDelegate.swift */, - 7917913325E795F700EB800A /* ViewController.swift */, - 7917913525E795F700EB800A /* Main.storyboard */, - 7917913825E795F800EB800A /* Assets.xcassets */, - 7917913A25E795F800EB800A /* LaunchScreen.storyboard */, - 7917913D25E795F800EB800A /* Info.plist */, - ); - path = CocoaPods; - sourceTree = ""; - }; - 80A0FDEFBA102699D66F9C9F /* Frameworks */ = { - isa = PBXGroup; - children = ( - 41373BEC28060ABA5E77F239 /* libPods-CocoaPods.a */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7917912B25E795F700EB800A /* CocoaPods */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7917914025E795F800EB800A /* Build configuration list for PBXNativeTarget "CocoaPods" */; - buildPhases = ( - 90F05A2F12517E98C3DE413E /* [CP] Check Pods Manifest.lock */, - 7917912825E795F700EB800A /* Sources */, - 7917912925E795F700EB800A /* Frameworks */, - 7917912A25E795F700EB800A /* Resources */, - B9360EF4913A4981026C5D17 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CocoaPods; - productName = CocoaPods; - productReference = 7917912C25E795F700EB800A /* CocoaPods.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7917912425E795F700EB800A /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1240; - LastUpgradeCheck = 1240; - TargetAttributes = { - 7917912B25E795F700EB800A = { - CreatedOnToolsVersion = 12.4; - }; - }; - }; - buildConfigurationList = 7917912725E795F700EB800A /* Build configuration list for PBXProject "CocoaPods" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7917912325E795F700EB800A; - productRefGroup = 7917912D25E795F700EB800A /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7917912B25E795F700EB800A /* CocoaPods */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7917912A25E795F700EB800A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7917913C25E795F800EB800A /* LaunchScreen.storyboard in Resources */, - 7917913925E795F800EB800A /* Assets.xcassets in Resources */, - 7917913725E795F700EB800A /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 90F05A2F12517E98C3DE413E /* [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-CocoaPods-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; - }; - B9360EF4913A4981026C5D17 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7917912825E795F700EB800A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7917913425E795F700EB800A /* ViewController.swift in Sources */, - 7917913025E795F700EB800A /* AppDelegate.swift in Sources */, - 7917913225E795F700EB800A /* SceneDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 7917913525E795F700EB800A /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 7917913625E795F700EB800A /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 7917913A25E795F800EB800A /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 7917913B25E795F800EB800A /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 7917913E25E795F800EB800A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7917913F25E795F800EB800A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.4; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7917914125E795F800EB800A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 93BE9689A5F9B1E99087963F /* Pods-CocoaPods.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = EHV7XZLAHA; - EXCLUDED_ARCHS = arm64; - INFOPLIST_FILE = CocoaPods/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.getstream.iOS.Integration.CocoaPods; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7917914225E795F800EB800A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 19442B4FA7EA3BE101B39080 /* Pods-CocoaPods.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = EHV7XZLAHA; - EXCLUDED_ARCHS = arm64; - INFOPLIST_FILE = CocoaPods/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = io.getstream.iOS.Integration.CocoaPods; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7917912725E795F700EB800A /* Build configuration list for PBXProject "CocoaPods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7917913E25E795F800EB800A /* Debug */, - 7917913F25E795F800EB800A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7917914025E795F800EB800A /* Build configuration list for PBXNativeTarget "CocoaPods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7917914125E795F800EB800A /* Debug */, - 7917914225E795F800EB800A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7917912425E795F700EB800A /* Project object */; -} diff --git a/Integration/CocoaPods/CocoaPods.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Integration/CocoaPods/CocoaPods.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a625..0000000000 --- a/Integration/CocoaPods/CocoaPods.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Integration/CocoaPods/CocoaPods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Integration/CocoaPods/CocoaPods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/Integration/CocoaPods/CocoaPods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Integration/CocoaPods/CocoaPods.xcworkspace/contents.xcworkspacedata b/Integration/CocoaPods/CocoaPods.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 4dcfa9cf4a..0000000000 --- a/Integration/CocoaPods/CocoaPods.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/Integration/CocoaPods/CocoaPods.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Integration/CocoaPods/CocoaPods.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/Integration/CocoaPods/CocoaPods.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Integration/CocoaPods/CocoaPods/AppDelegate.swift b/Integration/CocoaPods/CocoaPods/AppDelegate.swift deleted file mode 100644 index 0efa756c48..0000000000 --- a/Integration/CocoaPods/CocoaPods/AppDelegate.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// Copyright © 2025 Stream.io Inc. All rights reserved. -// - -import UIKit - -import StreamChat -import StreamChatUI - -@main -class AppDelegate: UIResponder, UIApplicationDelegate { - func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - let client = ChatClient(config: .init(apiKeyString: "key")) - client.connectAnonymousUser() - return true - } - - // MARK: UISceneSession Lifecycle - - func application( - _ application: UIApplication, - configurationForConnecting connectingSceneSession: UISceneSession, - options: UIScene.ConnectionOptions - ) -> UISceneConfiguration { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) - } -} diff --git a/Integration/CocoaPods/CocoaPods/Assets.xcassets/AccentColor.colorset/Contents.json b/Integration/CocoaPods/CocoaPods/Assets.xcassets/AccentColor.colorset/Contents.json deleted file mode 100644 index eb87897008..0000000000 --- a/Integration/CocoaPods/CocoaPods/Assets.xcassets/AccentColor.colorset/Contents.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "colors" : [ - { - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Integration/CocoaPods/CocoaPods/Assets.xcassets/AppIcon.appiconset/Contents.json b/Integration/CocoaPods/CocoaPods/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 9221b9bb1a..0000000000 --- a/Integration/CocoaPods/CocoaPods/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Integration/CocoaPods/CocoaPods/Assets.xcassets/Contents.json b/Integration/CocoaPods/CocoaPods/Assets.xcassets/Contents.json deleted file mode 100644 index 73c00596a7..0000000000 --- a/Integration/CocoaPods/CocoaPods/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Integration/CocoaPods/CocoaPods/Base.lproj/LaunchScreen.storyboard b/Integration/CocoaPods/CocoaPods/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e9329f3..0000000000 --- a/Integration/CocoaPods/CocoaPods/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Integration/CocoaPods/CocoaPods/Base.lproj/Main.storyboard b/Integration/CocoaPods/CocoaPods/Base.lproj/Main.storyboard deleted file mode 100644 index 25a763858e..0000000000 --- a/Integration/CocoaPods/CocoaPods/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Integration/CocoaPods/CocoaPods/Info.plist b/Integration/CocoaPods/CocoaPods/Info.plist deleted file mode 100644 index 5b531f7b27..0000000000 --- a/Integration/CocoaPods/CocoaPods/Info.plist +++ /dev/null @@ -1,66 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main - - - - - UIApplicationSupportsIndirectInputEvents - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Integration/CocoaPods/CocoaPods/SceneDelegate.swift b/Integration/CocoaPods/CocoaPods/SceneDelegate.swift deleted file mode 100644 index bcbbe85cca..0000000000 --- a/Integration/CocoaPods/CocoaPods/SceneDelegate.swift +++ /dev/null @@ -1,11 +0,0 @@ -// -// Copyright © 2025 Stream.io Inc. All rights reserved. -// - -import UIKit - -class SceneDelegate: UIResponder, UIWindowSceneDelegate { - var window: UIWindow? - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {} -} diff --git a/Integration/CocoaPods/CocoaPods/ViewController.swift b/Integration/CocoaPods/CocoaPods/ViewController.swift deleted file mode 100644 index a246a12a32..0000000000 --- a/Integration/CocoaPods/CocoaPods/ViewController.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Copyright © 2025 Stream.io Inc. All rights reserved. -// - -import UIKit - -class ViewController: UIViewController { - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } -} diff --git a/Integration/CocoaPods/podfile b/Integration/CocoaPods/podfile deleted file mode 100644 index 0d9753790b..0000000000 --- a/Integration/CocoaPods/podfile +++ /dev/null @@ -1,4 +0,0 @@ -target 'CocoaPods' do - pod 'StreamChatUI', :path => '../..' - pod 'StreamChat', :path => '../..' -end diff --git a/README.md b/README.md index 8bb3e68bfd..4d3b2dbff1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@

-

@@ -48,7 +47,7 @@ The **StreamChatSwiftUI SDK** is our UI SDK for SwiftUI components. If your appl - [UIKit Chat Tutorial](https://getstream.io/tutorials/ios-uikit-chat/): Learn how to use the SDK by following our simple tutorial with UIKit (or [SwiftUI](https://getstream.io/tutorials/swiftui-chat/)). - [Register](https://getstream.io/chat/trial/): Register to get an API key for Stream Chat. -- [Installation](https://getstream.io/chat/docs/sdk/ios/basics/integration): Learn more about how to install the SDK using SPM or CocoaPods. +- [Installation](https://getstream.io/chat/docs/sdk/ios/basics/integration): Learn more about how to install the SDK using SPM. - Do you want to use Module Stable XCFrameworks? [Check this out](https://getstream.io/chat/docs/sdk/ios/basics/integration#xcframeworks) - [Documentation](https://getstream.io/chat/docs/sdk/ios/): An extensive documentation is available to help with you integration. - [SwiftUI](https://github.com/GetStream/stream-chat-swiftui): Check our SwiftUI SDK if you are developing with SwiftUI. diff --git a/Sources/StreamChat/Utils/Bundle+Extensions.swift b/Sources/StreamChat/Utils/Bundle+Extensions.swift index 7aa03c5caa..29a154f4ef 100644 --- a/Sources/StreamChat/Utils/Bundle+Extensions.swift +++ b/Sources/StreamChat/Utils/Bundle+Extensions.swift @@ -25,19 +25,7 @@ extension Bundle { } static var streamChat: Bundle { - // We're using `resource_bundles` to export our resources in the podspec file - // (See https://guides.cocoapods.org/syntax/podspec.html#resource_bundles) - // since we need to support building pod as a static library. - // This attribute causes cocoapods to build a resource bundle and put all our resources inside, during `pod install` - // But this bundle exists only for cocoapods builds, and for other methods (Carthage, git submodule) we directly export - // assets. - // So we need this compiler check to decide which bundle to use. - // See https://github.com/GetStream/stream-chat-swift/issues/774 - #if COCOAPODS - return Bundle(for: BundleIdentifyingClass.self) - .url(forResource: "StreamChat", withExtension: "bundle") - .flatMap(Bundle.init(url:))! - #elseif SWIFT_PACKAGE + #if SWIFT_PACKAGE return Bundle.module #elseif STATIC_LIBRARY return Bundle.main diff --git a/Sources/StreamChatUI/Utils/Extensions/Bundle+Extensions.swift b/Sources/StreamChatUI/Utils/Extensions/Bundle+Extensions.swift index 80c8729936..7457115382 100644 --- a/Sources/StreamChatUI/Utils/Extensions/Bundle+Extensions.swift +++ b/Sources/StreamChatUI/Utils/Extensions/Bundle+Extensions.swift @@ -8,19 +8,7 @@ private class BundleIdentifyingClass {} extension Bundle { static var streamChatUI: Bundle { - // We're using `resource_bundles` to export our resources in the podspec file - // (See https://guides.cocoapods.org/syntax/podspec.html#resource_bundles) - // since we need to support building pod as a static library. - // This attribute causes cocoapods to build a resource bundle and put all our resources inside, during `pod install` - // But this bundle exists only for cocoapods builds, and for other methods (Carthage, git submodule) we directly export - // assets. - // So we need this compiler check to decide which bundle to use. - // See https://github.com/GetStream/stream-chat-swift/issues/774 - #if COCOAPODS - return Bundle(for: BundleIdentifyingClass.self) - .url(forResource: "StreamChatUIResources", withExtension: "bundle") - .flatMap(Bundle.init(url:))! - #elseif SWIFT_PACKAGE + #if SWIFT_PACKAGE return Bundle.module #elseif STATIC_LIBRARY return Bundle.main diff --git a/StreamChat-XCFramework.podspec b/StreamChat-XCFramework.podspec deleted file mode 100644 index 2aec224040..0000000000 --- a/StreamChat-XCFramework.podspec +++ /dev/null @@ -1,25 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = "StreamChat-XCFramework" - spec.version = "4.89.0" - spec.summary = "StreamChat iOS Client" - spec.description = "stream-chat-swift is the official Swift client for Stream Chat, a service for building chat applications." - - spec.homepage = "https://getstream.io/chat/" - spec.license = { :type => "BSD-3", :file => "LICENSE" } - spec.author = { "getstream.io" => "support@getstream.io" } - spec.social_media_url = "https://getstream.io" - - spec.swift_version = '6.0' - spec.ios.deployment_target = '13.0' - spec.requires_arc = true - - spec.framework = "Foundation" - spec.ios.framework = "UIKit" - - spec.module_name = "StreamChat" - spec.source = { :http => "https://github.com/GetStream/stream-chat-swift/releases/download/#{spec.version}/#{spec.module_name}.zip" } - spec.vendored_frameworks = "#{spec.module_name}.xcframework" - spec.preserve_paths = "#{spec.module_name}.xcframework/*" - - spec.cocoapods_version = ">= 1.11.0" -end diff --git a/StreamChat.podspec b/StreamChat.podspec deleted file mode 100644 index 2aa4fec0c5..0000000000 --- a/StreamChat.podspec +++ /dev/null @@ -1,24 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = "StreamChat" - spec.version = "4.89.0" - spec.summary = "StreamChat iOS Chat Client" - spec.description = "stream-chat-swift is the official Swift client for Stream Chat, a service for building chat applications." - - spec.homepage = "https://getstream.io/chat/" - spec.license = { :type => "BSD-3", :file => "LICENSE" } - spec.author = { "getstream.io" => "support@getstream.io" } - spec.social_media_url = "https://getstream.io" - - spec.swift_version = '6.0' - spec.ios.deployment_target = '13.0' - spec.osx.deployment_target = '11.0' - spec.requires_arc = true - - spec.framework = "Foundation" - spec.ios.framework = "UIKit" - - spec.module_name = "StreamChat" - spec.source = { :git => "https://github.com/GetStream/stream-chat-swift.git", :tag => "#{spec.version}" } - spec.source_files = ["Sources/StreamChat/**/*.swift"] - spec.resource_bundles = { "StreamChat" => ["Sources/StreamChat/**/*.xcdatamodeld"] } -end diff --git a/StreamChatUI-XCFramework.podspec b/StreamChatUI-XCFramework.podspec deleted file mode 100644 index 324c2294d8..0000000000 --- a/StreamChatUI-XCFramework.podspec +++ /dev/null @@ -1,26 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = "StreamChatUI-XCFramework" - spec.version = "4.89.0" - spec.summary = "StreamChat UI Components" - spec.description = "StreamChatUI SDK offers flexible UI components able to display data provided by StreamChat SDK." - - spec.homepage = "https://getstream.io/chat/" - spec.license = { :type => "BSD-3", :file => "LICENSE" } - spec.author = { "getstream.io" => "support@getstream.io" } - spec.social_media_url = "https://getstream.io" - - spec.swift_version = '6.0' - spec.platform = :ios, "13.0" - spec.requires_arc = true - - spec.framework = "Foundation", "UIKit" - - spec.module_name = "StreamChatUI" - spec.source = { :http => "https://github.com/GetStream/stream-chat-swift/releases/download//#{spec.version}/#{spec.module_name}.zip" } - spec.vendored_frameworks = "#{spec.module_name}.xcframework" - spec.preserve_paths = "#{spec.module_name}.xcframework/*" - - spec.dependency "StreamChat-XCFramework", "#{spec.version}" - - spec.cocoapods_version = ">= 1.11.0" -end diff --git a/StreamChatUI.podspec b/StreamChatUI.podspec deleted file mode 100644 index 3358cd76de..0000000000 --- a/StreamChatUI.podspec +++ /dev/null @@ -1,24 +0,0 @@ -Pod::Spec.new do |spec| - spec.name = "StreamChatUI" - spec.version = "4.89.0" - spec.summary = "StreamChat UI Components" - spec.description = "StreamChatUI SDK offers flexible UI components able to display data provided by StreamChat SDK." - - spec.homepage = "https://getstream.io/chat/" - spec.license = { :type => "BSD-3", :file => "LICENSE" } - spec.author = { "getstream.io" => "support@getstream.io" } - spec.social_media_url = "https://getstream.io" - - spec.swift_version = '6.0' - spec.platform = :ios, "13.0" - spec.requires_arc = true - - spec.framework = "Foundation", "UIKit" - - spec.module_name = "StreamChatUI" - spec.source = { :git => "https://github.com/GetStream/stream-chat-swift.git", :tag => "#{spec.version}" } - spec.source_files = ["Sources/StreamChatUI/**/*.swift", "Sources/StreamNuke/**/*.swift", "Sources/StreamSwiftyGif/**/*.swift"] - spec.resource_bundles = { "StreamChatUIResources" => ["Sources/StreamChatUI/Resources/**/*"] } - - spec.dependency "StreamChat", "#{spec.version}" -end diff --git a/fastlane/Fastfile b/fastlane/Fastfile index f6342e3b77..c4fc0a57ec 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -27,7 +27,7 @@ before_all do |lane| if is_ci setup_ci setup_git_config - select_xcode(version: xcode_version) unless [:sonar_upload, :allure_launch, :allure_upload, :pod_lint, :sync_mock_server, :copyright, :merge_main].include?(lane) + select_xcode(version: xcode_version) unless [:sonar_upload, :allure_launch, :allure_upload, :sync_mock_server, :copyright, :merge_main].include?(lane) end end @@ -87,12 +87,10 @@ lane :release do |options| end match_me - pod_lint release_ios_sdk( version: options[:version], bump_type: options[:type], sdk_names: sdk_names, - podspec_names: ['StreamChat', 'StreamChat-XCFramework', 'StreamChatUI', 'StreamChatUI-XCFramework'], github_repo: github_repo, extra_changes: extra_changes, create_pull_request: true @@ -129,7 +127,6 @@ lane :publish_release do |options| skip_git_status_check: false, version: release_version, sdk_names: sdk_names, - podspec_names: ['StreamChat', 'StreamChat-XCFramework', 'StreamChatUI', 'StreamChatUI-XCFramework'], github_repo: github_repo, upload_assets: ['Products/StreamChat.zip', 'Products/StreamChatUI.zip', 'Products/StreamChat-All.zip'] ) @@ -243,11 +240,6 @@ private_lane :appstore_api_key do ) end -lane :pod_lint do - # We don't lint StreamChatUI.podspec since pod lints it against StreamChat's remote version instead of local one - pod_lib_lint(podspec: 'StreamChat.podspec', allow_warnings: true) -end - desc "If `readonly: true` (by default), installs all Certs and Profiles necessary for development and ad-hoc.\nIf `readonly: false`, recreates all Profiles necessary for development and ad-hoc, updates them locally and remotely." lane :match_me do |options| app_identifiers = [ @@ -741,28 +733,6 @@ lane :spm_integration do ) end -desc 'Test CocoaPods Integration' -lane :cocoapods_integration do - next unless is_check_required(sources: sources_matrix[:integration], force_check: @force_check) - - cocoapods( - clean_install: true, - podfile: 'Integration/CocoaPods/' - ) - - gym( - workspace: 'Integration/CocoaPods/CocoaPods.xcworkspace', - scheme: 'CocoaPods', - skip_package_ipa: true, - skip_archive: true, - clean: is_localhost, - derived_data_path: derived_data_path, - cloned_source_packages_path: source_packages_path, - destination: 'generic/platform=iOS Simulator', - xcargs: buildcache_xcargs - ) -end - private_lane :update_testplan_on_ci do |options| update_testplan(path: options[:path], env_vars: { key: 'CI', value: 'TRUE' }) if is_ci end diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index 1da41d0e38..094c91846f 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -5,4 +5,4 @@ gem 'fastlane-plugin-versioning' gem 'fastlane-plugin-create_xcframework' gem 'fastlane-plugin-sonarcloud_metric_kit' -gem 'fastlane-plugin-stream_actions', '0.3.90' +gem 'fastlane-plugin-stream_actions', '0.3.91'