From 56af3ceff66186d60fd9dcd27ffe0682907813ca Mon Sep 17 00:00:00 2001 From: Chris Ballinger Date: Wed, 17 Jul 2019 13:40:09 -0700 Subject: [PATCH 1/3] Remove modulemap from podspec --- GRDB.swift.podspec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/GRDB.swift.podspec b/GRDB.swift.podspec index e3f17ba63a..6499f1333e 100644 --- a/GRDB.swift.podspec +++ b/GRDB.swift.podspec @@ -13,17 +13,16 @@ Pod::Spec.new do |s| s.ios.deployment_target = '9.0' s.osx.deployment_target = '10.9' s.watchos.deployment_target = '2.0' - s.module_map = 'Support/module.modulemap' s.default_subspec = 'standard' s.subspec 'standard' do |ss| - ss.source_files = 'GRDB/**/*.swift', 'Support/*.h' + ss.source_files = 'GRDB/**/*.swift', 'Support/grdb_config.h' ss.framework = 'Foundation' ss.library = 'sqlite3' end s.subspec 'SQLCipher' do |ss| - ss.source_files = 'GRDB/**/*.swift', 'Support/*.h' + ss.source_files = 'GRDB/**/*.swift', 'Support/grdb_config.h' ss.framework = 'Foundation' ss.dependency 'SQLCipher', '>= 3.4.0' ss.xcconfig = { From 507ae0dfdcd27a947919a8c0c63d353e2fc824a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gwendal=20Roue=CC=81?= Date: Sun, 28 Jul 2019 09:35:50 +0200 Subject: [PATCH 2/3] Tests for framework & static CocoaPods integration --- .travis.yml | 46 +- Makefile | 22 +- .../{GRDBiOS => GRDBiOS-framework}/Podfile | 2 +- .../iOS.xcodeproj/project.pbxproj | 34 +- .../contents.xcworkspacedata | 0 .../iOS.xcworkspace/contents.xcworkspacedata | 0 Tests/CocoaPods/GRDBiOS-static/Podfile | 4 + .../iOS.xcodeproj/project.pbxproj | 401 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../iOS.xcworkspace/contents.xcworkspacedata | 10 + 10 files changed, 491 insertions(+), 35 deletions(-) rename Tests/CocoaPods/{GRDBiOS => GRDBiOS-framework}/Podfile (74%) rename Tests/CocoaPods/{GRDBiOS => GRDBiOS-framework}/iOS.xcodeproj/project.pbxproj (97%) rename Tests/CocoaPods/{GRDBiOS => GRDBiOS-framework}/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename Tests/CocoaPods/{GRDBiOS => GRDBiOS-framework}/iOS.xcworkspace/contents.xcworkspacedata (100%) create mode 100644 Tests/CocoaPods/GRDBiOS-static/Podfile create mode 100644 Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.pbxproj create mode 100644 Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Tests/CocoaPods/GRDBiOS-static/iOS.xcworkspace/contents.xcworkspacedata diff --git a/.travis.yml b/.travis.yml index c87f1fece8..fb7fdf576d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -146,8 +146,16 @@ jobs: gemfile: .ci/gemfiles/Gemfile.travis osx_image: xcode10.2 env: - - TID=CocoaPods GRDB - script: make test_install_GRDB_CocoaPods + - TID=CocoaPods GRDB (framework) + script: make test_install_GRDB_CocoaPods_framework + + # CocoaPods Install GRDB + - stage: Test Installation Xcode 10.2 + gemfile: .ci/gemfiles/Gemfile.travis + osx_image: xcode10.2 + env: + - TID=CocoaPods GRDB (static) + script: make test_install_GRDB_CocoaPods_static # SPM Install - stage: Test Installation Xcode 10.2 @@ -297,10 +305,10 @@ jobs: # env: # - TID=SQLCipher 4 # script: make test_framework_SQLCipher4 - # - # ########################################### - # ## Test Installation Xcode 10 - # + + ########################################### + ## Test Installation Xcode 10 + # # Manual Install # - stage: Test Installation Xcode 10 # gemfile: .ci/gemfiles/Gemfile.travis @@ -316,15 +324,23 @@ jobs: # env: # - TID=CocoaPods Lint # script: make test_CocoaPodsLint_GRDB - # - # # CocoaPods Install GRDB - # - stage: Test Installation Xcode 10 - # gemfile: .ci/gemfiles/Gemfile.travis - # osx_image: xcode10 - # env: - # - TID=CocoaPods GRDB - # script: make test_install_GRDB_CocoaPods - # + + # CocoaPods Install GRDB + - stage: Test Installation Xcode 10 + gemfile: .ci/gemfiles/Gemfile.travis + osx_image: xcode10 + env: + - TID=CocoaPods GRDB (framework) + script: make test_install_GRDB_CocoaPods_framework + + # CocoaPods Install GRDB + - stage: Test Installation Xcode 10 + gemfile: .ci/gemfiles/Gemfile.travis + osx_image: xcode10 + env: + - TID=CocoaPods GRDB (static) + script: make test_install_GRDB_CocoaPods_static + # # SPM Install # - stage: Test Installation Xcode 10 # gemfile: .ci/gemfiles/Gemfile.travis diff --git a/Makefile b/Makefile index f8949a3ffa..b030b97e55 100644 --- a/Makefile +++ b/Makefile @@ -272,9 +272,27 @@ test_install_SPM: ./.build/debug/SPM && \ $(SWIFT) package unedit --force GRDB -test_install_GRDB_CocoaPods: +test_install_GRDB_CocoaPods: test_install_GRDB_CocoaPods_framework test_install_GRDB_CocoaPods_static + +test_install_GRDB_CocoaPods_framework: +ifdef POD + cd Tests/CocoaPods/GRDBiOS-framework && \ + $(POD) install && \ + $(XCODEBUILD) \ + -workspace iOS.xcworkspace \ + -scheme iOS \ + -configuration Release \ + -destination $(MAX_IOS_DESTINATION) \ + clean build \ + $(XCPRETTY) +else + @echo CocoaPods must be installed for test_install_GRDB_CocoaPods + @exit 1 +endif + +test_install_GRDB_CocoaPods_static: ifdef POD - cd Tests/CocoaPods/GRDBiOS && \ + cd Tests/CocoaPods/GRDBiOS-static && \ $(POD) install && \ $(XCODEBUILD) \ -workspace iOS.xcworkspace \ diff --git a/Tests/CocoaPods/GRDBiOS/Podfile b/Tests/CocoaPods/GRDBiOS-framework/Podfile similarity index 74% rename from Tests/CocoaPods/GRDBiOS/Podfile rename to Tests/CocoaPods/GRDBiOS-framework/Podfile index 7648899ac8..55aeffee7a 100644 --- a/Tests/CocoaPods/GRDBiOS/Podfile +++ b/Tests/CocoaPods/GRDBiOS-framework/Podfile @@ -1,5 +1,5 @@ use_frameworks! - target 'iOS' platform :ios, '9.0' +supports_swift_versions '4.2' pod 'GRDB.swift', :path => '../../..' diff --git a/Tests/CocoaPods/GRDBiOS/iOS.xcodeproj/project.pbxproj b/Tests/CocoaPods/GRDBiOS-framework/iOS.xcodeproj/project.pbxproj similarity index 97% rename from Tests/CocoaPods/GRDBiOS/iOS.xcodeproj/project.pbxproj rename to Tests/CocoaPods/GRDBiOS-framework/iOS.xcodeproj/project.pbxproj index 05a63958b9..458f4e78e1 100644 --- a/Tests/CocoaPods/GRDBiOS/iOS.xcodeproj/project.pbxproj +++ b/Tests/CocoaPods/GRDBiOS-framework/iOS.xcodeproj/project.pbxproj @@ -15,7 +15,7 @@ 567374431B4D46600089DE44 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 567374411B4D46600089DE44 /* Main.storyboard */; }; 567374451B4D46600089DE44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 567374441B4D46600089DE44 /* Assets.xcassets */; }; 567374481B4D46600089DE44 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 567374461B4D46600089DE44 /* LaunchScreen.storyboard */; }; - A1CCD2E34F7DE41D2EC4186E /* Pods_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C57F470F1DCB1126DFB5EB63 /* Pods_iOS.framework */; }; + 905ECD161513DA7089DC0E4F /* Pods_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44319992BE6EA64810E8982A /* Pods_iOS.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -32,6 +32,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 44319992BE6EA64810E8982A /* Pods_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5626974C2110308E0066800A /* PlayersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayersViewController.swift; sourceTree = ""; }; 5626974D2110308E0066800A /* Player.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Player.swift; sourceTree = ""; }; 5626974E2110308E0066800A /* PlayerEditionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayerEditionViewController.swift; sourceTree = ""; }; @@ -44,7 +45,6 @@ 567374491B4D46600089DE44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 62C5B84AA50DF194B4DDDFD0 /* Pods-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS/Pods-iOS.debug.xcconfig"; sourceTree = ""; }; 9573251A237B01D90415D0D7 /* Pods-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS/Pods-iOS.release.xcconfig"; sourceTree = ""; }; - C57F470F1DCB1126DFB5EB63 /* Pods_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -52,7 +52,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A1CCD2E34F7DE41D2EC4186E /* Pods_iOS.framework in Frameworks */, + 905ECD161513DA7089DC0E4F /* Pods_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -97,7 +97,7 @@ 8D9BFC4007F760CC8E01ACC6 /* Frameworks */ = { isa = PBXGroup; children = ( - C57F470F1DCB1126DFB5EB63 /* Pods_iOS.framework */, + 44319992BE6EA64810E8982A /* Pods_iOS.framework */, ); name = Frameworks; sourceTree = ""; @@ -123,7 +123,7 @@ 567374351B4D46600089DE44 /* Frameworks */, 567374361B4D46600089DE44 /* Resources */, 5644E4071C1072CA0090716E /* Embed Frameworks */, - CED3A5EE3229C5F98D69D6AF /* [CP] Embed Pods Frameworks */, + 42992B3BE6585CF939B0D8EF /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -183,40 +183,40 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - C5E9DF0928754FE22F481D3A /* [CP] Check Pods Manifest.lock */ = { + 42992B3BE6585CF939B0D8EF /* [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-iOS/Pods-iOS-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/GRDB.swift/GRDB.framework", ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iOS-checkManifestLockResult.txt", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GRDB.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-iOS/Pods-iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - CED3A5EE3229C5F98D69D6AF /* [CP] Embed Pods Frameworks */ = { + C5E9DF0928754FE22F481D3A /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iOS/Pods-iOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/GRDB.swift/GRDB.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}/GRDB.framework", + "$(DERIVED_FILE_DIR)/Pods-iOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iOS/Pods-iOS-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 */ diff --git a/Tests/CocoaPods/GRDBiOS/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tests/CocoaPods/GRDBiOS-framework/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Tests/CocoaPods/GRDBiOS/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Tests/CocoaPods/GRDBiOS-framework/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Tests/CocoaPods/GRDBiOS/iOS.xcworkspace/contents.xcworkspacedata b/Tests/CocoaPods/GRDBiOS-framework/iOS.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Tests/CocoaPods/GRDBiOS/iOS.xcworkspace/contents.xcworkspacedata rename to Tests/CocoaPods/GRDBiOS-framework/iOS.xcworkspace/contents.xcworkspacedata diff --git a/Tests/CocoaPods/GRDBiOS-static/Podfile b/Tests/CocoaPods/GRDBiOS-static/Podfile new file mode 100644 index 0000000000..c20cb2f16e --- /dev/null +++ b/Tests/CocoaPods/GRDBiOS-static/Podfile @@ -0,0 +1,4 @@ +target 'iOS' +platform :ios, '9.0' +supports_swift_versions '4.2' +pod 'GRDB.swift', :path => '../../..' diff --git a/Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.pbxproj b/Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..a4c9947c50 --- /dev/null +++ b/Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.pbxproj @@ -0,0 +1,401 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 562697512110308F0066800A /* PlayersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5626974C2110308E0066800A /* PlayersViewController.swift */; }; + 562697522110308F0066800A /* Player.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5626974D2110308E0066800A /* Player.swift */; }; + 562697532110308F0066800A /* PlayerEditionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5626974E2110308E0066800A /* PlayerEditionViewController.swift */; }; + 562697542110308F0066800A /* AppDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5626974F2110308E0066800A /* AppDatabase.swift */; }; + 562697552110308F0066800A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 562697502110308E0066800A /* AppDelegate.swift */; }; + 567374431B4D46600089DE44 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 567374411B4D46600089DE44 /* Main.storyboard */; }; + 567374451B4D46600089DE44 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 567374441B4D46600089DE44 /* Assets.xcassets */; }; + 567374481B4D46600089DE44 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 567374461B4D46600089DE44 /* LaunchScreen.storyboard */; }; + D246CFB4904D46E7D400E2CE /* libPods-iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E46153E91609427B4025BC7 /* libPods-iOS.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 5644E4071C1072CA0090716E /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 5626974C2110308E0066800A /* PlayersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayersViewController.swift; sourceTree = ""; }; + 5626974D2110308E0066800A /* Player.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Player.swift; sourceTree = ""; }; + 5626974E2110308E0066800A /* PlayerEditionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PlayerEditionViewController.swift; sourceTree = ""; }; + 5626974F2110308E0066800A /* AppDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDatabase.swift; sourceTree = ""; }; + 562697502110308E0066800A /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 567374381B4D46600089DE44 /* iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 567374421B4D46600089DE44 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 567374441B4D46600089DE44 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 567374471B4D46600089DE44 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 567374491B4D46600089DE44 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 62C5B84AA50DF194B4DDDFD0 /* Pods-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-iOS/Pods-iOS.debug.xcconfig"; sourceTree = ""; }; + 9573251A237B01D90415D0D7 /* Pods-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-iOS/Pods-iOS.release.xcconfig"; sourceTree = ""; }; + 9E46153E91609427B4025BC7 /* libPods-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 567374351B4D46600089DE44 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D246CFB4904D46E7D400E2CE /* libPods-iOS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 5673742F1B4D46600089DE44 = { + isa = PBXGroup; + children = ( + 5673743A1B4D46600089DE44 /* GRDBDemoiOS */, + 567374391B4D46600089DE44 /* Products */, + 9ABB37395508D35C98A292E7 /* Pods */, + 8D9BFC4007F760CC8E01ACC6 /* Frameworks */, + ); + sourceTree = ""; + }; + 567374391B4D46600089DE44 /* Products */ = { + isa = PBXGroup; + children = ( + 567374381B4D46600089DE44 /* iOS.app */, + ); + name = Products; + sourceTree = ""; + }; + 5673743A1B4D46600089DE44 /* GRDBDemoiOS */ = { + isa = PBXGroup; + children = ( + 5626974F2110308E0066800A /* AppDatabase.swift */, + 562697502110308E0066800A /* AppDelegate.swift */, + 5626974D2110308E0066800A /* Player.swift */, + 5626974E2110308E0066800A /* PlayerEditionViewController.swift */, + 5626974C2110308E0066800A /* PlayersViewController.swift */, + 567374441B4D46600089DE44 /* Assets.xcassets */, + 567374491B4D46600089DE44 /* Info.plist */, + 567374461B4D46600089DE44 /* LaunchScreen.storyboard */, + 567374411B4D46600089DE44 /* Main.storyboard */, + ); + name = GRDBDemoiOS; + path = ../../../DemoApps/GRDBDemoiOS/GRDBDemoiOS; + sourceTree = ""; + }; + 8D9BFC4007F760CC8E01ACC6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9E46153E91609427B4025BC7 /* libPods-iOS.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9ABB37395508D35C98A292E7 /* Pods */ = { + isa = PBXGroup; + children = ( + 62C5B84AA50DF194B4DDDFD0 /* Pods-iOS.debug.xcconfig */, + 9573251A237B01D90415D0D7 /* Pods-iOS.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 567374371B4D46600089DE44 /* iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 567374621B4D46600089DE44 /* Build configuration list for PBXNativeTarget "iOS" */; + buildPhases = ( + C5E9DF0928754FE22F481D3A /* [CP] Check Pods Manifest.lock */, + 567374341B4D46600089DE44 /* Sources */, + 567374351B4D46600089DE44 /* Frameworks */, + 567374361B4D46600089DE44 /* Resources */, + 5644E4071C1072CA0090716E /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iOS; + productName = iOS; + productReference = 567374381B4D46600089DE44 /* iOS.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 567374301B4D46600089DE44 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0940; + ORGANIZATIONNAME = "Gwendal Roué"; + TargetAttributes = { + 567374371B4D46600089DE44 = { + CreatedOnToolsVersion = 7.0; + DevelopmentTeam = AMD8W895CT; + LastSwiftMigration = 0940; + }; + }; + }; + buildConfigurationList = 567374331B4D46600089DE44 /* Build configuration list for PBXProject "iOS" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5673742F1B4D46600089DE44; + productRefGroup = 567374391B4D46600089DE44 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 567374371B4D46600089DE44 /* iOS */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 567374361B4D46600089DE44 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 567374481B4D46600089DE44 /* LaunchScreen.storyboard in Resources */, + 567374451B4D46600089DE44 /* Assets.xcassets in Resources */, + 567374431B4D46600089DE44 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + C5E9DF0928754FE22F481D3A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-iOS-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; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 567374341B4D46600089DE44 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 562697522110308F0066800A /* Player.swift in Sources */, + 562697532110308F0066800A /* PlayerEditionViewController.swift in Sources */, + 562697542110308F0066800A /* AppDatabase.swift in Sources */, + 562697552110308F0066800A /* AppDelegate.swift in Sources */, + 562697512110308F0066800A /* PlayersViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 567374411B4D46600089DE44 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 567374421B4D46600089DE44 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 567374461B4D46600089DE44 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 567374471B4D46600089DE44 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 567374601B4D46600089DE44 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 567374611B4D46600089DE44 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 567374631B4D46600089DE44 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 62C5B84AA50DF194B4DDDFD0 /* Pods-iOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + INFOPLIST_FILE = ../../../DemoApps/GRDBDemoiOS/GRDBDemoiOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = GRDB.CarthageTest; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + }; + name = Debug; + }; + 567374641B4D46600089DE44 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9573251A237B01D90415D0D7 /* Pods-iOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + INFOPLIST_FILE = ../../../DemoApps/GRDBDemoiOS/GRDBDemoiOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = GRDB.CarthageTest; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_VERSION = 4.2; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 567374331B4D46600089DE44 /* Build configuration list for PBXProject "iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 567374601B4D46600089DE44 /* Debug */, + 567374611B4D46600089DE44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 567374621B4D46600089DE44 /* Build configuration list for PBXNativeTarget "iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 567374631B4D46600089DE44 /* Debug */, + 567374641B4D46600089DE44 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 567374301B4D46600089DE44 /* Project object */; +} diff --git a/Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..92a9306699 --- /dev/null +++ b/Tests/CocoaPods/GRDBiOS-static/iOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Tests/CocoaPods/GRDBiOS-static/iOS.xcworkspace/contents.xcworkspacedata b/Tests/CocoaPods/GRDBiOS-static/iOS.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..7f03e784a0 --- /dev/null +++ b/Tests/CocoaPods/GRDBiOS-static/iOS.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + From bdf802ab349eab20afdb6b69886de888c816567f Mon Sep 17 00:00:00 2001 From: Chris Ballinger Date: Tue, 30 Jul 2019 16:31:50 -0700 Subject: [PATCH 3/3] Update CHANGELOG and README --- CHANGELOG.md | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3938897cd6..eefa06a364 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,6 +56,7 @@ GRDB adheres to [Semantic Versioning](https://semver.org/), with one expection: - [#560](https://github.com/groue/GRDB.swift/pull/560) by [@bellebethcooper](https://github.com/bellebethcooper): Minor typo fix - [#562](https://github.com/groue/GRDB.swift/pull/562): Fix crash when using more than one DatabaseCollation +- [#570](https://github.com/groue/GRDB.swift/pull/570): Allow Swift static library integration via CocoaPods - [#563](https://github.com/groue/GRDB.swift/pull/563): More tests for eager loading of hasMany associations - [#574](https://github.com/groue/GRDB.swift/pull/574): SwiftLint - [#576](https://github.com/groue/GRDB.swift/pull/576): Expose table name and full-text filtering methods to DerivableRequest diff --git a/README.md b/README.md index 98ceec3fc6..6ac370a9dd 100644 --- a/README.md +++ b/README.md @@ -324,10 +324,10 @@ See [Enabling FTS5 Support](#enabling-fts5-support) for the installation procedu [CocoaPods](http://cocoapods.org/) is a dependency manager for Xcode projects. To use GRDB with CocoaPods (version 1.2 or higher), specify in your `Podfile`: ```ruby -use_frameworks! pod 'GRDB.swift' ``` +GRDB can be installed as a framework, or a static library. ## Swift Package Manager