#development

1 messages · Page 245 of 1

magic hazel
#

apps that are 32 bit cant be distributed

#

full stop

#

😭

#

i need xcode to lift its armv7 nonsense

#

so you could run this on modern macos

#

modern xcode can support ios 9 i think

#

ios 8 requires sum shit that just doesn't exist

magic hazel
#

hoping i dont have to rebuild llvm

slim bramble
#

It’s not even that long

magic hazel
grim sparrow
#

was gonna say

#

dude is on the trash can

slim bramble
#

😭

magic hazel
#

You sure about that one

grim sparrow
#

its a few minutes on my m3 pro

magic hazel
#

Takes 30 on this

slim bramble
#

Yeah m4 pro is insanely fast

magic hazel
#

Swift is fast

#

llvm is not

#

ye im hoping to get an m4 pro at some point

#

but

#

i have to get from corp

slim bramble
#

Just put -j20

magic hazel
#

bcus its way too expensive

slim bramble
magic hazel
#

apple overcharges out the wazoo

#

plus no upgradeable anything so you better be happy with what you pick

#

anyways

#

corp pays so idc

#

gonna take a few months tho

#

mean time this mac pro isnt terrible

slim bramble
gentle grove
slim bramble
#

^

gentle grove
#

Jk cross compilation sucks ass

magic hazel
#

✨ 🇦🇺 ✨

#

base m4 pro

#

and obv i wouldnt get this

#

bcus 512gb is unusable

#

and idek what apple is smoking in terms of storage costs

gentle grove
#

they're cost optimizing

#

well profit optimizing

magic hazel
#

300 bucks

#

for 512 extra

#

of storage

gentle grove
#

cost from the perspective or the company

magic hazel
#

is actually a scam

#

like

#

a full on

#

proper

#

scam

#

that is a scam

#

like ima level with you here

#

this is genuinely giving proper scam

#

that 8tb being 3.6k

#

is genuinely fucking insane

#

they linearly scale price after 2tb

#

that is so fucked

#

an 8tb nvme is about 1.3k

#

how the fuck

#

do you mark it up 2k

#

like actually

gentle grove
#

Damn llvm must be way smaller for macos target or something

#

llvm build times on 285k are 4 mins on linux

#

and it should be significantly faster than m3 pro in raw performance I'm pretty sure

magic hazel
#

its apple llvm

#

bro without tg pro my mac pro would have actually been dead weight at first compile

#

even with full blast fans im sitting stable at 85c

#

apple doesnt even turn on the fans

#

😭

magic hazel
#

when you design a program to run on a specific set of hardware

#

and you design it

#

to compile

#

for that hardware

#

theres no doubt

#

itll be faster

gentle grove
#

that's not how this works

magic hazel
#

also

#

theres 2 llvms

#

for swift

#

its apple swift llvm

#

sep proj

#

sep branch

#

its probably cut down

#

a bit

gentle grove
#

So that goes back to what I said originally

#

can you type in a sentence

grim sparrow
#

theres like 10 forks of llvm in the mix

magic hazel
#

no

grim sparrow
#

that exist in the world

magic hazel
#

well

#

10 big forks

grim sparrow
magic hazel
#

thousands of others

#

ye

#

are u using apples fork

#

or just

#

straight llvm

gentle grove
#

yeah but nobody uses this shit

#

lame

magic hazel
#

