#development

1 messages · Page 242 of 1

magic hazel
#
        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)
            ])```
#

.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

radiant idol
#

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)

magic hazel
#

its so fucking shit

#

why is there no spacer

#

i had to have it

#

super simple shit tho

radiant idol
#

because it goes against UIKit principles, you should be using your constraints in a correct way where you don't need spacers

magic hazel
#
//
//  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)
    }
}
magic hazel
#

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

radiant idol
#

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

magic hazel
radiant idol
radiant idol
magic hazel
radiant idol
#

Hm, wdym?

magic hazel
#

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

magic hazel
# radiant idol Hm, wdym?

in swiftui in a vstack your elements adapt to the components of the vstack, rather than the superview

radiant idol
#

Correct, in UIKit that behavior is different

magic hazel
#

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

radiant idol
magic hazel
#

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

radiant idol
#

You could build your own layout API if you really wanted to, but

magic hazel
#

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++

radiant idol
#

Oh yeah for sure, SwiftUI is very complicated

magic hazel
#

stuff im not very good with

#

im much much better w swift

radiant idol
magic hazel
#

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

radiant idol
#

Which private APIs? 🤔

magic hazel
radiant idol
#

Ah, do you have the link to that file? I'm curious to see

magic hazel
#

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

radiant idol
#

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

magic hazel
#

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

#

"on apple platforms, one should use the packaged foundation library"

#

troll 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

faint timber
#

yes

magic hazel
#

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

magic hazel
#

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

magic hazel
#

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

magic hazel
#

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)

floral notch
#

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

radiant idol
#

I would say NSTask could be worth a look, it's quite simple

floral notch
#

if i wasnt trying to maintain a linux port id use that for sure

radiant idol
#

ohh, interesting

#

then yeah posix_spawn is probably your best bet

lime pivot
floral notch
#

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

radiant idol
#

Nice that you got it to work, but I would do posix_spawn yeah

magic hazel
naive kraken
#

This works in Electra iOS 11

#

no other jailbreak has required or even provided this function since

#

maybe early versions of chimera did idk

tawny stag
#

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

magic hazel
#

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?

floral notch
magic hazel
#

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

floral notch
magic hazel
#

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

magic hazel
#

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

magic hazel
#
self.dismiss(animated: true) {
                let baseLevelVC = BaseLevelViewController()
                baseLevelVC.modalPresentationStyle = .fullScreen
                baseLevelVC.modalTransitionStyle = .crossDissolve
                self.present(baseLevelVC, animated: true, completion: nil)
            }```
is this acceptable
floral notch
magic hazel
#

I can't remember when they were added

floral notch
#

i have no clue i havent written any swift in years but he talks about it at the timestamp i linked

magic hazel
#

lmao

floral notch
#

he has some interesting things to say about that feature

magic hazel
#

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

radiant idol
#

You don’t need swift concurrency for async operations

#

Dispatch api still exists

magic hazel
#

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

radiant idol
#

And even then I’m doubtful that async await will work with builtin functions

#

Idk

#

If it does then great

magic hazel
#

Who knows

magic hazel
#

First I have to see if Swift 5.5 stable works on iOS 7

radiant idol
#

Asyjc await seems to have been introduced in 5.5

#

Yeah

magic hazel
#

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

radiant idol
#

We shall see

magic hazel
#

Hey hey!

#

That's what I like to see

#

iOS 7 Swift 5.5 works

#

Wonderful

radiant idol
#

Try some async operations

magic hazel
#

Now I wait for Xcode 13.2 to test concurrency

radiant idol
#

Ah

magic hazel
#

Can't bcus I stupidly downloaded Xcode 13.0

radiant idol
#

L

magic hazel
#

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

radiant idol
#

I say you should write some code to fetch an example json from an api

#

And see how well that works

magic hazel
#

Yeah I already have some example code at the ready

radiant idol
#

👍

#

Let’s hope it works

magic hazel
#

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

magic hazel
#

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

magic hazel
#

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

magic hazel
#

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

small sundial
#

Hey. Does someone know where to hook inorder to get the payload of APNs sent by Apple

magic hazel
#

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!

grim sparrow
#

I would hazard a guess

small sundial
#

Oh thank you so much. I'll look into it.

magic hazel
#

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

radiant idol
#

what line?

magic hazel
#

its annoying me deeply

