All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Update Android shell tarball for SDK 46 to remove deprecated expo-analytics-segment dependency.
- Add iOS and Android shell tarballs for SDK 46.
- Update iOS shell tarball for SDK 43, 44, 45 for expo-notifications crash fix.
- Update Android shell tarball for SDK 45.
- Update Android SDK 45 shell tarball to fix the notification trampoline issues for Android 12+.
- Update Android shell tarballs for SDK 44 and 43.
- Update Android shell tarball for SDK 45.
- Add iOS and Android shell tarballs for SDK 45.
- Swap out Cloudfront CDN for
classic-assets.eascdn.net
. #375 - Disable bitcode for iOS builds.
- Update ios sdk 44 shell tarball with orientation lock fix
- Update Android shell tarball for SDK 44.
- Update iOS and Android tarballs for SDK 44 RC. #369.
- Update iOS and Android tarballs for SDK 44 beta.
- Add detection for Expo modules using
expo-module.config.json
, the successor tounimodule.json
. #368. - Redirect google bintray url to localhost. #361
- Update iOS SDK 43 tarball with expo-updates fix for #14967
- Update Android SDK 43 tarball with expo-updates fix for #15112
- Update iOS and Android SDK 43 tarballs with expo-updates fixes for #14930
- Update Android SDK 43 shell app with proguard fix
- Add iOS and Android tarballs for SDK 43
- Add iOS and Android beta tarballs for SDK 43
- Bump xdl to fix Android shell app for SDK 43
- add
ACCESS_MEDIA_LOCATION
to blacklist for android permissions - disable automatic versioning in Xcode 13
- Fix s3 logger stream close crash.
- Update Android tarballs SDK 42, 41, 40, and 39 to include location workaround.
- Update Android tarball to include a local assets fix on SDK 42.
- Update iOS and Android tarballs for SDK 42.
- Update Android tarball for SDK 42.
- Update iOS and Android beta tarballs for SDK 42.
- Add iOS and Android beta tarballs for SDK 42.
- Update
sharp
package, fixes support for M1 macs.
- Update Android SDK41 tarball.
- Update iOS SDK41 tarball.
- Update Android SDK41 tarball.
- Update iOS SDK41 tarball.
- Update Android SDK41 tarball.
- Revert iOS client tarball for SDK 41, use the SDK 40 tarball. No longer supporting this feature in SDK 41+.
- Update Android SDK 41 tarball.
- Update iOS client tarball for SDK 41.
- Update SDK 41 tarball for iOS and Android.
- Update SDK 41 beta tarball for Android.
- Update SDK 41 beta tarball for iOS.
- Add SDK 41 beta tarballs.
- Bump @expo/xdl to 59.1.0.
- Remove Go suffix from android app name
- Update tarballs for SDK 40 patch release (3e345dd)
- Updated SDK 40 Android tarball to fix
expo-location
background permissions on Android <9.
- Updated SDK 40 iOS tarball to fix
expo-notifications
not emitting initial notification response.
- Verify jq installation before proceeding with release (#281).
- Fixed the iOS build when running offline and user lacks elevated permissions.
- Updated SDK 40 Android tarball to fix
expo-notifications
installation identifier changing as a bug.
- Update SDK 40 iOS and Android tarballs for release
- Add SDK 40 tarballs in preparation for SDK 40 beta
- Fixed the iOS build using Xcode 12.1 by runnig
xcrun simctl list
before the build phase. - Rebuild iOS tarballs (SDK 36, 37, 38, 39, Ad-Hoc Client) with Xcode 12.1 containing iOS 14 image fix.
- Rebuild iOS tarballs (SDK 36, 37, 38, 39, Ad-Hoc Client) with Xcode 12.1.
- Updated xdl to 58.0.20 to fix an issue with updates.checkAutomatically not being applied properly to SDK 39 Android apps.
- Fix issues with Reanimated v2 in Android SDK 39 tarball.
- Fix issue with updates in self-hosted Android apps (#10746) in the SDK 39 tarball
- Always add expo-notifications for SDK >= 39 projects with android.enableDangerousExperimentalLeanBuilds enabled.
- Fixed an issue with notifications (expo/expo#10562) in the Android SDK 39 tarball.
- Update @expo/xdl to fix regression in SDK <= 39 splash
- Updated SDK 39 Android tarball.
- Updated SDK 39 iOS tarball.
- Updated iOS client tarball.
- Update @expo/config and @expo/xdl. Temporarily bring in type definitions for color-string and xcode.
- Fix building apps using SDK 39 for Android.
- Added iOS and Android shell apps for SDK 39.
- Dropped support for SDK 35.
- Added gradle 6.2 to
turtle-android-base
- Added
ANDROID_NDK_HOME
inturtle-android-base
- Upgraded XDL so it processes root
build.gradle
of Android shell apps too
- Updated iOS shell app for SDK 38 with fixed integer tagging in expo-gl for iOS 14. (#245)
- Updated Android shell app for SDK 38 with
targetSdkVersion
bumped to 29. (#244)
--gradle-args
option forturtle build:android
which makes it possible to specify custom Gradle arguments.
- Gradle Wrapper doesn't print when dots when the appropriate version of Gradle is being downloaded.
- Added
--allow-non-https-public-url
to allow bypass of protocol validation on--public-url
. - Added support for dynamic configs (
app.config.ts
,app.config.js
).
- Added iOS shell app for Expo SDK38.
- Added Android shell app for SDK 38.
- Dropped support for SDK 34.
- Configure Turtle to use the Redis CA certificate.
- Fix announcing supported SDK versions.
- Updated
@expo/xdl
to 57.9.13 (added *.bak files clean-up when building .ipa).
- Update iOS custom client shell app with various fixes.
- Update SDK 37 iOS shell app with various fixes.
- support for "android.enableDangerousExperimentalLeanBuilds" in app.json.
- Updated
@expo/xdl
to 57.8.30 (scoped the build command so it only builds the:app
Android sub-project and not all the sub-projects available, PR).
- Updated
@expo/xdl
to 57.8.29 (removed call tocheck-dynamic-macros-android.sh
, PR).
- Turtle no longer installs all dependencies of shell apps projects — only the production dependencies are installed now.
- Updated
@expo/xdl
to 57.8.25 (fixed unintuitivegoogle-services.json
handling for SDK37+, PR).
- Updated @expo/xdl to 57.8.17 (fixed downloading assets smaller than 10 bytes).
- Made @expo/config error more meaningful.
- Determining SDK version for Expo apps using SDK >=37.
- A fix for Android SDK 37 -
check-dynamic-macros-android.sh
doesn't usejq
anymore.
- Updated iOS shell app for SDK 37 to remove unnecessary unimodules.
- Added iOS shell app for SDK 37.
- Added Android shell app for SDK 37.
- Updated iOS client shell app to support SDK 37.
- Replace
/
with__
in the artifact filename to fix a strange bug with selecting APK file in Android Studio. - Print currently using Java version if it's not 8.
- Dropped support for SDK 33.
- Added validation for
--public-url
.
- Changed the way of installing NDK - it's installed with
sdkmanager
now. - Upgraded NDK to 17.2.4988734.
- Upgraded Node.js version to 12.16.1.
- A bug where the
platform
field in logs wasn't set correctly when using a shortcut command. - Removed all remaining instances of
UIWebView
in iOS app builds.
- Dropped support for Node.js versions older than 10.
- Dropped support for building Expo SDK 31 and 32 apps.
- Fixed Notifications.getDevicePushTokenAsync() erroring occasionally on iOS SDK 36.
- Fixed
react-native-maps
native module not being properly initialized (expo/expo#6844) - Fixed Android standalone apps crashing on startup (expo/expo#6825)
- Bumped
traveling-fastlane
to 1.11.4 to update CA certs
- Fixed issue with missing request handler for assets-library urls.
- Support for building iOS apps with a wildcard provisioning profile.
- Removed private API usage from iOS SDK 36 tarball
- Fixed Android App Bundle builds
- Fixed issue with Root View Background Color and AppLoading on Android SDK 36 builds
- Fixed Android shell app for SDK 36
- Added iOS and Android shell apps for SDK 36
- Updated iOS client shell app to support SDK 36
- A bug that caused
expo.owner
value not to be used if defined.
- Bumped
traveling-fastlane
to 1.11.0
- Add
shellAppSdkVersion
param toIOSShellAppBuilder
so entitlement keys get properly added in (expo#162)
- Support for customizing Facebook SDK behavior at buildtime (autoinitialization, logging app events, logging Advertiser ID) (expo/expo#5924)
- Updated Android shell app for SDK 35 to fix
Linking.openUrl
not opening app if it's already foregrounded (expo/expo#6058) - Enforce Java 8 when using turtle-cli.
- Updated Android shell app for SDK 35 to fix occasional crash in background due to GCM registration service (expo/expo#4207)
- Updated iOS shell app for SDK 35 to fix crash when calling
WebBrowser.dismissBrowser
on iOS 13 (expo/expo#5742)
- Updated Android shell app for SDK 35 to fix occasional crash on launch (expo/expo#5917)
- Updated iOS client shell app for SDK 35 to fix it from crashing on startup due to having an incomplete GoogleService-Info.plist file.
- Updated Android shell app for SDK 35 to fix crash on Android <=7 due to battery module
- Updated iOS shell apps for SDK 33 and 34 to fix iOS 13 issues with fishhook, notification tokens, and ShareSheet
- Updated iOS shell app for SDK 35 with a minor fix
- Support for SDK 35 iOS and Android builds.
- Support for SDK 27-30 iOS and Android builds.
- Updated SDK34 Android shell app with
expo-branch
fixes.
- Support for GoogleService-Info.plist (>=34.0.0).
- Updated iOS client shell app with the latest fixes (up to 2.12.3).
- Enabled back optional modules support, but only for specific unimodules.
- Updated SDK34 Android shell app with the latest fixes (up to 2.12.2).
- Updated SDK34 iOS shell app with the latest fixes (up to 2.12.3).
- Fully disabled optional modules on Android for now.
- Updated iOS shell apps for SDK 33 and 34 to fix scoped permissions issue.
- Updated Android shell app for SDK 34 to work after disabling optional modules.
release-it
version to12.3.4
.
- Android, iOS standalone shell apps and iOS Expo client shell app for SDK34.
- Xcode license check for iOS builds.
- Setting
Constants.nativeAppVersion
for Android standalone builds (actually fixed in expo/expo-cli#878). - Passing
expo.android.config
object fromapp.json
to the Android builder. - Fixed crash on launch for iOS standalone apps on iOS 13 (all SDK versions).
- Fixed occasional issue on iOS (SDK 33) where the JS bundle cannot be found ("No cache exists for this resource: shell-app.bundle") and a reload would be required.
- Android debug builds.
- iOS simulator builds.
- User authentication.
- LocalAuthentication module on iOS (fixes expo/expo#663).
- Adhoc Builds: use provisioningProfileId if specified.
- Registering supported SDK versions in Redis.
- Support for 64 bit builds in SDK33.
- Added support for Android build modes: debug or release.
- Upgrading the shell app for a given SDK version when the previous version is already downloaded (bug in
turtle-cli
). - Updated Android shell app for SDK33 to include
[email protected]
which fixes crashes on Android 9.0 when showing some Lottie animations. - Schema for
buildModes
. - Updated @expo/xdl to 55.0.7 (fixed reading from binary plist).
- Upgraded
sharp
from0.21.3
to0.22.1
. gulp-cli
is no longer required to build an app withturtle-cli
.
- Running Android Turtle process with
supervisor
(pod is restarted if there were 5 failures in the last 10 minutes).
turtle-cli
is now fetching the app manifest before running the build.
- Updated Android shell app for SDK33 to remove
expo-face-detector
andexpo-payments-stripe
from standalone builds. - Updated Android shell app for SDK33 to get rid of
node_modules
fortools-public
. - From now on,
turtle-cli
installs dependencies fortools-public
in shell apps for SDK versions < 33.
- Android builds with turtle-cli by installing all unmodules if
dependencies
is empty.
- Add expo dependencies when resolving unimodules.
- Support for Android tarballs without
universe-package.json
.
- Turtle CLI logo to the project (created by @zularizal)!
- Shell apps for SDK 33.
- Support for Android App Bundles (App bundles are built by default, use
-t apk
to build apk).
- Updated Android shell app for SDK 32 to fix AppAuth issue (expo/expo#4115) and to fix a newer than expected JSC version.
- Default value for build timeout to 15 minutes.
- Added filtering of logs (strips out download progress) when downloading SDK tools.
xdl
->@expo/xdl
, updated@expo/xdl
.
- Generating Android keystore in turtle when one is not passed to turtle-cli (expo#65).
- Upload logs to s3 if build has been canceled or timed out.
- Unhandled exception on asset download (xdl).
- Support for Android tarballs without
universe-package.json
.
- Upgraded
@expo/traveling-fastlane-darwin
to 1.9.4 (fixes issues with generating provisioning profiles for ad-hoc builds).
- Support for
CLIENT_LOGGER_LEVEL
env variable.
- Resolving
fastlane
version whenLC_ALL
is not set.
- Support for custom Android builds.
- Refactored logger.
platform
log field wrongly set toios
for Android builds (when usingturtle-cli
).- Brought back
jobID
andexperienceName
fields to Android logs.
- Checking fastlane version before running build (turtle-cli).
- Updated iOS shell app for SDK 32 to fix AppAuth issue.
- Babel replaced by ttypescript.
- Updated xdl to 53.5.3 and @expo/spawn-async to 1.4.2, so that error stack traces should be more informative now.
- Brought back
jobID
andexperienceName
fields to GCloud logs.
buidAndroidTarballLocally.sh
script (it has been moved to expo repository - expo/expo#4022).
- Removed Branch module from Android shell apps for all SDK versions.
- Turtle smoke tests are now being executed on CircleCI from the context of this repository.
- Updated iOS shell app for SDK 32 (fixes this loading issue for slow connections).
- Minor infra changes (doesn't affect users).
- Error logs format - error objects are now passed in an object being passed as the first argument to logger function.
- Sending logs to loggly.
--config
parameter for turtle-cli commands, which allows to specify a custom path to app.json file
- Updated iOS shell app for SDK 32 (fixes this notifications issue).
- Android SDK version support validation.
- iOS Enterprise builds don't compile bitcode now.
- Google Cloud logger (as a bunyan stream).
- Android builder passes the manifest from a build job message if it's available.
- Builder for iOS client apps.
- Registering Turtle version in Redis.
- Update Android shell app for SDK 32 to fix update and back button issues.
- Update iOS shell app for SDK 32 (fixes bare notifications issue).
- Update Android shell app for SDK 32 to fix bundled assets issue.
- Update iOS shell app for SDK 30, 31 and 32 (built with xcode 10.1).
- Sending build duration in AWS SQS messages (of
FINISHED
andERRORED
types).
- Update iOS shell app for SDK32 to
expo/expo#0847c10
, i.e. v2.10.3 with fixed WebView navigation scheme and upgraded Facebook SDK.
- Building Android standalone apps (not accepted license issue) - updated Android build tools (
build-tools;28.0.3
,platforms;android-28
).
- The link (in README) to the repository containing
turtle-cli
usage example. - Contributing guide.
- Code of Conduct.
eslint
- Fix all
tslint
errors.
- Update Android shell app for SDK32 that includes
[email protected]
.
- Turtle version is added to the
onFinish
andonError
build messages.
- A version property value being sent to the queue. It's now the version number
from
package.json
instead ofnew
/old
indicator.
--push-p12-path
parameter forturtle build:ios
command, a Push Notifications Certificate is no longer required to perform a successful iOS standalone app build.
- Update iOS shell app for SDK32.
- Update Android shell app for SDK32.