| #
ef901781 |
| 11-Sep-2023 |
Douglas Lowder <[email protected]> |
Apple TV support 1: podspec and code changes for commonly used modules (#24329)
# Why
First of a series of PRs to add Apple TV support for many (but not all)
Expo SDK modules.
This PR makes A
Apple TV support 1: podspec and code changes for commonly used modules (#24329)
# Why
First of a series of PRs to add Apple TV support for many (but not all)
Expo SDK modules.
This PR makes Apple TV able to compile for apps using
`[email protected]` and ONLY the following modules:
- expo
- expo-application
- expo-constants
- expo-eas-client
- expo-file-system
- expo-font
- expo-json-utils
- expo-keep-awake
- expo-manifests
- expo-modules-core
- expo-splash-screen
- expo-structured-headers
- expo-updates-interface
- expo-updates
# How
- Add tvOS to podspecs
- Native code changes wrapped in `#if TARGET_OS_TV` (for Objective C) or
`#if os(tvOS)` (for Swift)
- Import source for the `ASN1Decoder` Swift framework used by
`expo-updates`, as the public podspec for that framework does not yet
support tvOS
# Test Plan
- Manual testing with a template still in development
- Existing CI for iOS should pass (nothing should be broken)
# Checklist
<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->
- [x] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
show more ...
|
| #
c88b85cf |
| 14-Sep-2022 |
Tomasz Sapeta <[email protected]> |
[ios] Bump deployment target to 13.0 (#18873)
|
| #
9886c0aa |
| 28-Sep-2021 |
Kudo Chien <[email protected]> |
[expo-modules][ios] Fix errors from use_frameworks in Podfile (#14523)
# Why
close [ENG-1772](https://linear.app/expo/issue/ENG-1772/regression-test-for-use-frameworks-in-podfile)
fixes #13920
[expo-modules][ios] Fix errors from use_frameworks in Podfile (#14523)
# Why
close [ENG-1772](https://linear.app/expo/issue/ENG-1772/regression-test-for-use-frameworks-in-podfile)
fixes #13920
# How
- error: `The 'App' target has transitive dependencies that include static binaries`
declare `static_framework = true` in podspec. since all expo-modules ship in either source code or static xcframework, it should make sense to add `static_framework` declaration and solve this kind of errors.
- error: generated swift runtime header not found
fix like this because in framework mode, generated headers are inside module.
```diff
+#if __has_include(<ExpoModulesCore/ExpoModulesCore-Swift.h>)
+// For cocoapods framework, the generated swift header will be inside ExpoModulesCore module
+#import <ExpoModulesCore/ExpoModulesCore-Swift.h>
+#else
#import "ExpoModulesCore-Swift.h"
+#endif
```
- error: [gl] `<cassert>` import not found
this is supported in c++, thus rename to objc++ .mm files.
- error: [gl] `BLOCK_SAFE_RUN` inconsistent left/right operands types
this is side effect after renaming expo-gl files as .mm. fixed by explicitly cast as void.
- error: [core] undefined symbols in linking time, e.g. `EXRegisterModule`
this is side effect after renaming expo-gl files as .mm. fixed by export symbols by `extern "C"`, otherwise c++ will have different name mangling between c.
- rename `expo-image` pod to `EXImage`
- error: `Include of non-modular header inside framework module`
adding `DEFINES_MODULES` for cocoapods to create modulemap file. for external dependency like firebase, ignore the error by adding `CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES`
- error: expo-constant's app.config and expo-updates' app.manifest not found
in use_frameworks mode, the path is the same with non framework mode. `/$UNLOCALIZED_RESOURCES_FOLDER_PATH` is unnecessary.
- error: [barcode-scanner] ZXingObjC podspec GCC_PREPROCESSOR_DEFINITIONS does not export to EXBarCodeScanner and cause headers not found
add these defines explicitly
- [templates] add missing `react_native_post_install` from react-native 0.64 upgrade
- error: `Cycle inside FBReactNativeSpec; building could produce unreliable results. This usually can be resolved by moving the shell script phase '[CP-User] Generate Specs' so that it runs before the build phase that depends on its outputs.`
workaround by moving `FBReactNativeSpec` build phase script order.
Co-authored-by: Tomasz Sapeta <[email protected]>
# Test Plan
## prebuilt xcframework test
```sh
expo init -t /path/to/expo/templates/expo-template-bare-minimum sdk43
cd sdk43
# add `s.static_framework = true` for each `node_modules/expo-*/ios/*.podspec`
cd ios
# add `use_frameworks!` to Podfile
rm -rf Pods && pod install
cd ..
expo run:ios
expo run:ios --configuration Release
```
## regression for all expo-modules
```sh
expo init -t /path/to/expo/templates/expo-template-bare-minimum sdk43
cd sdk43
yarn add file:/path/to/expo/packages/expo-* # add all expo-modules one-by-one
# test non framework mode
expo run:ios
expo run:ios --configuration Release
# test framework mode
cd ios
# add `use_frameworks!` to Podfile
rm -rf Pods && pod install
cd ..
expo run:ios
expo run:ios --configuration Release
```
show more ...
|
| #
71ebd28e |
| 13-Sep-2021 |
Charlie Cruzan <[email protected]> |
[ios] Bump deployment target to 12.0 (#14383)
* drop ios 11
* update bare-sandbox
* forgot some
* add PR link to changelogs
* Update packages/expo-cellular/CHANGELOG.md
Co-authored-by
[ios] Bump deployment target to 12.0 (#14383)
* drop ios 11
* update bare-sandbox
* forgot some
* add PR link to changelogs
* Update packages/expo-cellular/CHANGELOG.md
Co-authored-by: Expo CI <[email protected]>
* et pod-install after rebase
Co-authored-by: Expo CI <[email protected]>
show more ...
|
| #
efd75dec |
| 16-Aug-2021 |
Tomasz Sapeta <[email protected]> |
[ios] Migrate all remaining native code
|
| #
089a3d82 |
| 15-Dec-2020 |
Tomasz Sapeta <[email protected]> |
[ios] Bump deployment target to iOS 11.0 (#11344)
|
| #
52a1f6d0 |
| 04-Dec-2020 |
Tomasz Sapeta <[email protected]> |
[ios] Require CocoaPods >=1.10.0 to use prebuilt libraries Before v1.10.0 binaries built for arm64 simulator were treated as the ones for the device and so the build fails at linking.
|
| #
6e1dd0e8 |
| 02-Dec-2020 |
Tomasz Sapeta <[email protected]> |
[ios] Make podspecs compatible with prebuilds (#11183)
|
| #
cf45390b |
| 08-Aug-2019 |
Robert Luo <[email protected]> |
[expo-application] create expo-application unimodule (#5008)
* create expo-application unimodule
Co-authored-by: Robert Luo <[email protected]>
Co-authored-by: Vivian Zhu <[email protected]>
[expo-application] create expo-application unimodule (#5008)
* create expo-application unimodule
Co-authored-by: Robert Luo <[email protected]>
Co-authored-by: Vivian Zhu <[email protected]>
* [docs] update docs description
* [web] handle web constants and update format
* [ios] cleanup inline methods and handle error with NSError
* [docs] add error codes
* [ios] resolve conditional logic and resolve promise twice
* [docs] update getFirstInstallTimeAsync changes description
* [web] add nullable constants to web
* [android] add error codes
* took out endConnection and things work
* add error codes
* [android] close install referral connection
we didn't close the connection before, which could be dangerous/cause memory leaks. checked and this works
* [docs/android] update error codes
* Add ERR_APPLICATION_PACKAGE_NAME_NOT_FOUND code
* Fix soem things in docs
* [ios] add conditionals to avoid double invocation of promise
* [docs] add note about types for nativeBuildVersion
it seems that in the native code, for iOS the nativeBuildVersion in Info.plist is a string, while android.versionCode is an int
* [docs] update installation guide in README and docs
* rename getFirstInstallTimeAsync to getInstallationTimeAsync and bundleId to applicationId
* [android] change constant and method names
* bundleId->applicationId
* getFirstInstallTimeAsync() -> getInstallationTimeAsync()
* [android/docs] add debugger log statements
* update docs and code format in js
* [ios] update pods
* [android/docs] add promise rejection for hanging promise
* optimize imports
* add promise rejection + error code
* remove Log.d
* [docs] update docs format
* [web] update getFirstInstallationTime to return null on web
* [ios] reinstall pods
ran pod install to include `expo-application`
* [ios] update c-style code format and remove checks
* cast nativeBuildVersion to be string
* Update build.gradle
Update compilesdk version to 28
* Update ApplicationModule.java
* add more context on general case error
* add current method to get version code for api version 28+
* Update application.md
* Update EXApplication.m
* Update application.md
show more ...
|