Skip to content

Commit

Permalink
Merge pull request #1177 from karimhm/swift-pm
Browse files Browse the repository at this point in the history
Add Swift Package Manager support
  • Loading branch information
chrisballinger committed Dec 31, 2020
2 parents 9d625f5 + c70cf76 commit 76969d1
Show file tree
Hide file tree
Showing 190 changed files with 630 additions and 82 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1230"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFramework_XMPPFramework"
BuildableName = "XMPPFramework_XMPPFramework"
BlueprintName = "XMPPFramework_XMPPFramework"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFramework"
BuildableName = "XMPPFramework"
BlueprintName = "XMPPFramework"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFrameworkSwift"
BuildableName = "XMPPFrameworkSwift"
BlueprintName = "XMPPFrameworkSwift"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFrameworkSwiftTests"
BuildableName = "XMPPFrameworkSwiftTests"
BlueprintName = "XMPPFrameworkSwiftTests"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFrameworkTests"
BuildableName = "XMPPFrameworkTests"
BlueprintName = "XMPPFrameworkTests"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFrameworkTestsShared"
BuildableName = "XMPPFrameworkTestsShared"
BlueprintName = "XMPPFrameworkTestsShared"
ReferencedContainer = "container:">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFrameworkSwiftTests"
BuildableName = "XMPPFrameworkSwiftTests"
BlueprintName = "XMPPFrameworkSwiftTests"
ReferencedContainer = "container:">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFrameworkTests"
BuildableName = "XMPPFrameworkTests"
BlueprintName = "XMPPFrameworkTests"
ReferencedContainer = "container:">
</BuildableReference>
</TestableReference>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "XMPPFramework_XMPPFramework"
BuildableName = "XMPPFramework_XMPPFramework"
BlueprintName = "XMPPFramework_XMPPFramework"
ReferencedContainer = "container:">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
71 changes: 42 additions & 29 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,49 @@
osx_image: xcode9.3
language: objective-c

cache:
directories:
- Carthage
- Xcode/Testing-iOS/Pods
- Xcode/Testing-macOS/Pods
jobs:
include:
- stage: Swift PM
osx_image: xcode12.2
script:
# Remove the Xcode project so `xcodebuild` would be able to test the Swift PM project.
- rm -rf *.xcodeproj
# Test the Swift PM project using `xcodebuild`.
# The test is performed using `xcodebuild` rather than `swift test` due to this bug:
# https://bugs.swift.org/browse/SR-13560
- xcodebuild -scheme SPM_XMPPFramework-Package -destination "name=iPhone 11 Pro" test

before_install:
# - brew update
# - brew outdated carthage || brew upgrade carthage
- export IOS_SIMULATOR_DESTINATION="platform=iOS Simulator,name=iPhone 8,OS=11.3"
- stage: Xcode Tests
osx_image: xcode9.3
cache:
directories:
- Carthage
- Xcode/Testing-iOS/Pods
- Xcode/Testing-macOS/Pods

install:
- carthage bootstrap --no-build
- cd Xcode
- bundle install
- bundle exec pod repo update --silent
- bundle exec pod install --project-directory=Testing-iOS/
- bundle exec pod install --project-directory=Testing-macOS/
- cd ../
before_install:
# - brew update
# - brew outdated carthage || brew upgrade carthage
- export IOS_SIMULATOR_DESTINATION="platform=iOS Simulator,name=iPhone 8,OS=11.3"

before_script:
- set -o pipefail
install:
- carthage bootstrap --no-build
- cd Xcode
- bundle install
- bundle exec pod repo update --silent
- bundle exec pod install --project-directory=Testing-iOS/
- bundle exec pod install --project-directory=Testing-macOS/
- cd ../

script:
- xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
- travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
- xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
- travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
before_script:
- set -o pipefail

- xcodebuild -project XMPPFramework.xcodeproj -scheme "XMPPFramework (tvOS)" -sdk appletvsimulator -arch x86_64 build | xcpretty -c
- xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
- xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkSwiftTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
- travis_retry xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (iOS)" -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
script:
- xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
- travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
- xcodebuild -workspace Xcode/Testing-macOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk macosx -destination 'platform=OS X,arch=x86_64' test | xcpretty -c
- travis_retry xcodebuild -workspace Xcode/Testing-iOS/XMPPFrameworkTests.xcworkspace -scheme XMPPFrameworkSwiftTests -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c

- xcodebuild -project XMPPFramework.xcodeproj -scheme "XMPPFramework (tvOS)" -sdk appletvsimulator -arch x86_64 build | xcpretty -c
- xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
- xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkSwiftTests.xcodeproj -scheme "XMPPFrameworkTests (macOS)" -sdk macosx -arch x86_64 test | xcpretty -c
- travis_retry xcodebuild -project Xcode/Testing-Carthage/XMPPFrameworkTests.xcodeproj -scheme "XMPPFrameworkTests (iOS)" -sdk iphonesimulator -destination "$IOS_SIMULATOR_DESTINATION" test | xcpretty -c
4 changes: 4 additions & 0 deletions Extensions/CoreDataStorage/XMPPCoreDataStorage.m
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ - (NSString *)managedObjectModelName

- (NSBundle *)managedObjectModelBundle
{
#if SWIFT_PACKAGE && defined(SWIFTPM_MODULE_BUNDLE)
return SWIFTPM_MODULE_BUNDLE;
#else
return [NSBundle bundleForClass:[self class]];
#endif
}

- (NSString *)defaultDatabaseFileName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
* E.g. [super insertOccupant...]
**/

#import "XMPPRoomHybridStorage.h"

@interface XMPPRoomHybridStorage (Protected)

/**
Expand Down

0 comments on commit 76969d1

Please sign in to comment.