radiant idol
# magic hazel

the apis are probably marked as @available(iOS 13.0.0, ...)

#

or just write code that works with the old style, idk

magic hazel
#

I made it so

#

But Xcode clearly doesn't use the compiler to run the check

magic hazel
#

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

radiant idol
#

there's probably some reason

#

see what I did there

magic hazel
#

indeed

magic hazel
#

its c++

#

it's os agnostic

radiant idol
#

right

magic hazel
#

its not like concurrency

#

concurrency is a diff beast

#

that im pretty sure is ios 13only

radiant idol
#

and for good reason

magic hazel
#

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

magic hazel
#

They lied

#

Oh my god

#

Concurrency works on iOS 10

#

I think

#

Wait

#

Maybe not

#

Grrrrrrr

#

Nvm wait

magic hazel
#

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

magic hazel
#

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

magic hazel
#

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

magic hazel
#

swift 5.5 works tho!

orchid fulcrum
#

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

magic hazel
#

💀

wooden yarrow
#

@orchid fulcrum i believe it might be better to just take in a block as the parameter like a callback

magic hazel
#

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.

hexed knot
#

No project is large though to do on your own

magic hazel
orchid fulcrum
magic hazel
#

It’d take solid months of dedicated time that I don’t have just to get it to display

hexed knot
#

So it'll take a few months

magic hazel
#

No I mean months of me just spending time on it

#

Except I’m a full time uni student lmao

wooden yarrow
#

you could use vaargs or something

orchid fulcrum
#

syntax is whats stopping me lol

magic hazel
#

The rendering code alone ranges from “won’t work” to “so over complicated I may as well write my own ui layer”

wooden yarrow
orchid fulcrum
#

just {code}

wooden yarrow
# orchid fulcrum

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

orchid fulcrum
wooden yarrow
#

hm

#

what if the block was a part of the var args

#

but that might be ass to handle

orchid fulcrum
#

yea

orchid fulcrum
#

i will try using c++, looks like lambdas may help

robust bough
#
==> 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

harsh junco
robust bough
#

i do

floral notch
orchid fulcrum
#

it was because of some block specifics. this works fine

#

but i would love to make the block the last argument somehow

heavy zephyr
#

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..

lime pivot
harsh junco
heavy zephyr
orchid fulcrum
#

@wooden yarrow i manually added macros to support upto 10 args lol, at least it works and looks nice now

wooden yarrow
#

cool

orchid fulcrum
#

that was a fast reply lol

light owl
#

@native dune Is it working

#

Are you working

#

Does she love you yet

harsh junco
light owl
#

Making money with slop ios apps

harsh junco
light owl
#

Yessss

native dune
native dune
slim bramble
#

fr

magic hazel
#

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

magic hazel
magic hazel
magic hazel
light owl
#

Ok

hexed knot
#

Btw typically when you copy the code from a repository you fork the repo

livid echo
#

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.

magic hazel
#

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

magic hazel
#
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

livid echo
#

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?

magic hazel
magic hazel
#

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

livid echo
magic hazel
#

¯_(ツ)_/¯

#

I just googled and found it

harsh junco
magic hazel
steady nest
hasty ruin
sonic totem
#

Thank god

steady nest
light owl
#

Clearly 10 am in the us needs more moderators because maxine sucks at her job

orchid fulcrum
#

i didn't use this but it seems like its installing the old dock via a script, you can check it out

rocky oriole
#

SIP, filevault, and that other thing can be turned back on though after it's done... right ?

timid furnace
#

no

#

well if by done you mean after uninstallation then yes

rocky oriole
#

I meant after the dock was replaced and the old launchpad could be used

#

But I guess it's a no then

pearl sail
#

Better a furry than a Brit and fortunately I am neither

hexed knot
livid echo
#

binary

livid echo
sonic totem
wooden yarrow
#

much less 2 people (javacards and jazelle)

faint timber
wooden yarrow
sonic totem
#

Java SE vs x86 baseband

heavy zephyr
robust bough
acoustic imp
native dune
#

holy autism

magic hazel
#

That's actaully fucking insanity

#

How does one have time for ts

#

😭

acoustic imp
light owl
magic hazel
#

real

slim bramble
magic hazel
#

Holy shit things are getting messy

#

I did not anticipate building Swift 5.10 for armv7 would be such a headache

#