swift 5.10 compilation using the following command takes about 1.5 hours on my mac pro including llvm i think?

    --release \
    --ios \
    --install-prefix=/tmp/swift-ios-toolchain \
    --darwin-deployment-version-ios=7.0 \
    --extra-cmake-options="-DLLVM_BUILD_RUNTIME=OFF -DLLVM_BUILD_COMPILER_RT=OFF -DSWIFT_INCLUDE_TESTS=OFF" \
    --skip-build-benchmarks \
    --skip-test-ios \
    --skip-test-ios-simulator \
    --skip-build-linux \
    --skip-build-freebsd \
    --skip-build-cygwin \
    --skip-test-swift```
#

actually maybe its more like 1

#

idk

#

i try and skp everything thats not absolutely required for what im doing

#

compiler rt adds like

#

another 30-60 mins

#

and its completely useless for what im doing

#

then tests add a tonne

#

and they're useless too

#

lmao i love how many warnings u get when compiling swift

magic hazel
#

aw man

#

didnt fix it

#

oh well

#

thats alr

manic forum
#

chat

#

i said i'd take a break from obsessively making more shijima ports but i think i'm gonna relapse

manic forum
magic hazel
#

Did Blud leave

#

Or get banned

tepid olive
fervent frigate
#

he got banned

fervent frigate
#

it’s truth trust

light owl
snow charm
#

yo

#

do we know who the dev of Sideloadly is?

#

first time I'm trying to use it, and... they mapped alt-G to open a settings popup

#

which seems really fucking counter-productive for an app that wants you to type in your AppleID...

#

I can only assume they've never tested the macOS version?

native dune
#

@kind herald Can you snipe

faint lionBOT
#
nebula deleted a message

im pretty sure its part of iosgods but I could be wrong

light owl
#

Thanks

magic hazel
#

really?

#

damn

#

thats crazy

velvet path
#

I’ve never used that shortcut in my life and I’ve used the macOS version before (when my daily laptop’s screen proceeded to cease to exist) and haven’t had issues

torn oriole
snow charm
velvet path
#

I have a normal keyboard and just use the shift+function key thing

torn oriole
#

Is this a keyboard layout thing I'm missing out on

#

Yeah

velvet path
#

it’s possible they just didn’t account for that specific shortcut because I’ve never heard of that either

snow charm
#

okay fuck me, this is a Swiss layout thing then

#

and Google fucked me too with regional search results

#

I hate all of tech

#

I guess this just downgrades it to "using alt commands is a bad idea because they're used to type things, use cmd instead"

magic hazel
#

grr svgs are the worst

#

how do you convert svgs to a font?

magic hazel
#

Done

#

So much better

#

Fonts are pissfuck small

#

They’re fast

#

This is far superior

#

The dream may come true

#

Don’t need svg libraries either

gentle grove
magic hazel
#

Does it basically all for you

gentle grove
magic hazel
#

Simple python script

#

Apple has really cooked up tho like

#

I get why they did what they did

#

But sf symbols are horribly optimised

#

Dynamically calculates path

#

💀

#

And I think it’s so they can do their colour and shading shenanigans

radiant idol
#

they also have animations between symbols

magic hazel
#

true

#

i mean

#

they use a number of private apis

#

honestly i dont know how they do their rendering

#

and obviously my implementation wont have all that fancystuff

#

youll get symbols with identical api and sizing and behaviout, as well as the ability to tint

#

having it be a font makes a lot more sense than loading an svg

#

ngl

#

bcus all of what i said is easily doable

#

plus now you dont need to import 62k items

#

😭

#

realistically apple shouldnt be able to get upset with me asw

#

HA it works

#

lets fucking go i knew this shit would be easy

#

now api backporting

#

plus this is sf symbols 7

#

so you can use this on like

#

ios 15

#

to get ios 26 symbols

magic hazel
#

okay

#

s'

#

update

#

it works on ios 6

#

bu not json lookup

#

so

#

im going to need to hardcode

#

6k symbols

#

2.5mb json

#

💀

magic hazel
#

LMAO

#

i figured out why

#

it had the same freaking table

#

FOR EVERY WEIGHT

#

no wonder on ios 6 it crashes

#

💀

#

then again

#

now its compiled

#

it takes forever to compile

#

but whtever

#

at least at runtime its instant lookup

#

it is a 6k long file tho

#

💀

#

of just

#

json

#

1 big dictionary

#

wait

#

i wonder why on ios 7

#

it doesnt crash

#

but on ios 6 it does

#

odd

#

bcus its not my method of presenting

#

if u use direct hex

#

it works fine

#

so it has to be json

#

okay..

#

nvmn

#

not gonna compile

#

holy fuck

#

it hasnt even finished the armv7 slice

#

Anyone know a good solution?

#

I did fix it

#

But it’s still slow

#

Bcus yhe json although no longer 2.5mb

#

It’s still 25kb

#

And 6k lines

#

I deeply do not want to precompile a 6k dictionary

magic hazel
#

k so

#

i need help

#

the font is like

#

offsetting the text kinda??

#

anyone know why this is happening?

grim sparrow
#

very difficult to debug otherwise blind

lyric heron
#

@wind ravine hi

kind herald
#

@wind ravine hi

floral notch
snow charm
indigo peak
snow charm
#

but it's still just... bad design

indigo peak
fading shell
magic hazel
#

But

#

The one of the left is the real SFSymbol

#

And the one on the right is my font

grim sparrow
#

yes but

#

its significantly more difficult to help you debug the code

#

without seeing the code

magic hazel
#

Oh like

#

My rendering code?

#

Which code

#

The code that turns the font into an image

#

Or the plain NSAttachment

#

I’ll send both

slim bramble
magic hazel
#

@grim sparrow rendering code part 1

import UIKit
import CoreText

// MARK: - Symbol Weight
public enum SymbolWeightA: String {
    case ultralight, thin, light, regular, medium, semibold, bold, heavy, black
}

// MARK: - Symbol Scale
public enum SymbolScaleA {
    case small, medium, large
}

// MARK: - SFSymbols Manager
public class SFSymbols {
    public static let shared = SFSymbols()
    
    private var lookup: [UInt32: UInt16] = [:]
    private var registeredFonts: Set<String> = []

    private init() { loadLookupDat() }

    private func fnv1aHash(_ s: String) -> UInt32 {
        var h: UInt32 = 0x811C9DC5
        for byte in s.utf8 {
            h ^= UInt32(byte)
            h = (h &* 0x01000193) & 0xFFFFFFFF
        }
        return h
    }

    private func loadLookupDat() {
        let bundle = Bundle.module
        guard let url = bundle.url(forResource: "lookup", withExtension: "dat"),
              let data = try? Data(contentsOf: url) else {
            return
        }

        var cursor = 0
        while cursor + 6 <= data.count {
            let hash = UInt32(data[cursor]) |
                       UInt32(data[cursor + 1]) << 8 |
                       UInt32(data[cursor + 2]) << 16 |
                       UInt32(data[cursor + 3]) << 24

            let code = UInt16(data[cursor + 4]) |
                       UInt16(data[cursor + 5]) << 8

            lookup[hash] = code
            cursor += 6
        }
    }

    private func registerFontIfNeeded(weight: SymbolWeightA) {
        guard !registeredFonts.contains(weight.rawValue) else { return }
        let bundle = Bundle.module
        if let url = bundle.url(forResource: "SFSymbols-\(weight.rawValue)", withExtension: "ttf") {
            CTFontManagerRegisterFontsForURL(url as CFURL, .process, nil)
            registeredFonts.insert(weight.rawValue)
        }
    }

    public func font(weight: SymbolWeightA, size: CGFloat) -> UIFont? {
        registerFontIfNeeded(weight: weight)
        return UIFont(name: "SFSymbols-\(weight.rawValue)", size: size)
    }

    public func unicode(for name: String) -> String? {
        let hash = fnv1aHash(name)
        guard let code = lookup[hash],
              let scalar = UnicodeScalar(UInt32(code)) else { return nil }
        return String(scalar)
    }
}```
#

