diff --git a/.travis.yml b/.travis.yml index a36c9ab..84241a4 100755 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,7 @@ language: objective-c -osx_image: xcode11 +osx_image: xcode12 before_install: - gem install cocoapods --quiet - gem install xcpretty --quiet - cd Tests && pod install && cd $TRAVIS_BUILD_DIR script: rake test - diff --git a/CHANGELOG.md b/CHANGELOG.md index a09157b..3b5a423 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log All notable changes to this project will be documented in this file. +### Version 4.2.0: +* Support for Swift Package Manager (#1073) +* Fix Carthage build (#1075) + ### Version 4.1.0: * Fix crash when .Nib is inside a framework bundle. (#1050) * iOS 13 dark mode support. (#1057) @@ -146,6 +150,6 @@ All notable changes to this project will be documented in this file. * Added a convenience method to deselect a `XLFormRowDescriptor`. `-(void)deselectFormRow:(XLFormRowDescriptor *)row;`. [#33](https://github.com/xmartlabs/XLForm/issues/33 "#33"). -### Version 1.0.0 +### Version 1.0.0 * Initial release diff --git a/Examples/Objective-C/Podfile.lock b/Examples/Objective-C/Podfile.lock index a88eab3..0a609a3 100644 --- a/Examples/Objective-C/Podfile.lock +++ b/Examples/Objective-C/Podfile.lock @@ -43,7 +43,7 @@ PODS: - XLData/RemoteDataStore (2.0.0): - XLData/CoreRemote - XLData/DataStore - - XLForm (4.0.1) + - XLForm (4.2.0) DEPENDENCIES: - AFNetworking (~> 2.0) @@ -54,7 +54,7 @@ DEPENDENCIES: - XLForm (from `../../`) SPEC REPOS: - https://github.com/cocoapods/specs.git: + https://github.com/CocoaPods/Specs.git: - AFNetworking - AXRatingView - JVFloatLabeledTextField @@ -78,8 +78,8 @@ SPEC CHECKSUMS: JVFloatLabeledTextField: 58a3a32cfb800e5b224f676987e7c13abf50a14d SHSPhoneComponent: 4cec0653a150ad63cbc52b0c8b29ce2d3c9c26f0 XLData: df725c6179e2e0c80bf56a1ecad9afd169707a6d - XLForm: b8d47a9a00fb6166981cb40de7169d70d611e9be + XLForm: eb04ea4104f26250b70a72a7fa2eed3748dca5cd PODFILE CHECKSUM: 64fbcd03a2c13762b2c18e3938cc8008807937c9 -COCOAPODS: 1.7.1 +COCOAPODS: 1.9.3 diff --git a/Examples/Swift/SwiftExample.xcodeproj/project.pbxproj b/Examples/Swift/SwiftExample.xcodeproj/project.pbxproj index cae74b0..998b703 100644 --- a/Examples/Swift/SwiftExample.xcodeproj/project.pbxproj +++ b/Examples/Swift/SwiftExample.xcodeproj/project.pbxproj @@ -379,7 +379,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 1100; + LastUpgradeCheck = 1200; ORGANIZATIONNAME = Xmartlabs; TargetAttributes = { 2847A69D1AAF2679000A2ABE = { @@ -521,6 +521,7 @@ 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; @@ -577,6 +578,7 @@ 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; diff --git a/README.md b/README.md index 1961aa2..b362776 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,7 @@ A form definition is a `XLFormDescriptor` instance that contains one or more sec row = [XLFormRowDescriptor formRowDescriptorWithTag:@"starts" rowType:XLFormRowDescriptorTypeDateTimeInline title:@"Starts"]; row.value = [NSDate dateWithTimeIntervalSinceNow:60*60*24]; [section addFormRow:row]; - + self.form = form; } ``` @@ -494,7 +494,7 @@ Set `steps` to `@(0)` to disable the steps functionality. ##### Info -Sometimes our apps needs to show data that are not editable. XLForm provides us with `XLFormRowDescriptorTypeInfo` row type to display not editable info. An example of usage would be showing the app version in the settings part of an app. +Sometimes our apps needs to show data that are not editable. XLForm provides us with `XLFormRowDescriptorTypeInfo` row type to display not editable info. An example of usage would be showing the app version in the settings part of an app. ##### Button @@ -504,7 +504,7 @@ Apart from data entry rows, not editable rows and selectors, XLForm has a button Multivalued Sections (Insert, Delete, Reorder rows) ------------------------ -Any `XLFormSectionDescriptor` object can be set up to support row insertion, deletion or reodering. It is possible to enable only one of these modes, a combination or all together. +Any `XLFormSectionDescriptor` object can be set up to support row insertion, deletion or reodering. It is possible to enable only one of these modes, a combination or all together. A multivalued section is just a section that support either of these modes. The most interesting part of multivalued `XLFormSectionDescriptor` is that it supports all the types of rows that were shown on the [*Rows*](#rows "Rows") section as well as custom rows. @@ -668,7 +668,7 @@ row.action.viewControllerClass = [MapViewController class]; // or //row.action.viewControllerNibName = @"MapViewControllerNibName"; -// Set up a NSValueTransformer to convert CLLocation to NSString, it's used to show the select value description (text). +// Set up a NSValueTransformer to convert CLLocation to NSString, it's used to show the select value description (text). row.valueTransformer = [CLLocationValueTrasformer class]; // Set up the default value row.value = [[CLLocation alloc] initWithLatitude:-33 longitude:-56]; @@ -692,7 +692,7 @@ XLForm sets up `rowDescriptor` property using the `XLFormRowDescriptor` instance The developer is responsible for update its views with the `rowDescriptor` value as well as set the selected value to `rowDescriptor` from within the custom selector view controller. -> Note: the properties `viewControllerClass`, `viewControllerNibName` or `viewControllerStoryboardId` are mutually exclusive and are used by `XLFormButtonCell` and `XLFormSelectorCell`. If you create a custom cell then you are responsible for using them. +> Note: the properties `viewControllerClass`, `viewControllerNibName` or `viewControllerStoryboardId` are mutually exclusive and are used by `XLFormButtonCell` and `XLFormSelectorCell`. If you create a custom cell then you are responsible for using them. #### Another example @@ -1100,10 +1100,10 @@ This is how you can set them: #### How to change the height of one cell -If you want to change the height for all cells of one class you should subclass that cell and override the class method `formDescriptorCellHeightForRowDescriptor`. +If you want to change the height for all cells of one class you should subclass that cell and override the class method `formDescriptorCellHeightForRowDescriptor`. If you want to change the height of one individual cell then you can set that height to the `height` property of XLFormRowDescripto like this: ``` -XLFormRowDescriptor* row = ... +XLFormRowDescriptor* row = ... row.height = 55; ``` @@ -1150,7 +1150,7 @@ import XLForm // Swift ## CocoaPods 1. Add the following line in the project's Podfile file: -`pod 'XLForm', '~> 4.1'`. +`pod 'XLForm', '~> 4.2'`. 2. Run the command `pod install` from the Podfile folder directory. XLForm **has no** dependencies over other pods. @@ -1180,7 +1180,7 @@ For further details on how to create and configure the bridging header file visi In your `Cartfile` add: ``` -github "xmartlabs/XLForm" ~> 4.1 +github "xmartlabs/XLForm" ~> 4.2 ``` ## Using git submodules diff --git a/Rakefile b/Rakefile index d920fff..a6b048b 100755 --- a/Rakefile +++ b/Rakefile @@ -17,7 +17,7 @@ task :default => 'test' private def run_tests(scheme, sdk) - sh("xcodebuild -workspace 'Tests/XLForm Tests.xcworkspace' -scheme '#{scheme}' -sdk '#{sdk}' -destination 'OS=13.0,name=iPhone 8' -configuration Release clean test | xcpretty -c ; exit ${PIPESTATUS[0]}") rescue nil + sh("xcodebuild -workspace 'Tests/XLForm Tests.xcworkspace' -scheme '#{scheme}' -sdk '#{sdk}' -destination 'OS=14.0,name=iPhone 11' -configuration Release clean test | xcpretty -c ; exit ${PIPESTATUS[0]}") rescue nil end def tests_failed diff --git a/XLForm.podspec b/XLForm.podspec index aa9fcaf..714fff4 100644 --- a/XLForm.podspec +++ b/XLForm.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'XLForm' - s.version = '4.1.0' + s.version = '4.2.0' s.license = { :type => 'MIT' } s.summary = 'XLForm is the most flexible and powerful iOS library to create dynamic table-view forms.' s.description = <<-DESC