but oh well

magic hazel
#

Idk how many times ive rebulit this

solar wing
magic hazel
#

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

magic hazel
magic hazel
orchid fulcrum
#

bro doing the most unhinged backports in apple history

magic hazel
#

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

#

💀

wind ravine
#

oh mb

magic hazel
#

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

lime pivot
magic hazel
#

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)

lime pivot
#

hah really

magic hazel
#

yep

#

it's actually laughable

#

i mean, they bundle swift with the OS now anyways

lime pivot
#

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

magic hazel
#

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

lime pivot
#

also, minor criticism that you should clean up the code style, eg you used 4 spaces when their standard is 2 spaces

magic hazel
#

Must be accident from copy paste

#

Depending on file

lime pivot
#

mostly in lib/ eg

magic hazel
#

The only copy paste i made 😭

lime pivot
#

it's not the worst thing, Xcode rudely changes code style like this

magic hazel
#

Indeed

#

It's alr i'll fix it

lime pivot
#

to this day, it's still unclear how you set the code style in your project file

magic hazel
#

Indeed

#

Xcode has many flaws

light owl
#

@native dune Get a job

lime pivot
#

you have to click the xcodeproj, then in the sidebar toggle the settings so they get written into the xcodeproj

native dune
#

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.

lime pivot
#

incredible

lime pivot
#

maybe one of these days Xcode engineers will discover that .editorconfig exists

magic hazel
#

Indeed

lime pivot
#

also this one is easy to miss but

magic hazel
#

Which

lime pivot
#

tabs

magic hazel
#

Oh

#

💀

#

I didn't even realise that was a thing wtf

#

I thought it autoconverted into spaces

#

😭

lime pivot
#

I have my browser set to tabs = 2 spaces because it tends to catch accidental mixed tabs/spaces like this 🙃

magic hazel
#

Anyways yeah i mean my changes are very stable and work fine, the stdlib changes will never be accepted tho

lime pivot
#

I'm curious to hear what the rationale is for opaque types being gated behind Swift 5.1

magic hazel
#

Me too

lime pivot
#

even if rejected, it'll bring an interesting conversation

magic hazel
#

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

lime pivot
#

it may well be that they just don't want to support features earlier than an official support cutoff, rather than it being impossible

magic hazel
#

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

tepid nacelle
#

hello kirb

magic hazel
#

Thank god for that

lime pivot
#

hi

tepid nacelle
#

how u doing

lime pivot
#

I am 🆗

tepid nacelle
#

good to hear

magic hazel
#

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

lime pivot
#

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

magic hazel
#

I don't know why it was removed

light owl
#

Cause they want people to use ios 7 and later

magic hazel
#

Nope

#

They allowed an iOS 6 build target for objc for so long

light owl
#

Ok

magic hazel
#

It was only ever swift that they limited

#

It's rather odd

light owl
#

Okay

magic hazel
#

Maybe they allow me a seperate branch

#

Or branches

#

One for STDLIB and one for 5.10

lime pivot
#

like I think that's pretty fair, if it can be merged without disturbing anything to do with other platforms

magic hazel
#

Yeah it can it doesn't affect jack

#

Wel...

#

Swift 5.10 doesn't

lime pivot
#

but since it's legacy support on an Apple platform specifically, maybe they'll be inclined to say no. here's hoping though

magic hazel
#

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

lime pivot
#

seems like those could be passed through a wrapper function that uses munmap() if it exists, otherwise either use a fallback or do nothing

magic hazel
#

yeah rn i just blanket switch to free

lime pivot
#

hopefully that's fine

magic hazel
#

I mean, i've filled memory and had 0 issues so

#

I can only assume it is

lime pivot
#

I only say that because Win32 has multiple places you can allocate memory, and all must be freed with the matching function

magic hazel
#

The reason I think it'll be fine is Swift 2.3 never used munmap, at least, not in this respect

lime pivot
#

LocalAlloc/GlobalAlloc + LocalFree/GlobalFree

magic hazel
#

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

lime pivot
#

and of course HeapAlloc/HeapFree

magic hazel
#

Ah, i see why foundation didnt cause any issues

#

No url mentions to be seen

#

Aha

#

There is nothing

#

That's why

lime pivot
#

yeah, this is also what the concept of zones is from, which zone you're allocating in

magic hazel
#

The method is just, never called

