gameTitle.layer.shadowRadius = 12
gameTitle.backgroundColor = .clear
playButton.setTitle("Play", for: UIControl.State())
playButton.translatesAutoresizingMaskIntoConstraints = false
playButton.adjustsImageWhenHighlighted = false
playButton.adjustsImageWhenDisabled = false
playButton.layer.masksToBounds = true
playButton.backgroundColor = UIColor.gray.withAlphaComponent(0.4)
playButton.layer.shadowColor = UIColor.black.cgColor
playButton.layer.shadowRadius = 12
playButton.layer.shadowOpacity = 0.4
viewStack.addArrangedSubview(SpacerView.spacer())
viewStack.addArrangedSubview(gameTitle)
viewStack.addArrangedSubview(SpacerView.spacer())
viewStack.addArrangedSubview(playButton)
viewStack.addArrangedSubview(SpacerView.spacer())
viewStack.axis = .vertical
viewStack.alignment = .center
viewStack.distribution = .fillEqually
view.addSubview(viewStack)
//view.addSubview(playButton)
setupConstraints()
}
func setupConstraints() {
NSLayoutConstraint.activate([
viewStack.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
viewStack.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
viewStack.topAnchor.constraint(equalTo: view.topAnchor, constant: 20),
viewStack.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -20)
])
NSLayoutConstraint.activate([
playButton.widthAnchor.constraint(equalTo: viewStack.widthAnchor, multiplier: 0.25, constant: 0),
playButton.heightAnchor.constraint(equalTo: playButton.widthAnchor, multiplier: 1, constant: 0)
])```
#development
1 messages · Page 242 of 1
.activate is uikitcompatkit but it works identically
import UIKit
// MARK: - Internal Anchor Backport (safe names)
class JAnchor {
weak var view: UIView?
let attribute: NSLayoutConstraint.Attribute
init(view: UIView, attribute: NSLayoutConstraint.Attribute) {
self.view = view
self.attribute = attribute
}
func constraint(equalTo other: JAnchor, multiplier: CGFloat = 1.0, constant: CGFloat = 0) -> NSLayoutConstraint {
return NSLayoutConstraint(
item: view!,
attribute: attribute,
relatedBy: .equal,
toItem: other.view,
attribute: other.attribute,
multiplier: multiplier,
constant: constant
)
}
func constraint(equalToConstant constant: CGFloat) -> NSLayoutConstraint {
return NSLayoutConstraint(
item: view!,
attribute: attribute,
relatedBy: .equal,
toItem: nil,
attribute: .notAnAttribute,
multiplier: 1,
constant: constant
)
}
}
// MARK: - UIView extension using safe internal anchors
extension UIView {
var jLeadingAnchor: JAnchor { return JAnchor(view: self, attribute: .leading) }
var jTrailingAnchor: JAnchor { return JAnchor(view: self, attribute: .trailing) }
var jTopAnchor: JAnchor { return JAnchor(view: self, attribute: .top) }
var jBottomAnchor: JAnchor { return JAnchor(view: self, attribute: .bottom) }
var jWidthAnchor: JAnchor { return JAnchor(view: self, attribute: .width) }
var jHeightAnchor: JAnchor { return JAnchor(view: self, attribute: .height) }
var jCenterXAnchor: JAnchor { return JAnchor(view: self, attribute: .centerX) }
var jCenterYAnchor: JAnchor { return JAnchor(view: self, attribute: .centerY) }
}```
funni stuff
cheeky type aliasing
extension UIView {
var leadingAnchor: JAnchor { return jLeadingAnchor }
var trailingAnchor: JAnchor { return jTrailingAnchor }
var topAnchor: JAnchor { return jTopAnchor }
var bottomAnchor: JAnchor { return jBottomAnchor }
var widthAnchor: JAnchor { return jWidthAnchor }
var heightAnchor: JAnchor { return jHeightAnchor }
var centerXAnchor: JAnchor { return jCenterXAnchor }
var centerYAnchor: JAnchor { return jCenterYAnchor }
}```
to avoid the compiler whining at me
lol at the SpacerView.spacer()
I can tell you're primarily a SwiftUI dev haha (not that that's a bad thing, just seemed funny)
omg i hate that uikit doesnt haveit
its so fucking shit
why is there no spacer
i had to have it
super simple shit tho
because it goes against UIKit principles, you should be using your constraints in a correct way where you don't need spacers
//
// SpacerView.swift
// Colour Snap Legacy
//
// Created by JWI on 3/09/2025.
// Copyright © 2025 JWI. All rights reserved.
//
import UIKit
class SpacerView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.clear
self.setContentHuggingPriority(UILayoutPriority.defaultLow, for: .horizontal)
self.setContentHuggingPriority(UILayoutPriority.defaultLow, for: .vertical)
self.setContentCompressionResistancePriority(UILayoutPriority.defaultLow, for: .horizontal)
self.setContentCompressionResistancePriority(UILayoutPriority.defaultLow, for: .vertical)
}
override var intrinsicContentSize : CGSize {
return CGSize(width: 0, height: 0)
}
convenience init() {
self.init(frame: CGRect.zero)
}
class func spacer() -> SpacerView {
return SpacerView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
as in hardcoding ui?
i mean realistically i feel like uikit was designed with storyboard in mind
it very much feels like storyboard but code
by which it inherits a lot of storyboards flaws
in SwiftUI they're very useful since they just get baked into the view because of the underlying SwiftUI core
however in UIKit all of those spacers are themselves views, which causes that whole concept to be significantly less performant in UIKit
i mean i could but then you have like half your view controller be constraints
true but its not been too bad
There's centerXAnchor, centerYAnchor, etc, so no you don't have to hardcode, just be mindful of your layout
Realistically, that's what ends up happening a lot of the times - as amusing as that may be
but then its always relative to something on the view rather than adapting to other elements in the view
Hm, wdym?
i think currently with OAStackView as UIStackView and my .activate patch my ios 6 uikit is not far off normal
other than scenedelegate
that i cant do shit about
in swiftui in a vstack your elements adapt to the components of the vstack, rather than the superview
Correct, in UIKit that behavior is different
if you constrain elements to parts of the superview they don't react to other elements
its clearly geared for the days of known screen sizes
where you can layout everything perfectly
bcus you only have to deal w like 3 sizes
swiftui works so much better w the like 9 sizes we have now
not true, you don't need to align stuff manually in UIStackView, and if you animate the heights for example in a vertical stack view you can see that they animate correctly
I agree
hence why im hoping dearly that openswiftui can be ported back
then again i cant even use it on ios 18 rn
there is no documentation
it is so frustrating
You could build your own layout API if you really wanted to, but
for now, i know i will need minimum of swift 5.10
id only want it to be like swiftui
so
people can use it and not have to learn somethig new
however
i looked at openswiftui code
and holy fucking shit
the codebase is massive
and its not even done yet
💀
it also relies on objc, c, c++
Oh yeah for sure, SwiftUI is very complicated
That's expected 🤷♂️
indeed
ofc
it uses private apis asw
im worried a bit about that
then again, from what i can see, the apis it does use seem pretty fundamental
the idea is that i have to do jack shit to port it
and it just runs
Which private APIs? 🤔
whatever uikit uses to render to the screen
Ah, do you have the link to that file? I'm curious to see
err not atm but ill try and find it later
its deep within the repo
its so confusing
it makes no sense
i hate how they laid it out
xcode doesnt know what to make of it
my only modern mac rn, my hack, can't even process it as a package
just refuses to work
ofc they have the warning "not production ready"
to me that reads "havent been bothered to make it user friendly yet"
bcus when you stay within their example w everything configured
it does in fact work
llvm::Value *irgen::emitObjCAllocObjectCall(IRGenFunction &IGF,
llvm::Value *self,
SILType selfType) {
// Ensure self is a class pointer
if (self->getType() != IGF.IGM.ObjCClassPtrTy) {
self = IGF.Builder.CreateBitCast(self, IGF.IGM.ObjCClassPtrTy);
}
// Get objc_msgSend function
llvm::Constant *msgSend = IGF.IGM.getObjCMsgSendFn();
// Create LLVM function type: id objc_msgSend(Class, SEL, void*)
llvm::Type *retTy = IGF.getTypeInfo(selfType).getStorageType();
llvm::Type *argTys[] = {
IGF.IGM.ObjCClassPtrTy, // self
IGF.IGM.Int8PtrTy, // SEL
IGF.IGM.Int8PtrTy // zone (always nil)
};
llvm::FunctionType *fnTy = llvm::FunctionType::get(retTy, argTys, false);
msgSend = llvm::ConstantExpr::getBitCast(msgSend, fnTy->getPointerTo());
// Prepare arguments
llvm::Value *args[] = {
self,
IGF.emitObjCSelectorRefLoad("allocWithZone:"),
llvm::ConstantPointerNull::get(IGF.IGM.Int8PtrTy)
};
// Call objc_msgSend
llvm::CallInst *call = IGF.Builder.CreateCall(msgSend, args);
// Cast result to correct type
return IGF.Builder.CreateBitCast(call, retTy);
}```
the heart of my modifications
this has had several iterations, as the biggest problem w modern swift is how it calls objc_allocwithzone
it needs to call just allocwithzone
which luckily for me, is identical, but im also shit with cpp so this did take me a while (chatgpt was completely fucking useless other than error checking)
maybe i shoot for the top
lemme check swift 6
ohhh shit
damn the layout has changed grr
fuuuuuck
they removed all sdk stuff
goddamn it
yeah I say stay at Swift 5 (which is very modern already) and work with that, not a lot of people even use the Swift 6 language mode today
LMAO 5.3 includes just enough of the sdk for me to probably get it working
so i think 5.3 may be the max
nvm 5.4
grrr why did they remove the sdk