part 2

// MARK: - UIImage Backport Extension

public extension UIImage {

    /// Backport SymbolConfiguration for iOS <13
    @available(iOS, introduced: 6.0, obsoleted: 13.0)
    struct SymbolConfigurationA {
        public var pointSize: CGFloat
        public var weight: SymbolWeightA
        public var scale: SymbolScaleA

        public init(pointSize: CGFloat = 17, weight: SymbolWeightA = .regular, scale: SymbolScaleA = .medium) {
            self.pointSize = pointSize
            self.weight = weight
            self.scale = scale
        }
    }
    
    typealias SymbolConfiguration = SymbolConfigurationA

    @available(iOS, introduced: 6.0, obsoleted: 13.0)
    convenience init?(systemName name: String, withConfiguration config: SymbolConfigurationA? = nil) {
        let config = config ?? SymbolConfigurationA()

        var fontSize = config.pointSize*1.22
        switch config.scale {
        case .small: fontSize *= 0.75
        case .medium: break
        case .large: fontSize *= 1.25
        }

        guard let unicode = SFSymbols.shared.unicode(for: name),
              let font = SFSymbols.shared.font(weight: config.weight, size: fontSize) else { return nil }

        let attrString = NSAttributedString(string: unicode, attributes: [
            .font: font,
            .foregroundColor: UIColor.black
        ])
        let imageSize = attrString.size()

        UIGraphicsBeginImageContextWithOptions(imageSize, false, 0)
        attrString.draw(at: .zero)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        guard let cgImage = image?.cgImage else { return nil }
        self.init(cgImage: cgImage, scale: UIScreen.main.scale, orientation: .up)
    }

}
#

part 2 is really the "rendering"

#

part 1 is symbol selection

#

and heres the actual app code

#
import UIKit
import SFSymbolsCompatKit
import UIKitCompatKit
import UIKitExtensions

class ViewController: UIViewController {
    var viewStack: UIStackView!
    
    
    override func viewDidLoad() {
        viewStack = UIStackView()
        viewStack.axis = .vertical
        viewStack.distribution = .fill
        viewStack.alignment = .center
        
        let attachment = NSTextAttachment()
        attachment.image = UIImage(systemName: "circle", withConfiguration: .init(pointSize: 100, weight: .regular, scale: .medium))

        let imageString = NSMutableAttributedString(attachment: attachment)
        let textString = NSAttributedString(string: "Please try again")
        imageString.append(textString)

        let label = UILabel()
        label.attributedText = imageString
        label.sizeToFit()
        
        viewStack.addArrangedSubview(label)
        view.addSubview(viewStack)
        
        viewStack.pinToEdges(of: view)
    }
}```
grim sparrow
#

var fontSize = config.pointSize*1.22
switch config.scale {
case .small: fontSize *= 0.75
case .medium: break
case .large: fontSize *= 1.25
}

#

are you sure these are the right magic numbers

magic hazel
#

ignore those rn bcus im using medium

#

which is regular

#

and i have regular

#

in

#

the real one

#

medium is no scale default is no scale

#
import UIKit
import UIKitExtensions

class ViewController: UIViewController {
    var viewStack: UIStackView!
    
    
    override func viewDidLoad() {
        viewStack = UIStackView()
        viewStack.axis = .vertical
        viewStack.distribution = .fill
        viewStack.alignment = .center
        
        let attachment = NSTextAttachment()
        attachment.image = UIImage(systemName: "circle", withConfiguration: UIImage.SymbolConfiguration(pointSize: 100, weight: .regular, scale: .default))

        let imageString = NSMutableAttributedString(attachment: attachment)
        let textString = NSAttributedString(string: "Please try again")
        imageString.append(textString)

        let label = UILabel()
        label.attributedText = imageString
        label.sizeToFit()
        
        viewStack.addArrangedSubview(label)
        view.addSubview(viewStack)
        
        viewStack.pinToEdges(of: view)
    }
}```
#

real code^

#

that part is the same

fading shell
#

wrong terminal pal

magic hazel
#

indeed

#

anyways yea thats the code for it anyways

snow charm
#

tfw Preview.app wants me to use cmd+shift+¨ to zoom in, because Apple uses some wrong layout info

magic hazel
#

lmao mac keybinds are so awful

#

"cmd is the one key to do it all" my ass

fading shell
magic hazel
#

i rebind control to cmd on every mac i use icl

