diff --git a/.github/workflows/flutter_ci.yml b/.github/workflows/flutter_ci.yml index ef674f5c5..159543284 100644 --- a/.github/workflows/flutter_ci.yml +++ b/.github/workflows/flutter_ci.yml @@ -33,6 +33,7 @@ jobs: # We might want to add a flutter test step in the future, when there actually are tests for this plugin build-iOS: + environment: IOS_CI_DOWNLOADS_TOKEN name: Build iOS package runs-on: macos-latest @@ -45,8 +46,13 @@ jobs: - run: flutter pub get - name: build iOS package run: | + echo "machine api.mapbox.com + login mapbox + password $SDK_REGISTRY_TOKEN" >> ~/.netrc cd ./example flutter build ios --release --no-codesign + env: + SDK_REGISTRY_TOKEN: ${{ secrets.SDK_REGISTRY_IOS}} build-web: name: "Build web" diff --git a/README.md b/README.md index 45141ec7a..d120cadc3 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ This Flutter plugin allows to show embedded interactive and customizable vector - Install [Flutter](https://flutter.io/get-started/) and validate its installation with `flutter doctor` - Clone the repository with `git clone git@github.com:tobrun/flutter-mapbox-gl.git` -- Add a Mapbox access token to the example app (see next section) +- Add a public Mapbox access token to the example app (see next section) +- Add a secret Mapbox access token for downloading the SDK - Connect a mobile device or start an emulator, simulator or chrome - Locate the id of a the device with `flutter devices` - Run the app with `cd flutter_mapbox/example && flutter packages get && flutter run -d {device_id}` @@ -25,6 +26,17 @@ The **recommended** way to provide your access token is through the `MapboxMap` An alternative method to provide access tokens that was required until the v0.7 release is described in [this wiki article](https://github.com/tobrun/flutter-mapbox-gl/wiki/Mapbox-access-tokens). +### SDK Download token + +You must also [configure a secret access token having the Download: read +scope][https://docs.mapbox.com/ios/maps/guides/install/]. If this configuration +is not present, an error like the following appears during the iOS build. + +``` +[!] Error installing Mapbox-iOS-SDK +curl: (22) The requested URL returned error: 401 Unauthorized +``` + ## Avoid Android UnsatisfiedLinkError Update buildTypes in `android\app\build.gradle` diff --git a/ios/Classes/MapboxMapController.swift b/ios/Classes/MapboxMapController.swift index 989b4ab2b..5713a11f7 100644 --- a/ios/Classes/MapboxMapController.swift +++ b/ios/Classes/MapboxMapController.swift @@ -31,7 +31,7 @@ class MapboxMapController: NSObject, FlutterPlatformView, MGLMapViewDelegate, Ma init(withFrame frame: CGRect, viewIdentifier viewId: Int64, arguments args: Any?, registrar: FlutterPluginRegistrar) { if let args = args as? [String: Any] { - if let token = args["accessToken"] as? NSString{ + if let token = args["accessToken"] as? String { MGLAccountManager.accessToken = token } } diff --git a/ios/mapbox_gl.podspec b/ios/mapbox_gl.podspec index e724bedf4..c4f46d333 100644 --- a/ios/mapbox_gl.podspec +++ b/ios/mapbox_gl.podspec @@ -16,7 +16,7 @@ A new Flutter plugin. s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' s.dependency 'MapboxAnnotationExtension', '~> 0.0.1-beta.1' - s.dependency 'Mapbox-iOS-SDK', '~> 5.6.0' + s.dependency 'Mapbox-iOS-SDK', '~> 6.3.0' s.swift_version = '4.2' s.ios.deployment_target = '9.0' end