where is the sdk now
built into the system im guessing
ahhhh right i know why
bcus they started seperating swift from objc
and made it way better on other platforms
wait wait wait wait
maybe.. its seperated into a different repo
perhaps
yeah nah
rip
well shit
heeheeheehaw what do we have here
https://github.com/swiftlang/swift-corelibs-foundation
"on apple platforms, one should use the packaged foundation library"
well what if your apple platform has been unsupported for over a decade
in all seriousness though, i can tell that swift 5.4 is the hard cutoff
swift got seperated from its libraries
which is good
its really funny how long those sdk elements lasted inside the source
some parts of it are even completely reliant on it
not even obj c patches
wait wait wait wait wait
swift 5 has concurrency
yes
Is it good concurrency
Turns out Swift 5.5 has a final branch that may be compatible
Don't know how stable it is
Probably best not to do it but
I can't help myself
It predates 5.5 preview 1
💀
Although technically it's swift 5.5.1 that it predates
Yeah no it's swift 5.5 preview 1
alr
okokokok hold up
hold up here
swift 6 might be possible LOL
so it turns out they merely seperated out dispatch
so the only thing that would actually require modification is foundation
but foundation has an open source implementation
so swift 6 may in fact be possible LMAO
bro this goes like 5 layers deep 💀
anyways ima do swift 5.5 pre release 1
Yeah swift 5.5 has concurrency
await and async
hopefully this 5.5 pre 1 has it
rn im not doing any modifications whatsover
i wanna see if it works on ios 7 first and foremost
Alr gotta install big sur to do it
Gonna dual boot it since performance on Mojave is absolutely excellent
Runs like a dream
So ima just use Swift 5.5 on Xcode 11.3.1 (hopefully)
yea i figured i was skating on thin ice
would you recommend execv? i just realized that might be an option
interface is a bit simpler than posix_spawn
Not sure, I have never used it
I would say NSTask could be worth a look, it's quite simple
if i wasnt trying to maintain a linux port id use that for sure
it uses Quartz (CALayer) and that in turn probably draws to IOSurface
execvp works but you gotta do this first:
void *libjb = dlopen("/usr/lib/libjailbreak.dylib", RTLD_LAZY);
void (*fn)(pid_t, uint32_t) = dlsym(libjb, "jb_oneshot_entitle_now");
const int platformize = 1 << 1;
fn(getpid(), platformize);
maybe it fixes system too.........
that was the workaround for electra
and works in palera1n-rootless i guess
idk about dopamine
posix_spawn prolly safer
Nice that you got it to work, but I would do posix_spawn yeah
yeah they use iosurface im fairly sure
what
This works in Electra iOS 11
no other jailbreak has required or even provided this function since
maybe early versions of chimera did idk
Are there any tutorials or tips available on how to remove/hide update pop ups in apps? (This case Mc Donald’s )For example this update is not necessary but the pop up is very annoying and always redirects to the AppStore
RIP concurrency is only avaliable on ios 15+ anyways so
who cares atp
nah nah ima try and do it anyways
for funni
swift 6 on ios 6 would be hilarious idk how i am gonna get it to work tho
maybe swift 5 language mode wil work?
oops yea im prolly wrong
Alr
After extensive testing
I think Swift 5.4 is the last version I can reasonably get working
Potentially
My Swift 5.5 pre 1 is seemingly not working even on iOS 7
Tho that may have to do with it being improperly built for non embedded systems
Concurrency only looked in system path not rpath for some reason
After changing tho it still crashed with a bad kernel error
Nvm that actually might've just been bcus I'm running a diff xcode
yeah i just verified i am completely mistaken my b
Hmmm I might wnna push to 5.4 either way
5.3 added multiple trailing closures
And 5.4 added result builders
Which both are needed for swiftui and possibly openswiftui
help 😭
guard let window = UIApplication.shared.keyWindow else { return }
let baseLevelVC = BaseLevelViewController()
UIView.transition(with: window, duration: 1, options: .transitionCrossDissolve, animations: {
window.rootViewController = baseLevelVC
}, completion: nil)```
this is buggy and not working right on ios 13
self.dismiss(animated: true) {
let baseLevelVC = BaseLevelViewController()
baseLevelVC.modalPresentationStyle = .fullScreen
baseLevelVC.modalTransitionStyle = .crossDissolve
self.present(baseLevelVC, animated: true, completion: nil)
}```
is this acceptable
chris lattner on result builders https://youtu.be/ovYbgbrQ-v8?t=1456
posix_spawn works extremely smoothly, tysm
this is what i referenced https://github.com/NightwindDev/BoldersReborn/blob/3c98c329d1c6b792c4b9f351ba7788741ca3443a/BoldersRebornPrefs/BoldersRebornBaseController.mm#L93
What's this? I noticed those in the swift patch notes
I can't remember when they were added
i have no clue i havent written any swift in years but he talks about it at the timestamp i linked
lmao
he has some interesting things to say about that feature
Nice! Glad it worked 👍
Hoping I can get concurrency working on iOS 6
If so I can write a truly asyncronous Discord client for legacy iOS
Which should in theory greatly improve performance
Ye ik you can use GCD however, await and async are basically purpose built for a Discord client
Or any kind of client really that uses a server
And even then I’m doubtful that async await will work with builtin functions
Idk
If it does then great
Who knows
True true
First I have to see if Swift 5.5 stable works on iOS 7
Not even gonna bother starting if it doesn't
In theory it should, they supported iOS 9
iOS 9 and iOS 7 under the hood are extremely similar for the fundamentals
We shall see
Try some async operations
Now I wait for Xcode 13.2 to test concurrency
Ah
Can't bcus I stupidly downloaded Xcode 13.0
L
Not realising they only backported concurrency in 13.2
Very nice of them to do so though
Sadly they did not backport opaque types
So I am unsure if porting OpenSwiftUI is possible
I say you should write some code to fetch an example json from an api
And see how well that works
Yeah I already have some example code at the ready
Gotta wait 17 minutes to download and another 20 ish to test though :/
Indeed
It would be a massive development
Ngl this is kinda crazy
Swift 5.1 came out in freaking 2021
And it does in fact work as expected
The only limitation I have run into is errr iOS 6's UIKit is slow
But there isn't really a way of getting out of that unless I rewrite OpenSwiftUI which uses IOSurface directly
From memory
Interestingly, the same code runs a decent chunk better on iOS 7, my guess is because iOS 7's UIKit was much much better suited to heavy GPU operations, for understandable reasons
UIKit is deeply frustrating
Especially animating
SwiftUI you have a single way to animate and it always works
I can't even animate my shadow colour without dipping into Core Animation
hmmmmmmm
concurrency was back deployed to ios 13 only
Yeah no realistically I'm staying on Mojave, 5.4 isn't worth me losing the stability and performance of it. I'm going to now attempt to make my changes to 5.1 in a way that allows Swift to function with all types on versions, so I can make a pull request and hopefully merge changes
There's a TZStackView in swift
VS OAStackView which is so so much longer
And requires bridging
However, if it's better
I'll just use OAStackView
Okay so the patches are oncoming and are probably going to be very large
I need to a quite a massive amount of work to get OpenSwiftUI to work
Even to Swift 5.1
I need opaque types to work
Now, there's been a number of real swift engineers saying oh well something something breaks abi cant backport
But I have a sneaking suspicion the iOS 13 limitation is because opaque return types came with SwiftUI
Shit's getting real
Might finally make a fork
Rather than a single commit repo 💀
Now, I've given up on concurrency for even below iOS 13
It's not happening
It took the Swift team an immense amount of effort to get it from iOS 15 to iOS 13
I looked at their patches and they basically rewrote it
But I don't need concurrency for Swift UI
Now, there's a number of projects that implement SwiftUI
The most promising to me is Swift Cross UI
it's not perfect swiftui, however, it uses a uikit backend
uikit i can work with
plus, it's backend agnostic
so if i have to, i could create a pull request and write my own "legacy uikit backend"
however, that project does sadly require 5.10
But... it is in theory plausible that I can get versions beyond 5.4 to work on iOS 6 WITHOUT concurrency
But ONLY without it
Hey. Does someone know where to hook inorder to get the payload of APNs sent by Apple
lol yeah apple was bullshitting
opaque types work absolutely perfectly
you'll just have to deal with Xcode saying "it's only avaliable on ios 13"
Even though it most definitely is not
It'll compile tho
Even tho it says its an error
if you don't want the error use -Xfrontend -disable-availability-checking
however, you better be damn sure you're certain what will and won't work on ios 6
lol
but yeah i just made opaque types avaliable for everyone
so there's another use for my fork
you can use them below ios 13 now
idk why apple limited it
there is absolutely no good reason
it works perfectly
Welp, openswiftui may still be possible now!
have you tried running classdump on apsd
I would hazard a guess
Oh thank you so much. I'll look into it.
Does anyone know what Xcode checks against when whining about version compat for certain things
It's probably my ADHD but I cannot stand having that squiggly line
what line?
the apis are probably marked as @available(iOS 13.0.0, ...)
or just write code that works with the old style, idk
The code itself works fine
I made it so
But Xcode clearly doesn't use the compiler to run the check
It's not an API I discovered, opaque returns are entirely implemented in the compiler
I cannot for the life of me understand why Apple made the iOS 13 only
I had to change 1 thing to get them to work all the way down to iOS 6
Which is skip their iOS version check
💀
I mean the fact of the matter is that whatever swift engineer said they were ABI additive was lying out of their ass
"some" is syntax sugar
it's handled at compile time
not runtime
has no affect on abi
indeed
nah i'm telling you
its c++
it's os agnostic
right
its not like concurrency
concurrency is a diff beast
that im pretty sure is ios 13only
and for good reason
maybe
we shall see
Apple already bullshitted me about opaque types
"cannot be backported, requires too much effort"
this is the thing
why does nobody
try stuff
just freaking try
it worked first time for me 😭
lol i fixed
it's sourcekitd.framework
Time to reupload with the new replacement framework
They lied
Oh my god
Concurrency works on iOS 10
I think
Wait
Maybe not
Grrrrrrr
Nvm wait
Alr so
Swift Cross UI works on it's supported platforms
Cool
Works as you'd expect
All is good in the world
Now, there's a number of very glaring issues
1: Swift 5.10's open source toolchain only ever compiled for arm64
2: It requires Swift 5.10
3: It uses concurrency
So uh yeah
Big issues
lmao swift 5.6 works fine
minus concurrency
but still
that's kinda goofy
also thats using the old 5.1.5 overlays
bcus they removed them
im guessing thats bcus the overlays like
don't change
at all
grr some parts dont tho
yeah so
SWIFT works
like on swift 3
but yet again
obj c is broken
i bet its objc_msgsend or allocwithzone
swift 5.5 works tho!
is anybody good with objc macros here ?
i have this function void hookInstance(id instance, SEL targetSEL, IMP replacementFp, IMP* origFp) which instantly applies the hook on the replacementFp
and i want to make a macro thats used like this
HOOK_INS(myView, setFrame:, void, NSRect) {
NSLog(@"my hook is called %@", arg0);
orig(arg0);
}
the idea is the macro handles declaring the function pointers internally
i do not believe this would work in this format
@orchid fulcrum i believe it might be better to just take in a block as the parameter like a callback
Okay so
There is currently a pretty good backport of SwiftUI syntax
But no renderer
So functionally useless
There's also Swift Cross UI
But I see no way of getting it to function properly on legacy IOS
At least, not on my own
I think at this point in time I've done pretty much everything possible that can be done solo
Anything from this point on would be beyond a massive undertaking
Well, I made an issue on Swift Cross UI to hopefully spark up some conversations surrounding it
I will make a similar issue on all open source swift ui implementations
This is not the kind of thing I think I can do on my own
If anyone wants to help let me know
Calling all Swift develoeprs: I need help making a SwiftUI backport. The project is too large for me to undertake on my own.
No project is large though to do on your own
Nah I’ve seen SwiftUI open source implementations
yeah this kinda works at the most basic level (orig also works but you need to pass self and cmd as well, ideally it would be just custom arguments), however i would like to be able to use arguments inside the passed block as well, names don't matter arg0 and arg1 etc is fine
It’d take solid months of dedicated time that I don’t have just to get it to display
So it'll take a few months
No I mean months of me just spending time on it
Except I’m a full time uni student lmao
what stops you from being able to pass arguments inside the passed block
you could use vaargs or something
syntax is whats stopping me lol
The rendering code alone ranges from “won’t work” to “so over complicated I may as well write my own ui layer”
as in what
this "block" is not an objc block btw
just {code}
i gues then just do that except don't treat it as a block either and just embed it in the code? i dont know if C macros allow this but
also might look better if you put the block as the last argument
agreed, but variadic args need to be last no ?
yea
i will try using c++, looks like lambdas may help
==> Notice: Build may be slow as Theos isn’t using all available CPU cores on this computer. Consider upgrading GNU Make: https://theos.dev/docs/parallel-building
> Making all for tweak FakePass…
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64)…
==> Linking tweak FakePass (arm64)…
ld: warning: -multiply_defined is obsolete
==> Generating debug symbols for FakePass…
==> Signing FakePass…
> Making all in prefs…
==> Notice: Build may be slow as Theos isn’t using all available CPU cores on this computer. Consider upgrading GNU Make: https://theos.dev/docs/parallel-building
> Making all for bundle FakePassPrefs…
==> Copying resource directories into the bundle wrapper…
==> Linking bundle FakePassPrefs (arm64)…
ld: warning: -multiply_defined is obsolete
ld: framework 'FrontBoardServices' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [/Users/orangera1n/Documents/gitrepos/fakepass/.theos/obj/debug/arm64/FakePassPrefs.bundle/FakePassPrefs] Error 1
make[3]: *** [/Users/orangera1n/Documents/gitrepos/fakepass/.theos/obj/debug/arm64/FakePassPrefs.bundle/FakePassPrefs] Error 2
make[2]: *** [internal-bundle-all_] Error 2
make[1]: *** [FakePassPrefs.all.bundle.variables] Error 2
make: *** [internal-all] Error 2
orangera1n@J314sAP fakepass %
how do i uh
fix this
Check if you have $THEOS/sdks/iPhoneOS*.sdk/System/Library/PrivateFrameworks/FrontBoardServices.tbd
i do
Do you have patched headers
might be worth considering editing logos, or making your own preprocessor
it was because of some block specifics. this works fine
but i would love to make the block the last argument somehow
I think this feature might've gotten removed when macOS Server got deprecated, but does Xcode Cloud support local machines for building? Just trying to find ways to make use of a second Mac on my network..
it's all gone. you could set up a github actions runner instead
There is also ccache + distcc/Icecream
I was considering that, but was also considering avoiding GH since MS hasn’t taken security seriously, even with their Secure Future Initiative everything’s basically a meme.. so I might be stuck with just doing everything local or forcing everything to only work with signed/verified commits maybe
@wooden yarrow i manually added macros to support upto 10 args lol, at least it works and looks nice now
cool
that was a fast reply lol
Do you need help with something
Making money with slop ios apps
ai slop?)
Yessss
Yeah
Nah
fr
Swift 5.3 works now
I am actually laughing rn
It's so funny what broke it
I was banging my head against a wall
Get this
It was the deployment target in Xcode
💀
Setting it to 7.0 manually fixes literally every new error
💀
Time to go for the big guns
Swift 5.6
Surely surely surely
Man the swift engineers came in absolute fucking clutch for me tho
Bcus Swift 5 aimed for ABI compatibility, Xcode STILL uses the Swift 5.0.1 stdlib
To this day
So I can literally just reuse the Swift 5.1.5 toolchain's libraries and my own
Awesome
You will need to install 2 toolchains now rather than 1 but like
Who cares
It's barely any extra work
Ok
Btw typically when you copy the code from a repository you fork the repo
Im trying to get a look at some .ipa. does anyone know why bagbak might be giving this error?
[Error: Unable to communicate with remote frida-server; please ensure that major versions match and that the remote Frida has the feature you are trying to use]
I have matching version latest frida, ios 16..3.1 iphone Xs. I heard troll decrypt might work, but I have bagbak and just wonder why it might be stuck.
Typically you would, except when dealing with something like swift
where if you aren't directly cloning it's repo it absolutely refuses to checkout dependencies and build
i tried forking and it was an absolute disaster
I still have to do a bunch of license bullshit and readme
Maybe i'll get someone to make a pr and do it for me i cannot be assed
too busy on the next version
import SwiftUI
extension Text {
@backDeployed(before: iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4)
@available(iOS 14.0, macOS 11, tvOS 14.0, watchOS 7.0, *)
public func monospaced(_ isActive: Bool) -> Text {
fatalError("Implementation here")
}
}```
HOLY SHIT
THIS IS A THING??
i need 5.8 now
holy fuck
this is going to be so fucking useful oml
only problem now is that swift was only ever made for arm64 from now on
so i have to replace a LOT more of the toolchain
just hoping and praying i can build swift 5.10 with armv7 automatically
gonna test the waters with 5.7 first
Anyone had success getting an ipa to something readable in swift? I just ran an ipa through ghidra but it just looks like spaghetti to me. Is there a script or something that can decode into something more readable?
WOOOO after literally sitting and banging my head against a wall PAINSTAKINGLY changing back EVERY build file to support armv7 its FINALLY building for it
lets go
W
bcus it takes so freaking long to do im not even going to bother shooting low anymore
going straight to 5.10
I literally just watched on of her videos. This is probably the script she uses? Can we export with a complete file?
How is this better than ida
¯_(ツ)_/¯
<@&355174844205367317> https://tenor.com/view/mods-discord-mod-moderator-moderation-clash-of-clans-gif-24080525
I wonder if there was a way to not have to ping mods, at least on the dev channel
nah there's clearly already enough non-US staff to moderate at all times
Thank god
yeah, I mean 16:00 EU time is going pretty well, I wonder how it's going from 8:00-12:00
Clearly 10 am in the us needs more moderators because maxine sucks at her job
Shut up icraze
@rocky oriole https://github.com/nfzerox/launchbad-revived
i didn't use this but it seems like its installing the old dock via a script, you can check it out
interesting, I'll check it out ty
SIP, filevault, and that other thing can be turned back on though after it's done... right ?
I meant after the dock was replaced and the old launchpad could be used
But I guess it's a no then
Better a furry than a Brit and fortunately I am neither
Are you importing the ipa or the binary
binary
I tried looking with ghidra but that looks like actual hell to me.
https://x.com/birdabo404/status/1971895851657412818?s=46 this is insane
who on earth thought embedded java was a good idea
much less 2 people (javacards and jazelle)
You know about secure element right?
i do indeed seem to remember something about it running java yes
Java SE vs x86 baseband
The same people that thought compressing a compressed phone line was a brilliant idea
windows on the baseband though
I built a small language model in Minecraft using no command blocks or datapacks!
The model has 5,087,280 parameters, trained in Python on the TinyChat dataset of basic English conversations. It has an embedding dimension of 240, vocabulary of 1920 tokens, and consists of 6 layers. The context window size is 64 tokens, which is enough for (very...
holy autism
^
@crisp frost ahh
real
Simux when??
Fr
Holy shit things are getting messy
I did not anticipate building Swift 5.10 for armv7 would be such a headache
but oh well
Idk how many times ive rebulit this
YES ESY YSEYS YESY ESY E YS
GFUCK YES
FUCK FINALLY
FUCK
IT WORKS
HOLY SHIt
SWIFT 5.10 NOT ONLY ON IOS 6
BUT FOR ARMV7
NEVER DONE BEFORE
THAT TOOK SO LONG AND WAS SO PAINFUL
BUT ITW ORKS OH GO
the swift team made that absolute hell to go through
please i beg of you do not try compiling this
you will be tormented
THIS IS HUGE
bro doing the most unhinged backports in apple history
Fr
Maybe one day I will have the motivation and time to attempt a Swift 6.2 backport purely for funni
Bcus you would never ever be able to actually use it in production
💀
oh mb
made the shittiest pr known to man on the swift repo but like
who cares
its just another place a google result can go to
i fully expect it to refused
But, hopefully a swift engineer can comment on it
maybe give some advice on if its a stable mod
seems super stable to me
link? I'm curious
This isn't even a full patch, you need to patch the STDLIB
lucky that hasn't change in forever
and used to be bundled with swift
So i just reuse the 5.1.5 one (apple reuses the 5.0.1 one in xcode builds STILL to this day)
hah really
I feel like it has a chance with the exception of deleting stdlib unit tests, there would have to be some way to skip it for the old archs
Possible, it depends on whether they accept my allocWithZone change
They HAVE to accept the opaque stuff tho
That's literally an artificial limitation
I bet you it's only there bcus it's most used in SwiftUI
which is iOS 13+
But opaque types are a compile time feature 😭
They're platform agnostic
also, minor criticism that you should clean up the code style, eg you used 4 spaces when their standard is 2 spaces
Where
Must be accident from copy paste
Depending on file
mostly in lib/ eg
The only copy paste i made 😭
it's not the worst thing, Xcode rudely changes code style like this
to this day, it's still unclear how you set the code style in your project file
@native dune Get a job
you have to click the xcodeproj, then in the sidebar toggle the settings so they get written into the xcodeproj
Nah
Aaron 2 GIR
APP
— 9:41 PM
@gg
Your message contained a word you aren't allowed to say in r/Jailbreak. This could be either hate speech or the name of a piracy tool/source. Please refrain from saying it!
Repeatedly triggering the filter will automatically result in a mute.
incredible
💀
maybe one of these days Xcode engineers will discover that .editorconfig exists
Indeed
also this one is easy to miss but
Which
tabs
Oh
💀
I didn't even realise that was a thing wtf
I thought it autoconverted into spaces
😭
I have my browser set to tabs = 2 spaces because it tends to catch accidental mixed tabs/spaces like this 🙃

Anyways yeah i mean my changes are very stable and work fine, the stdlib changes will never be accepted tho
I'm curious to hear what the rationale is for opaque types being gated behind Swift 5.1
Me too
even if rejected, it'll bring an interesting conversation
My guess is absolute fuckall, because I saw a swift engineer on a forum say "oh it requires stuff that isn't in older iOS"
which, as proven, is complete horseshit
I have used opaque types in every conceivable way with no issues
it may well be that they just don't want to support features earlier than an official support cutoff, rather than it being impossible
I mean maybe that's the case but I don't think so because they've backported stuff before
To this day they STILL support a build target of iOS 7
hello kirb
Thank god for that
hi
how u doing
I am 🆗
good to hear
What I'm super interested to hear is why Apple insists that "Swift is only for iOS 7+" when Swift 2.3 natively works on iOS 6
They even had it avaliable as a build target in Xcode 8.0 beta 3
as with Windows and some other OSes like Android, there's a possibility they they can list early iOS as community-maintained at this point
I don't know why it was removed
Cause they want people to use ios 7 and later
Ok
Okay
True!
Maybe they allow me a seperate branch
Or branches
One for STDLIB and one for 5.10
like I think that's pretty fair, if it can be merged without disturbing anything to do with other platforms
but since it's legacy support on an Apple platform specifically, maybe they'll be inclined to say no. here's hoping though
the stdlib changes are.. more interesting
it's really just the removal of all references to munmap
to my knowledge, it doesn't really have any bad effects
seems like those could be passed through a wrapper function that uses munmap() if it exists, otherwise either use a fallback or do nothing
yeah rn i just blanket switch to free
hopefully that's fine
I only say that because Win32 has multiple places you can allocate memory, and all must be freed with the matching function
The reason I think it'll be fine is Swift 2.3 never used munmap, at least, not in this respect
LocalAlloc/GlobalAlloc + LocalFree/GlobalFree
Actually, ykw, I should check what swift 2.3 did
It might be like allocwithzone
Where it calls the same function through a different method
and of course HeapAlloc/HeapFree
Ah, i see why foundation didnt cause any issues
No url mentions to be seen
Aha
There is nothing
That's why
yeah, this is also what the concept of zones is from, which zone you're allocating in
The method is just, never called
My changes don't break anything w that tho bcus it's an identical call
Just using a different API to do so
these days I believe you just don't use zones, which means malloc()/free() (LocalAlloc()/LocalFree() for objc on Win32)
sort of a relic from Win16 anyway
Yeah okay so nothing good there
Yikes
lmao
Seems they just didn't use anything to do with either free or unmap
At least, not in overlays
I bet you they just used the native methods in the objc runtime without any wrapping at all
Or just manually freed memory
Either way, my changes allow it to function so it's good
This has been a wild journey ngl
I do not recommend anyone trying to build my swift fork for anything above 5.6 tho
building modern swift for armv7 requires the dumbest build env you've ever seen
works fine once u set it up tho
plus, it seems swift is really really picky about what version of xcode you use
even tho they say "13+" it most DEFINITELY is not
this doesn't surprise me, they keep on not updating or not testing their minimum version
indeed
which is pretty good for me because they're not removing old code
there's still compat shims from iOS 7 in there
thank god for laziness
same as it saying "iOS 7+" all this time when it's broken on iOS 7
i mean, i think modern swift works fine by default on ios 7?
5.6 worked
and in theory 5.10 may work with arm64
it could work now. it didn't work at least in the earlier 5.x days
Well, every fork of mine works for certain
Maybe my changes fixed iOS 7 as well
ios 5-26 app eta
67
I'm trying to get the Swift Cross UI devs onboard
sorry
I know because NewTerm 2 was rewritten in Swift, I made it iOS 7+ because well, I handle all the compatibility stuff and Apple says it should work
I didn't have a device to test on though
How much UIKit does it rely on
got a device, tested it, crashes with a missing libobjc symbol in libswiftCore
yep
thats what i had
i know what ur talking about
okay
that error relates to build target
maybe it could be made to work now, but I abandoned iOS 7 support a long time ago
could bring it back, idk
if you dont set build target to 7 in xcode you get the wildest errors youve ever seen, and theres a few hodgepodge errors here and there
it should work in theory
is the code open source
the only thing that wouldnt work is uikit stuff but i think i have most of that covered
it is, don't know how long ago we changed the target now though
might have been 2.0 and removed in 2.1 or 2.2
HA you make a shim aswell
protocol LayoutGuide {
var leadingAnchor: NSLayoutXAxisAnchor { get }
var trailingAnchor: NSLayoutXAxisAnchor { get }
var leftAnchor: NSLayoutXAxisAnchor { get }
var rightAnchor: NSLayoutXAxisAnchor { get }
var topAnchor: NSLayoutYAxisAnchor { get }
var bottomAnchor: NSLayoutYAxisAnchor { get }
var widthAnchor: NSLayoutDimension { get }
var heightAnchor: NSLayoutDimension { get }
var centerXAnchor: NSLayoutXAxisAnchor { get }
var centerYAnchor: NSLayoutYAxisAnchor { get }
}```
looks like up to 2.1 https://github.com/hbang/NewTerm/blob/2.1/control
2.2 jumped all the way up to >= 10.0 apparently
oh, and libswift 4 in fact not 5
yeah, I make sure of this
and this too!!!
if #available(iOS 11, *) {
newInsets.top -= view.safeAreaInsets.top
newInsets.left = view.safeAreaInsets.left
newInsets.right = view.safeAreaInsets.right
textView.contentInset = newInsets
var scrollInsets = newInsets
scrollInsets.left = 0
scrollInsets.right = 0
textView.scrollIndicatorInsets = scrollInsets
} else {```
I'm rusty now but I at least previously knew my compatibility hah
Yeah this should work fine on iOS 6
oh the safe areas of the terminal are my least favorite part of the entire app
Yeah i have to add a shim for safearealayout evntually
It's going to be so fucking annoying to do
it was always broken in some way, different ways for different eras
like pre-safe areas, safe areas, and then keyboard safe areas
yeah
Alr cool I'll just download the project and build
No storyboard?
aw man you use theos

so i can't build without it?
you can run from Xcode but it’ll be sandboxed and can’t start a terminal
We don't care about that we care about if it runs
but the app will work enough to test everything else
I always meant to make a sandboxed version of NewTerm that can be used as an ssh client, but never did
then it could have been released on the App Store too
but in retrospect that would be a disaster lol, people would download that and email us / 1-star it saying where jailbreak
Okay
you would have made a ton of money though
I mean, as long as you were very clear about what it was for, there's nothing wrong you would've done
oh god yeah lol
prolly would still be the case now due to people’s desperation
people sign up for the Procursus Mastodon like they’re applying to please be given an iOS 26 jailbreak 
I’d feel bad to take people’s money for false hope though
oh it would be made very clear it’s not a local terminal of course, but people both don’t read, and try things anyway out of desperation thinking there might be a magic way nobody’s thought of yet
Yeah I guess so
Call it something else’s then
SSHTerm
true
or sthm like that
Honestly atp I'm actually more impressed with how good Apple's security is than I am disappointed with the death of jailbreaking
NewSSH
I wanted to use the existing brand value of NewTerm but yeah it probably should have had a different name
NewTerm is synonymous with “how do I run a command on my iPhone”
I mean realistically the audience who actually needs a sandboxed terminal are also the audience that will go seek out a way to get it for themselves
the 1-stars are still a problem but Apple can kinda be talked into deleting ones that are clearly not fair to your product
like implying they were cheated out of a feature you never claimed to have
First, does apple accept builds made with the toolchain provided on swift.org
I mean theoretically they should
They're built directly for Xcode
I wonder if my changes get approved in any way I'll be allowed to use my toolchain to build App Store applications, that'd be interesting
Put a note saying that jailbreak is basically dead
Or have a mastodon made for just stock things also with a diff name
Ultracursus or sthm goofy
Yeah I feel like it needs to be publicly acknowledged that the likelihood of any more jailbreaks from this point onwards is extremely low
The hopium has to die at some point
Honestly I think jailbreaking lived a lot longer than it should have in theory, we got very lucky getting consistently stable kernel exploits year after year
Trollstore 2 by all accounts should never have happened, and yet it did
I just wish we were allowed to do jailbreak stuff without exploits
Not to mention checkm8 was a miracle
iOS Jailbreaking always depended on exploits
Checkm8 was the silver bullet for basically a decade
yes but all apple would havee to do is allow us to unlock the bootloader to get anything we use in jailbreaks now
It's probably the single most important iOS exploit in jailbreak history
And recognizable
if apple made most decent jb pros a feature
Also why tf did unc0ver end up almost as recognizable as checkra1n
jailbreaking would be pointless
But yeah, with 17.0 having trollstore and still not getting a kernel exploit, and this being the first time in iOS history where there is 3 consecutive public releases that all have no jailbreak, I think it's pretty fair to say that it's dead
even though jailbreaking is already kinda pointless
it was a slowly molding silver bullet
It's given us so much insight into iOS as a whole
honestly
the only reason
checkm8 ipads
are even worth it
is because of checkm8 itself
they are absolutely terrible for daily use
Apple made a monumental mistake in supporting them this long
no
pretty sure there was legal reasons they had to, from what I remember old ipads kept getting supported because of apple being partnered with schools
Fucking more powerful iPads didn’t get iOS 18 but the iPhone 7 chip device did
as the 6th-8th gen ipads were commonly used not even 5 years ago
Indeed
although the issue with them supporting old ipads was solely due to schools just not having enough funding to upgrade them all
honestly a loss more than it was a win
it's not mine I just mod for it
the naming is confusing but can't really fix it now, ActivityPub isn't great at moving hostnames
fat
Ah yes
Wait I just realised basically every open source tweak or app written in swift for ios 7 8 9 and 10 can probably run more or less on ios 6 now
grrr the fire burns inside me to port concurrency
I love how it's since grown 200mb
@lime pivot rip didnt know it be like that
Ykw now out of spite I’m gonna patch swift 6
ain’t no way he denied it because it’s on a 10 month old branch bro swift 5.10 is the main version that people use
Ts cooked
Would anyone be interested in helping me patch Swift 6?
By patching i mean concurrency
I need someone more skilled than me with cpp
I can handle all the swift
The cpp not so much
ahh fair enough I guess
Grrr not fair enough i don’t like his tone
His mesage is fair
(I’m finding an excuse to patch swift 6)
Also I actually kind of want my changes public on the swift repo
They never should have done what they did
they are more direct than they need to be, but sigh par for course I guess
engineers do be like that
Indeed
are there any configuration profiles i can use to test stuff?
test what
people are bootlooping and im trying to figure out whats causing it
i uh
what
if you're bootlooping i don't think config profiles are going to help you
what are you even doing
im trying to replicate the bootloops
a lot of the reports seem to be using some app profile thing
blockota
To block OTA updates, you can install a tvOS beta profile that is specially designed to work on all Apple platforms. This works even without a jailbreak. Note that the profile expires and will stop blocking updates on <t:1801306815:D> (<t:1801306815:R>).
You can re-enable updates by uninstalling this profile in Settings -> General -> Profiles & Device Management.
If you're jailbroken, you can also install the OTADisabler tweak instead, but note that it is harder to remove while unjailbroken.
Added by kitty.#0001 | Used 3,901 times
·
im trying everything but i cant replicate it
this is what all the reports seem to say:
- they try to apply something
- Nugget errors when applying (various errors, some happening before restoring)
- the device starts bugging out, so they reboot and then device gets stuck in a bootloop
for the life of me i cant figure out whats causing it or replicate it
does anyone here actually know what the difference between a mach-o binary built for a real iOS device is and one for the iOS simulator is and how they're able to identify themselves as one another
I've been experimenting with this and having shit luck
there’s a platform field in the Mach header that indicates iOS or simulator (or other platforms)
you can change them with a tool like this https://github.com/EthanArbuckle/machoe
@radiant idol in posix_spawn have you ever tried redirecting stdin/stdout/stderr to a C callback? i see you write directly to a file here https://github.com/NightwindDev/rootless-patcher/blob/d09c5a8cca030b08da1b68f06357e37ad0fcda09/src/RPSpawnHandler.m#L22-L28
apparently you're supposed to use posix_spawn_file_actions_adddup2() + pipe()
i had chatGPT generate some code for me, seems super convoluted
i would just use popen(), but that's broken, for i assume the same reasons system() is broken, but strangely it seems it isn't explicitly marked deprecated
shell pipe
Not sure, never done that
Well... I'm going to try and make this even more functional
Seems that although my Swift 5.1.5 libraries work perfectly for everything
When you start trying to use concurrency
Shit starts to crop up
So gonna do what apple did
And compile the Swift 5.0.1 libraries
Or realistically 5.0.3 bcus i'm not manually cloning a commit for the 30+ dependencies Swift has
And I'm gonna hope those are just as compatible
If so I can probably just start shipping them in a custom toolchain
And yes, I am foolishly attempting to make concurrency function on iOS 13>
Right now I don't exactly have my heart set on iOS 6
Anything less than iOS 12 will do
I realise the likelihood of getting concurrency to function properly on iOS 6 is incredibly low
Okay
Okay
this could be useful https://github.com/hbang/libcephei/blob/main/main/Command.swift#L43
there's a more complete version of this in Zebra, but, GPL
aight cool i got posix_spawn piping working (https://github.com/ProcursusTeam/Procursus/issues/1465) thanks for the references
Does it pass the stdlib tests though
pretty much all of them
at least the ones that dont use ios 7 apis or concurrency
What does this do
General back port library of many new UIKit features
Tonnes of conditional compilation so you only get what you need
Basically makes it piss easy to use newer shit
And for me, allows me to make it easier for the swift cross ui devs to support iOS 6
Okay
App Attest is absolutely not bypassable, right? For sideloaded-on-jailed apps I mean, ofc its not an issue if you have proper systemwide injection
Anything is bypassable if you want it to be 
Jesus christ i fucking hate C
And for that matter C++
they always come back to get me
atomics dont exist on ios 6
yeah it was lacking far behind even a recent as 14
They were there on iOS 7
I’m getting ___atomic_store
Idk Whats calling it
Idk why
Anyone have an idea
no backtrace?
It says it’s looking for it in libsystem b and it’s coming from libswiftcore but the rest is not symbolicated
I can see the tasks but no what they’re doing
there were symbolicators back then
how come older iOS had a better looking crash reporter in plaintext instead of json
its probably still on bigboss
oh I missed that. had a 3GS (with an untether when I received it) with plaintext crash reporting that confused me
this is an ondevice thing?
yes
rip
but it should run fine on mac
just need the deps like https://github.com/ashikase/libsymbolicate
ill try the gui on device first
keep in mind i do copy in swift librarys after building that replace the default ones lol
yeah it didnt symbolicate
wait nvm it did some stuff
ill send a ss
wtf is calling atomic 😭
its refocunt
refcount
i know that
but
why
and how
port debugserver to iOS 6 wen
they did change the crashlog format. in the osanalytics framework there are methods to get an “old style” report (OSALegacyXform)
what would usually call refcount
its not a custom built lib per se
its just a swift package
thers probably debug arg
disable strip calls in the make project
-g -gsplit-dwarf -O0 -DDEBUG
where would i pass that into xcode? is that a swift argument or a c argument
i have a tool to get these btw. its like a modern version of Lance's symbolicate https://github.com/EthanArbuckle/slog