#

and honestly im considering just mapping the function key

#

its close to where control is on every other keyboard

#

idk why apple decided to be special

fading shell
#

there is no / key on my keyboard

magic hazel
#

WHAT

#

what kind of keyboard

#

are you using

#

😭

fading shell
#

it's shift + 7

magic hazel
#

the fuck??

#

bro what keyboard is this

fading shell
#

german

#

qwertz

magic hazel
#

why teh fuck

#

does a german keyboard

#

not have /

#

how do you do any terminal work

#

😭

#

shift 7 is painful vro thats cooked

#

so what

fading shell
#

shift + 7

magic hazel
#

ctrl / is

#

ctrl shift 7

#

💀

fading shell
#

no

#

it doesn't work

magic hazel
#

oh it just doesn't work

#

wild

fading shell
#

every keybind that's ctrl + /

#

just doesn't work for me

magic hazel
#

thats cooked

fading shell
#

yes

magic hazel
#

😭

#

i mean honestly

#

if they're gonna use

#

an english keyboard layout

#

just put the extra chars in the numbers

#

or change the layout

#

okay apple wtf

#

apple is definitely doing tricks with sf symbols

#

im 100% certain of it

#

they are NOT treating it like a regular uiimage

#

i mean for one, the spacing between my symbol and the text is COMPLETELY different

#

ima try and manually fix that bounding box

#

gonna regen the fonts ig

#

k well

#

ive regened the fonts

rocky oriole
#

ok

magic hazel
#

ok wtf

#

apple is doing smthing

#

no matter how i size my font

#

its always that bounding box

magic hazel
#

k well

#

ive made it a bit better

#

its still imperfect

#

but its better

#

atp

#

ima just accept this is a limitation

magic hazel
#

Realistically you're going to have to recenter it anyways and most use of sfsymbols is gonna be an sfsymbol on its own

#

so i should be okay

#

You'll also have to manually copy the fonts from the pkg but again it shouldn't be too bad

#

ughhhh

#

template rendering is ios 7+

#

so no colouring on ios 6 what

#

hmmm maybe i just provide a colour api that directly colours it for those on ios 6

#

yeah so tintcolor and template rendering is ios 7+ so i'll just provide a method that allows manually setting the colour on ios 6

rocky oriole
#

-# this was htrowiis idea

magic hazel
#

yikes

#

i mean fair

#

but then again

#

thats what a devlog is

#

this one is just public

#

lmao

rocky oriole
#

a devlog

#

is

#

not

#

typing

#

like this

magic hazel
#

well thats how i type

#

¯_(ツ)_/¯

#

it just is the way that it is

#

if i have a long thought -> long message

#

continuous burst of short thoughts -> continuous burst of short messages

#

🔥

#

works perfectly on its own

alpine star
#

ease in out?

#

make it do like a pop

#

shrink to centre and expand

light owl
magic hazel
#

i just backport

#

alr so

#

what is something people would like to see backported to legacy ios (mainly asking developers)

native dune
#

Nothing

light owl
#

Nothing

magic hazel
#

guess ill find more stuff myself then 🔥

rocky oriole
magic hazel
#

different question, anyone know some popular modern open source uikit apps?

#

or tweaks

#

either one is fine

rocky oriole
#

is it that hard to just leave a moderator alone and not ping them for no reason

magic hazel
#

actually

#

i know what ill backport

#

scenedelegate

pliant fossil
rocky oriole
#

here it comes

gentle grove
kind herald
#

Fuck off word

magic hazel
#

are you allowed to have 2 binaries in an ios app

#

not for app store

#

but sideloaded

pliant fossil
grim sparrow
#

Cause like

#

Frameworks are binaries

#

Extensions are binaries

magic hazel
#

I want to have a loader application

#

Yhat at runtime picks between two binaries

#

One for iOS 3-5

#

One for iOS 6+

grim sparrow
#

How would you spawn

magic hazel
#

?

grim sparrow
#

Not allowed in sandbox

magic hazel
#

Grrrrrrrrr

#

Is there any method

grim sparrow
#

Not for stock

magic hazel
#

L apple

#

Grrrr that’s actually really really annoying wtf

grim sparrow
#

Unless you want to start using exploits but then you’ll need different exploits for every version you intend to target

magic hazel
#

Yeah that’s not

#

Gonna happen

grim sparrow
#

But why do you need to do this

magic hazel
#

iOS 3-5 uses the person who made the clients ui

#

In objective c

grim sparrow
#

But like

#

You can bundle objc and swift in one binary

magic hazel
#

You can’t target armv6 or iOS 3 in Xcode 😭

#

And the app will crash if any swift code or even the swift dylibs are called

grim sparrow
#

Weak link

magic hazel
#

You can’t weak link the swift runtime what 😭 you can do that for a static library but Xcode doesn’t listen for swift

#

Even if you provide the dylibs yourself

#

As soon as it detects swift code

#

In the same place

#

At least in my testing

#

Even if it could

#

iOS 3 and armv6

#

NEVER happening in modern Xcode

grim sparrow
#

Does iOS 3 support multi arch binaries

magic hazel
#

Yes

#

I think

grim sparrow
#

Then just build the slices separately and merge them

magic hazel
#

One issue

#

There’s 2 armv6 devices yhat support 3-5