magic hazel
#

Just using a different API to do so

lime pivot
#

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

magic hazel
#

Yeah okay so nothing good there

magic hazel
magic hazel
#

Whoops

#

Misclick

lime pivot
#

lmao

magic hazel
#

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

lime pivot
#

this doesn't surprise me, they keep on not updating or not testing their minimum version

magic hazel
#

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

lime pivot
#

same as it saying "iOS 7+" all this time when it's broken on iOS 7

magic hazel
#

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

lime pivot
#

it could work now. it didn't work at least in the earlier 5.x days

magic hazel
#

Maybe my changes fixed iOS 7 as well

tepid nacelle
#

ios 5-26 app eta

magic hazel
#

6

#

And eta maybe soon

tepid nacelle
magic hazel
#

I'm trying to get the Swift Cross UI devs onboard

tepid nacelle
#

sorry

lime pivot
#

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

magic hazel
lime pivot
#

got a device, tested it, crashes with a missing libobjc symbol in libswiftCore

magic hazel
#

yep

#

thats what i had

#

i know what ur talking about

#

okay

#

that error relates to build target

lime pivot
#

maybe it could be made to work now, but I abandoned iOS 7 support a long time ago

#

could bring it back, idk

magic hazel
#

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

lime pivot
#

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

magic hazel
#

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 }
}```
lime pivot
#

2.2 jumped all the way up to >= 10.0 apparently

#

oh, and libswift 4 in fact not 5

magic hazel
#

You already have 13 stuff marked with compile checks

#

So

lime pivot
#

yeah, I make sure of this

magic hazel
#

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 {```
lime pivot
#

I'm rusty now but I at least previously knew my compatibility hah

magic hazel
#

Yeah this should work fine on iOS 6

lime pivot
#

oh the safe areas of the terminal are my least favorite part of the entire app

magic hazel
#

Yeah i have to add a shim for safearealayout evntually

#

It's going to be so fucking annoying to do

lime pivot
#

it was always broken in some way, different ways for different eras

#

like pre-safe areas, safe areas, and then keyboard safe areas

magic hazel
#

Oh shit wait what's your build environment

#

Xcode

#

Cool

lime pivot
#

yeah

magic hazel
#

Alr cool I'll just download the project and build

#

No storyboard?

#

aw man you use theos

lime pivot
#

lmao

#

only for packaging in this case

magic hazel
#

so i can't build without it?

lime pivot
#

you can run from Xcode but it’ll be sandboxed and can’t start a terminal

magic hazel
#

We don't care about that we care about if it runs

lime pivot
#

but the app will work enough to test everything else

magic hazel
#

Indeed

#

Lets just test a regular nonmodified build

lime pivot
#

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

magic hazel
#

bro

#

come on

#

really

#

ahh i know whats ios 10+

#

bunch of log stuff

light owl
#

Okay

magic hazel
#

Oh some other stuff too alr

#

So with some patching it could run on iOS 6

floral notch
magic hazel
lime pivot
#

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 appleshrug

#

I’d feel bad to take people’s money for false hope though

magic hazel
#

I mean fair

#

Jailbreaking is dead

lime pivot
magic hazel
#

Yeah I guess so

quaint rain
#

SSHTerm

lime pivot
#

true

quaint rain
#

or sthm like that

magic hazel
#

Honestly atp I'm actually more impressed with how good Apple's security is than I am disappointed with the death of jailbreaking

quaint rain
lime pivot
#

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”

magic hazel
lime pivot
#

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

magic hazel
#

I see

#

Wait hold up that got me thinking

magic hazel
#

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

quaint rain
#

Or have a mastodon made for just stock things also with a diff name

#

Ultracursus or sthm goofy

magic hazel
#

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

cloud yacht
#

I just wish we were allowed to do jailbreak stuff without exploits

quaint rain
#

Not to mention checkm8 was a miracle

quaint rain
magic hazel
#

Checkm8 was the silver bullet for basically a decade

cloud yacht
magic hazel
#

It's probably the single most important iOS exploit in jailbreak history

jagged willow
#

if apple made most decent jb pros a feature

quaint rain
#

Also why tf did unc0ver end up almost as recognizable as checkra1n

jagged willow
#

jailbreaking would be pointless

magic hazel
#

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

jagged willow
#

even though jailbreaking is already kinda pointless

