Our actual framework targets 14, so this won't have any effect on clients.
This also allows us to quit targeting armv7.
And cut out arm64e as well. Let's keep our release lean.
Diffs=
05e1afaf3 Bump the iOS minimum version to 13 on native builds (#5989)
Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
Adds event bindings for iOS/macOS
**Caveat:** tl;dr We may have to explicitly make app owners open URLs for `OpenUrlEvent`, rather than doing it implicitly
Recently, there was a [request for a specific change](https://github.com/rive-app/rive-ios/pull/267) to mark `RiveRuntime` package as using application-extension-safe in terms of API usge. This allows RiveRuntime to be used in places other than apps in the Apple ecosystem, which they needed, so that Apple doesn't flag their apps negatively in App Store submissions. Because we mark this setting in build settings for our package, this means we can't use a specific API to access `UIApplication`, which is needed to open URLs from our side (i.e. `UIApplication.shared.open(url)`), thus not allowing us to _directly_ open URLs on `OpenUrlEvent`. Couldn't find a way around this unfortunately, so the onus on opening the URL will be on the consumer when they listen for this event.
Diffs=
b47ff1523 feature: Add Rive Event bindings to iOS runtime (#5899)
Co-authored-by: Zachary Plata <plata.zach@gmail.com>
* Build fat libraries
* Configure the bots to install python PLY
* Fix a cp command in the macosx build
* Only publish release builds of PLS
Diffs=
e53ea111b Fix the iOS release (#5967)
Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
Redoing the PR from: https://github.com/rive-app/rive/pull/5683
Wasn't recognizing latest commits for some reason, Github was having some PR status issues yesterday so might've been from that
Diffs=
fe466871e Add text binding ios (#5687)
Co-authored-by: Zachary Plata <plata.zach@gmail.com>
Potential fix for a reported issue on Discord - where `.riveVIew` on a RiveVIewModel is unexpectedly being set to nil on:
- Navigation changes (i.e., using a `NavigationView`)
- View being re-drawn due to state changes in the component
Our current `RiveViewRepresentable` implements `makeUIView` and `dismantleUIView` - the former creating a new `RiveView()` and setting it on `.riveView` in the view model, and the latter setting `.riveView` to `nil` blindly. In the case of NavigationView, if you re-enter a route, what happens in Swift behind the scenes is it makes a new view, then trashes the old view - `makeUIView` then `dismantleUIView`. This means that the new view is set onto `.riveVew` property but then quickly set to `nil` due to `dismantleUIView`.
This change guarantees that when `dismantleUIView` is called, we only set `.riveView = nil` **iff** the view Swift wants to dismantle is the same view as the `.riveView` on the view model.
Diffs=
05f43724b patch: only set riveView to nil on a viewmodel if the view Swift wants to dismantle is the same as the riveView property on viewmodel (#5295)
draft because i need to get a todo list together.
Adds macos as a target for our ios runtime! Also adds a macos target for our example (which is a different app completely, very minimalistic right now).
<img width="331" alt="CleanShot 2023-05-17 at 20 32 45@2x" src="https://github.com/rive-app/rive/assets/1216025/7a6cadce-9763-41a3-b1a0-6d067dfc3eca">
macos, macos rosetta, macos (designed for ipad), and ios all co existing in peace, from the same runtime project

todo:
- [x] update build scripts to build supporting macos (gotta do this)
- [x] run formatter
- [x] test out builds in forked version of ios? (gotta do this)
- [ ] one more stab at catalyst? (i think we can try that later...)
- [ ] do we need a more comprehensive example setup for macos (I think we can do this later & try to pull zach's examples in)
- [ ] I think we should restructure the ios project, but i think we can do that after this as well (i just think the folder structure/project structure can do with some work, now that we add macos (and should make room for tvos as well)
- [x] probably got tests to fix
- [ ] there's probably a bunch of looking at errors in the debugger and figuring those out, but i would hope that we can deploy with some warnings here too.
catalyst problem:
we get this error:
and the problem is basically that we can target a specific library for macos, but we need one for macos and one for macos catalyst. they share the same architecture, so i dont think we can lipo them into one file...
we could change the compiled binaries before creating the frameworks I guess though? .. maybe something to try..
`/Users/maxwelltalbot/development/rive/rive/packages/runtime_ios/dependencies/debug/librive_skia_renderer_macos.a(cg_factory.o), building for Mac Catalyst, but linking in object file built for macOS, file '/Users/maxwelltalbot/development/rive/rive/packages/runtime_ios/dependencies/debug/librive_skia_renderer_macos.a' for architecture arm64` basically
Diffs=
a9f8a1c5d Macos take2 (#5258)
Set of ios changes:
- Fixes a couple of memory leaks
- Implements ref counting for our graphics context, so we can ditch it if noone's using it
- few leftover notes about things i've not quite "solved" we still keep a hold of too much url data, but i think i want to get this change in. its been too long
Diffs=
1ddbb679a Ios memory shared context (#5169)
Community contribution: https://github.com/rive-app/rive-ios/pull/246
Tested their crash example on the example app in this runtime and their changes seem to fix the crash repro they provided in the above PR
Diffs=
2701dee55 fix riveModel force-unwrap crash (#5089)
In profiling Joel we saw that RawPath::reset was causing a lot of re-allocation. We realized the intention of reset in most of Rive code is to actually call rewind, so we renamed it and made other adjustments (like calling RawPath::rewind).
Diffs=
f4046e60b Rename reset to rewind. (#5004)
couple more fun patches to cope when animation state objects do not have an animation.
Diffs=
272ca3f02 apply missing animation fix to macos and android (#4847)
Also update the auto formatter to run on *.m and *.mm files, and effectively ban breaking on return types entirely, as I think this is ugly.
Diffs=
c7d125c7d Update ObjC formatting to look more similar to the C++
* Calculate the accumulated frame rate over the entire update interval.
* Update FPS when we actually draw, instead of when we advance the animation.
Diffs=
1ec31ffba Make the ios FPSCounterView more stable
Added a convenience method in RiveViewModel for checking the current file's artboard names
Diffs=
9b4f3aea3 Added a convenience method in RiveViewModel for checking the current file's artboard names
Reorganized the project to put it inline with the cleaner organization of the mac runtime
Diffs=
3468941d0 Reorganized the project to put it inline with the cleaner organization of the mac runtime