#

There’s like

#

10

#

Armv7

#

Remember old Xcode can’t compile yhe swift code

#

So either armv7 for 3-5 is cut

#

Or armv7 for 6+ is cut

#

How are you allowed to call a framework binary but not a main application one

#

That makes no sense Whats the point of that restriction

#

If you’re going to run malicious code just do it in a framework

#

😭

grim sparrow
#

Because it’s still executing in your process

magic hazel
#

Right it’s not spawning an entirely new one

grim sparrow
#

And it goes through Apple review

magic hazel
#

I MEAN OKAY

#

FOR APP STORE

grim sparrow
#

Their biggest fear is people downloading binaries and posix spawning them

magic hazel
#

BUT WHY A BLANKET OS LEVEL BAN

#

😭

grim sparrow
#

nonono

#

The app that they reviewed containing code of download another binary and execute it

magic hazel
#

Ahhhhhh

grim sparrow
#

That’s locked behind a feature flag that’s disabled during review

magic hazel
#

So they os level ban it

#

So it can’t be like

#

Remotely activated

grim sparrow
#

Sure

magic hazel
#

Why not just provide an Xcode debugging flag then

#

That Apple can easily see

#

You’ve enabled

#

And prevents all builds with it turned on

#

To be submitted

#

Like they do with JIT

grim sparrow
#

Eh we only got jit so the debugger works

magic hazel
#

I know but they could do the same thing

magic hazel
#

😭

#

Idek why yhe provide yhe option

#

It doesn’t work

#

A first I thought it was because I had a free account

#

But even with a paid developer account

#

It still doesn’t work

frank fossil
# magic hazel So they os level ban it

it’s locked behind the no-sandbox/container entitlement.. like yeah it could be straight up a privilege escalation. TrollStore wouldn’t need no “installation method”

magic hazel
#

but like

#

can't every single os do it?

#

like literally every single os

gentle grove
gentle grove
#

What's happening here above

magic hazel
#

i want to have a loader binary

#

that at runtime

#

picks between two binaries

#

one for ios 3-5

#

one for ios 6+

#

i cant do that

#

bcus apple doesnt let you spawn another binary

#

😭

gentle grove
#

Spawn another process where the new process's executable is still inside your reviewed app code?

magic hazel
#

who is reviewing shit

#

this is ios 5

#

also no

#

what id do is

#

compile ios 3-5 app

#

compile ios 6+

#

plop both bundles

#

into the loader

#

make a loader binary

#

that picks at runtime

#

which to process to spawn

#

goes into the bundle

#

uses posix spawn to startup the process

#

and boom

gentle grove
#

so the code that would be in that

#

Just asking from the perspective of apple

magic hazel
#

yes sure but i dont want to submit jack

#

i get it

#

but

#

who cares about that

#

i just need it to do it

#

apple wont let me regardless

gentle grove
#

Because that comes up with the logic for why you would be blocked

magic hazel
#

personal use?

#

enterprise use?

gentle grove
#

No

magic hazel
#

no i know the answer is no

#

but

#

those are two perfectly valid cases

gentle grove
#

It seemed like you were asking why Apple was blocking you from spawning a process, so I'm trying to figure out exactly what you do, to try and come up with why they would block it

magic hazel
#

well i know why i get it

#

i just dont know why they dont let you disable it

#

for non app store apps

#

if you have a jailbreak already is the restriction lifted system wide?

gentle grove
#

they probably aren't designing with people jailbreaking in mind, to make a bypass for supporting g it

magic hazel
#

there is no way they have an entire operating system

#

where not a single system process

#

uses posix spawn

gentle grove
magic hazel
#

sure but it means that the os can do it, so my question is, on jailbroken ios, where you can mostly do whatever, is that restriction lifted? i know you can run unsigned binaries, but i dont know about this

sonic totem
#

If you’re unsandboxed you can use posix_spawn()

#

That is what stops you

#

And with a jailbreak you can run unsandboxed

gentle grove
#

^

#

the os isn't gonna suddenly act completely different the moment you jb

gentle grove
orchid fulcrum
#

has anyone dealed with macos safari hooking before ? what do i need to do to add a button to the toolbar ? simply adding a subview makes it so its not clickable so i guess i need to use NSToolbar api, can anybody point me in the right direction

fervent frigate
#

sand fox

fervent frigate
#

ios has this in it

#

if jailbreak then

floral notch
#

incredibly swift turnaround, i might add. took only 4 years. impressive

magic hazel
#

Actually I got an idea

#

I build the 6+ binary i to the loader

#

So that I no longer have to spawn a binary on modern iOS

#

But on iOS 3-5 where un sandboxxing should be trivia

#

I spawn a binary

sonic totem
#

CoreTrust bypass too you’re right

sonic totem
#

But why do you need to spawn things

#

Surely there’s a better solution

magic hazel
#

There isn't

#

You can't compile swift for ios 3-5

#

You can't even compile a binary for iOS 3 that has swift on ios 6

#

because modern xcode doesn't support ios 3

hexed knot
#

🤦‍♂️

magic hazel
#

It's not my choice

#

I can't drop support because it's not my client

light owl
#

Who tf still using ios 3

hexed knot
#

Not a single person

fading shell
#

But there is a point where it just becomes ridiculous

