[ios, macos] Make Xcode 7.3 the minimum required version

- Removes nullability shims for Xcode 6.
- Removes MGLTypes.h from files where it was only being used for
  nullability support.
- Accepts that `NS_SWIFT_NAME` is not fully supported by Xcode 7.2 and
  lower.
- Adds documentation about Xcode 7.3 requirement.
This commit is contained in:
Jason Wray
2016-08-17 15:30:39 -04:00
parent 7de7f9dc91
commit 256689a33d
47 changed files with 25 additions and 79 deletions

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -2,8 +2,6 @@
#import <CoreLocation/CoreLocation.h>
#import <TargetConditionals.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,7 +1,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -1,7 +1,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -1,8 +1,6 @@
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,8 +1,6 @@
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,8 +1,6 @@
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -5,8 +5,6 @@
#import "MGLPointAnnotation.h"
#import "MGLShapeCollection.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,7 +1,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -2,8 +2,6 @@
#import <CoreLocation/CoreLocation.h>
#import <CoreGraphics/CGBase.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/** Defines the area spanned by an `MGLCoordinateBounds`. */

View File

@@ -1,7 +1,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -2,8 +2,6 @@
#import <CoreGraphics/CoreGraphics.h>
#import <CoreLocation/CoreLocation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -3,8 +3,6 @@
#import "MGLShape.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,7 +1,6 @@
#import "MGLMultiPoint.h"
#import "MGLGeometry.h"
#import "MGLTypes.h"
#import <mbgl/annotation/annotation.hpp>
#import <vector>

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -4,8 +4,6 @@
#import "MGLAnnotation.h"
#import "MGLGeometry.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -3,8 +3,6 @@
#import "MGLShape.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,7 +1,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -2,8 +2,6 @@
#import "MGLAnnotation.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,9 +1,9 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
#import "MGLStyleLayer.h"
#import "MGLTypes.h"
@class MGLSource;
NS_ASSUME_NONNULL_BEGIN

View File

@@ -3,6 +3,8 @@
#import "MGLStyleAttributeValue_Private.h"
#import "MGLStyleAttributeFunction_Private.h"
#import "MGLTypes.h"
@interface MGLStyleAttribute()
@end

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
@protocol MGLStyleAttributeValue <NSObject>
@optional
@end

View File

@@ -1,6 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
#import "MGLStyleAttributeFunction_Private.h"
#include <array>

View File

@@ -6,7 +6,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -1,5 +1,4 @@
#import "MGLStyleLayer.h"
#import "MGLTypes.h"
#import "MGLStyleLayer_Private.h"
#import "MGLMapView_Private.h"

View File

@@ -1,7 +1,6 @@
// This file is generated.
// Edit platform/darwin/scripts/generate-style-code.js, then run `make style-code-darwin`.
#import "MGLTypes.h"
#import "MGLStyleAttributeValue.h"
#import "MGLBaseStyleLayer.h"

View File

@@ -2,16 +2,6 @@
#pragma once
#if !__has_feature(nullability)
#define NS_ASSUME_NONNULL_BEGIN
#define NS_ASSUME_NONNULL_END
#define nullable
#define nonnull
#define null_resettable
#define _Nullable
#define _Nonnull
#endif
#if TARGET_OS_IPHONE
@class UIColor;
#define MGLColor UIColor

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@interface NSData (MGLAdditions)

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@interface NSString (MGLAdditions)

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@interface NSURL (MGLAdditions)

View File