jagged willow
magic hazel
#

It's given us so much insight into iOS as a whole

jagged willow
#

honestly

#

the only reason

#

checkm8 ipads

#

are even worth it

#

is because of checkm8 itself

magic hazel
#

Obviously

#

They're terrible devices

jagged willow
#

they are absolutely terrible for daily use

magic hazel
#

Apple made a monumental mistake in supporting them this long

jagged willow
#

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

quaint rain
jagged willow
#

as the 6th-8th gen ipads were commonly used not even 5 years ago

jagged willow
#

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

magic hazel
#

How is gmail this big

#

😭

lime pivot
#

the naming is confusing but can't really fix it now, ActivityPub isn't great at moving hostnames

tepid nacelle
torn oriole
#

hundred

#

proprietary

#

libraries

magic hazel
#

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

grim sparrow
torn oriole
#

I love how it's since grown 200mb

magic hazel
#

@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

lime pivot
magic hazel
#

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

lime pivot
#

they are more direct than they need to be, but sigh par for course I guess

#

engineers do be like that

magic hazel
wind ravine
#

are there any configuration profiles i can use to test stuff?

timid furnace
#

test what

wind ravine
#

people are bootlooping and im trying to figure out whats causing it

timid furnace
#

i uh

#

what

#

if you're bootlooping i don't think config profiles are going to help you

wind ravine
#

i think it might be causing it

#

its something common with the bootloops

timid furnace
#

what are you even doing

wind ravine
#

im trying to replicate the bootloops

#

a lot of the reports seem to be using some app profile thing

faint lionBOT
#
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.

wind ravine
#

im trying everything but i cant replicate it

#

this is what all the reports seem to say:

  1. they try to apply something
  2. Nugget errors when applying (various errors, some happening before restoring)
  3. 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

azure pivot
#

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

robust radish
#

there’s a platform field in the Mach header that indicates iOS or simulator (or other platforms)

floral notch
#

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

faint timber
#

notlikethis shell pipe

magic hazel
#

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

magic hazel
#

Man the Swift build process really fell off after Swift 5.1

#

Shit was so simple

light owl
#

Okay

acoustic imp
#

Okay

lime pivot
#

there's a more complete version of this in Zebra, but, GPL

magic hazel
light owl
#

No thx

#

Not fond of installing random ipas on my phone

floral notch
magic hazel
hexed knot
#

Does it pass the stdlib tests though

magic hazel
#

at least the ones that dont use ios 7 apis or concurrency

magic hazel
light owl
#

What does this do

magic hazel
#

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

light owl
#

Okay

drifting dust
#

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

sonic totem
#

Anything is bypassable if you want it to be thishowitis

magic hazel
#

Jesus christ i fucking hate C

#

And for that matter C++

#

they always come back to get me

#

atomics dont exist on ios 6

faint timber
#

yeah it was lacking far behind even a recent as 14

magic hazel
#

I’m getting ___atomic_store

#

Idk Whats calling it

#

Idk why

#

Anyone have an idea

faint timber
#

no backtrace?

magic hazel
#

I can see the tasks but no what they’re doing

faint timber
#

there were symbolicators back then

magic hazel
frank fossil
# magic hazel

how come older iOS had a better looking crash reporter in plaintext instead of json

faint timber
#

its probably still on bigboss

frank fossil
#

oh I missed that. had a 3GS (with an untether when I received it) with plaintext crash reporting that confused me

faint timber
#

I remember using this way back when

#

that was the standard

magic hazel
#

this is an ondevice thing?

faint timber
#

yes

magic hazel
#

rip

faint timber
#

but it should run fine on mac

magic hazel
#

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

frank fossil
robust radish
#

they did change the crashlog format. in the osanalytics framework there are methods to get an “old style” report (OSALegacyXform)

magic hazel
#

what would usually call refcount

faint timber
#

free and alloc

#

aka init

magic hazel
#

so everything

#

but it doesnt usually crash

#

its only in this library

faint timber
#

well what calls init is your custom built lib most likely

#

just build with dSYM?

magic hazel
#

its not a custom built lib per se

#

its just a swift package

faint timber
#

thers probably debug arg

#

disable strip calls in the make project

#

-g -gsplit-dwarf -O0 -DDEBUG

magic hazel
#

where would i pass that into xcode? is that a swift argument or a c argument

robust radish