#

iOS 3 is one of those points

floral notch
#

iOS 3 is probably easy to emulate

magic hazel
#

i mean they wanna do it

#

¯_(ツ)_/¯

#

and they're doing it

#

they already have

#

it already works

#

lmao

floral notch
#

i respect it

fading shell
#

Do they have a reason

light owl
#

Autism

magic hazel
#

they could

#

so they did

#

i dont see it as any more dumb that any other hobby

#

ppl would say the same stuff about jailbreaking

#

😭

fading shell
#

If it's a hobby, fair

#

Client sounds very business-y

magic hazel
#

i guess

#

it's a proper client

#

i mean

#

their setup is odd

#

they dont even use xcode

#

they manually compile via clang

#

on linux

#

they use scons

sonic totem
magic hazel
#

i mean results are results i cant complain

light owl
#

@native dune Can you figure out how to transmit images of local media on iphone to an accessory connected over bluetooth using iap2 and externalaccessory and mfi

native dune
#

MediaItemArtworkFileTransferIdentifier

light owl
native dune
#

Ok

light owl
#

Fix it

#

@native dune Fix it

kind herald
#

@native dune Can you figure out how to transmit images of local media on iphone to an accessory connected over bluetooth using iap2 and externalaccessory and mfi

light owl
#

@native dune Can you figure out how to transmit images of local media on iphone to an accessory connected over bluetooth using iap2 and externalaccessory and mfi

slim bramble
#

@native dune Can you figure out how to transmit images of local media on iphone to an accessory connected over bluetooth using iap2 and externalaccessory and mfi

quaint rain
#

@native dune Can you figure out how to transmit images of local media on iphone to an accessory connected over bluetooth using iap2 and externalaccessory and mfi

rocky oriole
light owl
#

@native dune Can you figure out how to transmit images of local media on iphone to an accessory connected over bluetooth using iap2 and externalaccessory and mfi

light owl
#

Youre useless

slim bramble
native dune
#

This vibe coding shit not for me bruh

wooden yarrow
#

vibe coding has bad vibes

native dune
#

It pmo I don't know how people do this

#

Nothing gayer than giving an AI instructions over and over because ur shits not working

magic hazel
#

😭

native dune
#

Well it can but that's not the solution here

kind herald
slim bramble
#

friendly fire

light owl
light owl
magic hazel
#

decided ill just make my own dc client from scratch

#

🔥

#

i love swift

#

makes networking so damn easy

magic hazel
#

There is this guy

#

who is determined

#

to tell me

#

swift runs on ios 5

#

and im lying

#

😭

#

like blud what 😭

hasty ruin
#

like blud what 😭

torn oriole
#

like blud what 😭

light owl
#

like blud what 😭

kind herald
#

like blud what 😭

hallow scarab
#

like blud what 😭

quaint rain
#

like blud what 😭

clear lichen
#

like blud what 😭

gentle grove
#

shut up all of you

gentle grove
hallow scarab
gentle grove
#

Hydrate is fine

hallow scarab
#

oh

#

idk

#

I don’t check this channel because I have no reason to

gentle grove
#

Take my word for it

clear lichen
grim sparrow
magic hazel
# grim sparrow Why couldn’t it

NSObject is completely different apparently C++ is older and there's a bunch of features missing from that, the compiler never intended to support it, most of the STDLIB has types that just don't exist in ios 6 so you'd have to strip those out, all of currency including sendable and mainactor which work on ios 6 wouldnt work youd have to strip that out

grim sparrow
#

but you could add support

#

you just won't because its more work than jsut recompiling the toolchain

magic hazel
#

supporting ios 6 was not just recompiling the toolchain 💀

grim sparrow
#

how much work was it actually other than just some patches from the git histroy

magic hazel
#

Rewriting objc_allocWithZone was a decent chunk of work

#

Other than that it was mostly pre chill

#

Just a lot of testing

#

finding all the functions that don't work and replacing them with ones that do that i either knew existed or had to go look for online

#

the git history was nearly useless

grim sparrow
magic hazel
#

rewrite the call*

#

because the modern way it was being called spawned objc_allocWithZone which doesn't exist

#

the selector "allocWithZone" does however

#

they aren't immediately interchangeable tho

#

so i had to do a bunch of bridging

#

stubbing out parts of the selector based allocwithzone that do exist on the modern version that don't on it

#

getting that to work was probably what took most of my time

#

bcus i was in the dark

grim sparrow
#

spill the idea

#

wahts the elevator pitch

magic hazel
#

ai was no help, and online wasn't either

#

and since its not in the stdlib you have to recompile from scratch everytime

#

which on the trash can was annoying asf

#

so it probably took longer than it should have

#

but it wasn't awful to do no

#

supporting ios 5 is basically impossible though

#

you'd need to somehow compile against its objc library

#

you can't even compile against ios 6 without numerous build errors

#

mostly related to missing c++ functions

#

ios 5 would probably have even more

#

not to mention xcode can't even build for ios 5

#

so its a waste of time either way

#

even if i somehow managed to get it working

#

which is highly unlikely

#

youd have a modern toolchain

#

and no ide to use it in

#

no sdk to compile against

#

and thats ASSUMING compiling against ios 5's objc would even solve the issue

#