@@ -6,6 +6,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT
* A new runtime styling API allows you to adjust the style and content of the base map dynamically. All the options available in [Mapbox Studio](https://www.mapbox.com/studio/) are now exposed via MGLStyle and subclasses of MGLStyleLayer and MGLSource. ([#5727](https://github.com/mapbox/mapbox-gl-native/pull/5727))
* The user location annotation is now customizable via the newly added `MGLUserLocationAnnotationView` class. ([#5882](https://github.com/mapbox/mapbox-gl-native/pull/5882))
* Xcode 7.3 or higher is now required to use this SDK. ([#6059](https://github.com/mapbox/mapbox-gl-native/issues/6059))
* Simulator architecture slices are included in the included dSYM file, allowing you to symbolicate crashes that occur in the Simulator. ([#5740](https://github.com/mapbox/mapbox-gl-native/pull/5740))
* As the user zooms in, tiles from lower zoom levels are scaled up until tiles for higher zoom levels are loaded. ([#5143](https://github.com/mapbox/mapbox-gl-native/pull/5143))
* Fixed an issue causing the wrong annotation view to be selected when tapping an annotation view with a center offset applied. ([#5931](https://github.com/mapbox/mapbox-gl-native/pull/5931))

View File

@@ -6,6 +6,8 @@ This document explains how to build the Mapbox iOS SDK from source. It is intend
The Mapbox iOS SDK and iosapp demo application build against the iOS 7.0 SDK. The SDK is intended to run on iOS 7.0 and above, while iosapp is intended to run on iOS 8.0 and above due to the use of a dynamic framework. Both require Xcode on a computer running macOS.
The Mapbox iOS SDK requires Xcode 7.3 or higher.
## Building the SDK
Make sure that you have the [core dependencies](../../INSTALL.md) installed.
@@ -83,6 +85,7 @@ To add an Objective-C class, protocol, category, typedef, enumeration, or global
To add an Objective-C header or implementation file to the iOS SDK:
1. Add the file to the Headers or Compile Sources build phase, as appropriate, of both the “dynamic” and “static” targets. You can either use the Build Phases tab of the project editor or the Target Membership section of the File inspector.
1. Audit new headers for nullability. Typically, you will wrap a header with `NS_ASSUME_NONNULL_BEGIN` and `NS_ASSUME_NONNULL_END`.
1. _(Optional.)_ If it’s a public header, change its visibility from Project to Public and import it in [the iOS SDK’s umbrella header](./src/Mapbox.h).
1. _(Optional.)_ If the file would also be used by the macOS SDK, make sure it’s in [platform/darwin/src/](../darwin/src/), then consult [the companion macOS document](../macos/DEVELOPING.md#adding-a-source-code-file) for further instructions.

View File

@@ -4,12 +4,14 @@ This document explains how to build a development version of Mapbox iOS SDK for
### Requirements
The Mapbox iOS SDK application builds against the iOS 7.0 SDK. It is intended to run on iOS 7.0 and above on the following devices and their simulators:
The Mapbox iOS SDK builds against the iOS 7.0 SDK. It is intended to run on iOS 7.0 and above on the following devices and their simulators:
* iPhone 4S and above (5, 5c, 5s, 6, 6 Plus)
* iPad 2 and above (3, 4, Mini, Air, Mini 2, Air 2)
* iPod touch 5th generation and above
The Mapbox iOS SDK requires Xcode 7.3 or higher.
### Building the SDK
1. [Install core dependencies](../../INSTALL.md).

View File

@@ -10,6 +10,8 @@ For more information, check out the [Mapbox iOS SDK homepage](https://www.mapbox
The Mapbox iOS SDK may be installed as either a dynamic framework or a static framework. (To reduce the download size, the static framework is omitted from some distributions; you may need to download the full package from the [release page](https://github.com/mapbox/mapbox-gl-native/releases/).)
Integrating the Mapbox iOS SDK requires Xcode 7.3 or higher.
{{DYNAMIC}}
### Dynamic framework

View File

@@ -3,10 +3,14 @@
#import "MGLMapboxEvents.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@interface MGLAPIClient : NSObject <NSURLSessionDelegate>
- (void)postEvents:(nonnull NS_ARRAY_OF(MGLMapboxEventAttributes *) *)events completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler;
- (void)postEvent:(nonnull MGLMapboxEventAttributes *)event completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler;
- (void)postEvents:(NS_ARRAY_OF(MGLMapboxEventAttributes *) *)events completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler;
- (void)postEvent:(MGLMapboxEventAttributes *)event completionHandler:(nullable void (^)(NSError * _Nullable error))completionHandler;
- (void)cancelAll;
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,7 +1,5 @@
#import <UIKit/UIKit.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,7 +1,5 @@
#import <UIKit/UIKit.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@protocol MGLAnnotation;

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@protocol MGLCalloutViewDelegate;

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
@class MGLMapView;
NS_ASSUME_NONNULL_BEGIN

View File

@@ -3,8 +3,6 @@
#import "MGLAnnotation.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -2,8 +2,6 @@
#import <CoreLocation/CoreLocation.h>
#import <Mapbox/Mapbox.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@class MGLMapView;

View File

@@ -4,7 +4,9 @@ This document explains how to build the Mapbox macOS SDK from source. It is inte
## Requirements
The Mapbox macOS SDK and the macosapp demo application run on macOS 10.10.0 and above.
The Mapbox macOS SDK and the macosapp demo application run on macOS 10.10.0 or above.
The Mapbox macOS SDK requires Xcode 7.3 or above.
## Building the SDK
@@ -34,6 +36,7 @@ To add an Objective-C class, protocol, category, typedef, enumeration, or global
To add an Objective-C header or implementation file to the macOS SDK:
1. Add the file to the “dynamic” target’s Headers or Compile Sources build phase, as appropriate. You can either use the Build Phases tab of the project editor or the Target Membership section of the File inspector.
1. Audit new headers for nullability. Typically, you will wrap a header with `NS_ASSUME_NONNULL_BEGIN` and `NS_ASSUME_NONNULL_END`.
1. _(Optional.)_ If it’s a public header, change its visibility from Project to Public and import it in [the macOS SDK’s umbrella header](./src/Mapbox.h).
1. _(Optional.)_ If the file would also be used by the iOS SDK, make sure it’s in [platform/darwin/src/](../darwin/src/), then consult [the companion iOS document](../ios/DEVELOPING.md#adding-a-source-code-file) for further instructions.

View File

@@ -4,7 +4,7 @@ This document explains how to build the Mapbox macOS SDK and integrate it into y
### Requirements
The Mapbox macOS SDK requires the macOS 10.10.0 SDK or above.
The Mapbox macOS SDK requires the macOS 10.10.0 SDK (or above) and Xcode 7.3 (or above).
### Building the SDK

View File

@@ -1,7 +1,5 @@
#import <AppKit/AppKit.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**

View File

@@ -1,6 +1,7 @@
#import <Cocoa/Cocoa.h>
#import <CoreLocation/CoreLocation.h>
#import "MGLTypes.h"
#import "MGLGeometry.h"
NS_ASSUME_NONNULL_BEGIN

View File

@@ -1,7 +1,5 @@
#import <Foundation/Foundation.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
@class MGLMapView;

View File

@@ -1,7 +1,5 @@
#import <Cocoa/Cocoa.h>
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/// A subclass of NSOpenGLLayer that creates the environment mbgl needs to