the fact you get the error "Missing symbol, OBJC_CLASS_$NSOBJCT" made me leave immediately

#

NSObject is the core of all of objc

#

that's like saying the error you're getting is there is no runtime language to go off

#

The other thing

#

Is swift was built for iOS 6 at first Anya’s

#

Anyways

#

I was patching yhe toolchain and rewriting one or two parts of it

#

Supporting iOS 5 wiuld require major rewrites

#

And at that point I can’t exactly claim it to be “native swift”

#

Hell I don’t even know if it’d play nice with how Xcode expects it to be

#

Maybe one day I’ll be bored enough to do it

#

But I did iOS 6 because it’s always been my target platform for legacy development

#

I never cared much for iOS 5 even before I found out swift could run on iOS 6

crisp frost
#

Sorry

magic hazel
#

Other than allow with zone and data destructor, yhe work wasn’t so much hard as it was just long

#

So many functions and methods requiring hours of research to find solutions to since there’s no documentation for these things

magic hazel
#

In the end I’d say I patched around 60 methods in the swift overlay and maybe 40 internal ones? And 2-3 complete overhauls of a method

harsh junco
magic hazel
#

Not so much when compiling the swift toolchain itself

#

In theory yes, it could work

#

But you’d the be reliant on even more external libraries

#

For me I wouldn’t care

#

But I want this to be as approachable for a modern developer as possible

harsh junco
magic hazel
#

Yeah at that point nah

harsh junco
magic hazel
marsh ocean
#
let d=`4{5*qH?>?Hq\\?*{5\\q4?H?.R+,+H+,+H+,+4+,+,+*+,
+,         +4+,+H+,+>+,+*+                         ,+
>+        ,+z+,+H+,+*+,+H+,+                       .H
,+        ,H,+,H,+,*,+,*,+,+,                      *,
+,        *,+,z,+     ,>,+,4,                      +,
z,                    +,p,+,H     ,+,.>,-,H,-,H,+, *,
-, 4,+,4,             -,*,-,p   ,-6+6-6+*,-,z,-6+6 -6
*, -6+6-6     .4,-,H,-,H,-,*   ,-,f,-,*,-,p,-,R,-, *,
-, zf,-,*     ,-,H,-,.*-,-H   -,-H-,-*-,-f-,-*-,-H -,
-*            -,-R-,-*-,-H-,  -4-,-H-,     -*-,-H- ,-
.A                    Rs4AfA4 s4ARA*A              HA
>s                    4AHA`/* #######              ##
## ###*/.             replace (/\s+/g,     ''),C=" "+
(( ":+#"+ "\n")),     o="";/* */for(let i=0;i<d./* ##
*/ length ;i+=1){     const e =d.charCodeAt(i)-32, r=
/*        */Math.floor(e/10)    ,c=e%10,O=C[c];o+= O.
/*         */repeat(r)}/*#        */console.log(o) ;;
/*                                                 ##
###################################################*/
marsh ocean
#

node

#

node [filename].js

quaint path
#

im too lazy to get node

#

uhhh ill spin up a vm that comes with node

marsh ocean
#

what distro do you use

hexed knot
#

How could making a VM possibly be easier than installing nodejs or bun

light owl
#

Some shit @crisp frost would do because she doesnt want random code running directly on her pc

quaint path
quaint path
hexed knot
#

Nice excuse

acoustic imp
#

does the public know anything ab apples like internal servers? like specs/os, jus wondering

#

i asume they made custom everything

quaint path
native dune
#

well atleast private compute cloud

timid furnace
#

I know about some of their hardware and some of their software stack

#

But it's scratching the surface really

#

High chance they don't run entirely on internal silicon, but they definitely do some things

#

Also they're a very large user of AWS

acoustic imp
#

oh, thx

timid furnace
#

Do you have a specific question

acoustic imp
#

also like for icloud, like is it all HDDs or like mixed ssd/hdd

#

🤷‍♂️

#

jus wonderin

timid furnace
#

Yea no that's too specific

#

And also it would vary a lot

#

No big company has a homogenous fleet

light owl
#

@native dune Is it working

kind herald
#

@native dune Is it working

native dune
#

Are you working ?

light owl
#

Are you working ?

kind herald
kind herald
pearl sail
#

Maxine is definitely jobless

light owl
#

Yeah she is

#

Provides no benefit to society

gentle grove
fading shell
lofty juniper
#

did you need to ping 11 hours after this

gentle grove
#

when you bite the ragebait 🥀

magic hazel
#

It looks like a mashup of like

#

3 Langs

#

Like some C, python, JS,

wooden yarrow
#

or maybe typescript

magic hazel
#

idk i dont use typescript but it doesnt look like normal js

wooden yarrow
#

I guess though the similarities do also come from both being web based languages

gentle grove
#

It looks like really fucked up JS

magic hazel
#

mishmash of langs

gentle grove
#

What the hell is an "sql" and then backtick

magic hazel
#

wut

#

embedded sql database

gentle grove
#
$`what the hell is this dollar sign shit`
magic hazel
#

bash script

gentle grove
magic hazel
gentle grove
#

you send a query to an SQL database and you get data back

magic hazel
#

thats what i said what 😭

#

oh i omitted a "to"

#

nvm

#

$ is a script surely

#

it looks like one

#

echo

#

and |

#

looks exactly like a script

gentle grove
#

Oh hold on

#

This looks like it'd be easy to have SQL injection

#

they're using string interpolation for the where clause

#

that's what it appears to do

magic hazel
#

oh true

#

idk i dont write web langs

#

i never ever liked them

#

i actually prefer c ngl

#

even tho i dont like c

#

i would take c

#

web langs feel so awfully fragile and messy

gentle grove
#

I wouldn't because it is the wrong job

magic hazel
#

oh yeah no i agree

#

but i meant

#

enjoyment wise

#

lol

#

not tool for the job

gentle grove
#

normal JavaScript is pretty good

magic hazel
#

normal js is cooked

#

its so broken

#

there are so many oddities

gentle grove
#

if you just use like straight javascript

#

no crazy stuff

#

and just don't be a silly

magic hazel
#

what are you talking about 😭

gentle grove
#

don't do anything crazy like try to compare two dates to each other or something

#

or try to interpret a date

#

that would be insane

magic hazel
#

console.log(typeof NaN);

logs number im pretty sure

console.log("5" - 2);

console.log("5" + 2);

first one is 3 2nd is 52

#

js is so fucking cooked

gentle grove
#

That's not a JavaScript weirdness there

magic hazel
#

2nd one??

gentle grove
#

Just don't do it

magic hazel
#

LMAO

gentle grove
#

"It hurts when I do this with my arm"
Then don't do that

magic hazel
#

copium goes wild

gentle grove
magic hazel
#
console.log("5" - 2); // 3
console.log("5" + 2); // "52"

is wild

#

me when my language makes no sense

gentle grove
#

you're one to talk as the swift prophet

magic hazel
#

bro

#

if swift is 1 thing

#

it is rigid

magic hazel
#

it has clearly defined rules

#

what are you talking about like actually i don't even know atp

gentle grove
#

they change the rules every day

magic hazel
#

they do not

#

😭

#

like actually what are you on about 😭

gentle grove
#

every time apple encounters one edge case in their development they add a new language feature

magic hazel
#

!??!?!?!?!?!?!?!??!?!?

gentle grove
#

@slim bramble back me up on the swift hate please

slim bramble
magic hazel
#

nah this isn't even swift hate anymore

#

like i get not liking it

slim bramble
magic hazel
#

but this is straight cap

slim bramble
#

and each and every swift update slows down the language even more

magic hazel
#

oml

#

dude

gentle grove
magic hazel
#

i am running swift 5.10 on a fucking a5 chipset as fast as objc

#

i truly dont know

#

what you are talking about

#

😭

gentle grove
#

ancient

magic hazel
#

and it is NOT a small codebase

#

yes

#

ancient

#

if it can run as well

#

as objc

#

on a chip

#

as old

#

as a5

gentle grove
#

impressed that objc runs as well as it does given how it works

slim bramble
magic hazel
#

its slower by default in some cases tho

#

but thats bcus it changed a lot

gentle grove
#

my complaint isn't even with performance at all, I feel like that was missed

magic hazel
#

it was a major release

slim bramble
magic hazel
#

swift 5.0-5.10 runs IDENTICALLY

#

its literally just extending it's own runtime

#

😭

slim bramble
#

You said it yourself

gentle grove
#

swift 5.1 is older than rust having C string literals

magic hazel
#

because the lang changed

gentle grove
#

this is old af

magic hazel
#

bcus

#

the right behaviour

#

has changed

#

so you must update your code

#

to be better

gentle grove
magic hazel
#

swift 6 got rid of a lot of "close enough is good enough"

#

it made the language even more rigid than before

#

even more strict

slim bramble
#

swift mfs when their screen isn't wide enough to display their code 💀

magic hazel
#

what

#

idek what you're saying there

#

lmao

gentle grove
magic hazel
#

swift is not bloated actually ngl

#

its a really good size rn

slim bramble
#

swift 6 is literally

Whatever {
  Something {
    Idk {
      Etc {
      }
    }
  }    
}```
magic hazel
#

less bloated than rust

gentle grove
#

whos on copium now

magic hazel
gentle grove
slim bramble
#

fr

gentle grove
magic hazel
#

rust has like

#

5 string types

#

💀

gentle grove
slim bramble
#

Swift literally has 2 string types

#

💀

gentle grove
#

swift doesn't have enough string types

slim bramble
magic hazel
#

swift doesnt need anymore than 3

#

lmao

#

and realistically

gentle grove
#

I think rust has 3 basically

magic hazel
#

you use 1

#

basically 99% of the time

#

you only use 1

gentle grove
magic hazel
#

String

slim bramble
#

You use all 3 without really knowing

gentle grove
#

its also called String in rust

#

rust is literally swift

magic hazel
#

crazy

slim bramble
#

That's why both language are garbage

#

👍

magic hazel
#

rust and swift interop wen

gentle grove
gentle grove
slim bramble
magic hazel
#

oh right bcus c interop

gentle grove
#

If not then can't you do C and swift interop

magic hazel
#

you can do objc interop

#

which

gentle grove
#

I thought there was a direct way

magic hazel
#

means u can do c interop

#

no

#

why would there be

slim bramble
magic hazel
#

apple doesn't care about objc or c based langs in swift mostly

magic hazel
#

no bridging required

gentle grove