Xcode is a huge, chimeric monster. I seriously doubt there’s anyone, anymore, that really knows what’s going on under the hood. It’s larger than many games, which says a lot.
That said, I regularly use it to produce fairly concise, performant applications, and I can bear the pain.
Here’s an example of me encountering an annoying warning[0], and being told “you’re holding it wrong.” I was basically chided for my style, which, I guess, is one PoV, but I feel didn’t actually answer the question, and, in my opinion, is pretty much irrelevant to the point.
[0] https://stackoverflow.com/questions/79275128/is-there-a-way-...
Opening Console and watching critical error messages stream in at an alarming rate when you do basically anything in the entire OS, is a great way to remind yourself just how bad Apple’s software quality has gotten. They're absolutely drowning in bugs.
I just opened it, after waking my laptop up from sleep, and about 10,000 errors+warnings have streamed in in the past 30 seconds or so. I'm doing nothing, just a single Safari window with this tab and nothing else going on.
(It would be interesting to see a graph of “errors per second while doing nothing” over each yearly release.)
For you maybe. Why it makes sense ? Are Xcode developers not able to test their code ? Does Apple need to know who you talk to, what are you writing or what did you eat ?
I like to ship, and that requires a lot of interaction with Apple servers.
Provisioning is a pain, and, speaking only for myself, I'm fairly happy that Apple has made that easier (by doing a lot of the handshake behind the scenes).
But, yeah, if you don't want to ship, then you probably only want interactions for things like documentation and dependency versioning.
1. Ask for a way to use the external name as documentation. (This is not a serious suggestion, because if you go do this people will laugh at you and tell you to stop doing that. But you could do it.)
2. Ask for a way to turn off warnings. (This is a reason suggestion, I actually want this. Unfortunately the answer that you really want is "no you can't do this".)
Most folks will only care about the external name. The internal name is for maintainers. It not only indicates the value is a constant, it also tells you that it has not been altered since entering the function body, and that's pretty important. The "in" prefix regularly saves me from assigning the unprocessed value, instead of one that has had some conditioning applied.
No matter. As long as the warning doesn't bork the build, I can live with it.
I could probably provide protocols for API documentation, but protocols have their own issues[0].
[0] https://littlegreenviper.com/the-curious-case-of-the-protoco...
"An error occurred whilst preparing device for development -- Failed to prepare the device for development. Domain: com.apple.dtdevicekit Code: 806 Recovery Suggestion: Please unlock and reconnect the device. The device is locked. Domain: com.apple.dt.MobileDeviceErrorDomain"
It's always manual for me, at least that way xcode won't suddenly tell my app is not registered to a team and refuse to build.
I know it's not relevant to the discussion, but I want to voice publicly how much I loathe the build error system in XCode. How can they possibly think anyone will find their obtuse and downright impossible log system is helpful.
I wonder how they do it now. I imagine Apple’s requirements have made it a lot more complicated.
there is a couple other obnoxious ones i cannot recall right now
No doubt. Here's my list:
1. That's how I make a living.
Now I urge you to consult this list, the HN Guidelines: https://news.ycombinator.com/newsguidelines.html
https://9to5mac.com/2019/01/05/apple-privacy-billboard-vegas...
When Apple talks about respecting your "privacy" it's isn't true as they permit most api grabbing your data from model, location, time, actions and so.
iPhone Apps are an incredible mess...
It makes connections to Apple when you launch it, and when you open project files.
It also makes connections when you build, although that is to be expected, since signing is required for uploading builds to the store.
It does not "constantly" phone home.
Same it shouldn't phone every time I open project files, what for? It would be also enough if phone home when openning Xcode once every 5 days unless dev manually ask for checking updates.
Just whenever you do anything major. I'd call that constantly.
Surely at some point I earn the right to say: "Fuck you Apple"?
That setting is meant to... well, communicate with Apple and get the latest provisioning profiles so that you don't have to manage them manually.
Xcode is terrible in a million different ways and Apple should be ashamed of it. But this is a non-issue.
This is clearly a yes-issue
so I'm not sure I totally understand the underlying message here, that apple is possibly phoning home to App Store Connect to secretly record every time a developer launches a project? it sounds a bit strangely conspiratorial in the context of a system where apple controls the entire developer supply chain already. anyway, I understand this is just one of those things that some people decide to care a lot about, and in some cases it makes a lot of sense, but not this one.
For all we know from this article, that this step takes 50 seconds could be fairly specific for this user’s setup. If so, this would the kind of issue that can easily slip through QA.
"The build phase is mostly unnecessary."
"For most local builds, on the other hand, the "Gathering provisioning inputs" build phase is unnecessary and can slow down the build considerably."
"Again, though, it's unnecessary to check for updates on every launch"
"It certainly doesn't align with Apple's claim that they believe privacy is a fundamental human right."
"This also appears to be unnecessary, and I experience no problems after denying the connections"
> only that it’s slow for this user.
"I found a thread in the Apple Developer Forums that discusses the problem"
There's a huge difference between having my home address, which a lot of people do, and observing my activity all day while I'm in the privacy of my home.
To turn it around, Apple publishes its own corporate address but is extremely secretive about what goes on inside the building and does not appreciate leaks.
> apple is possibly phoning home to App Store Connect to secretly record every time a developer launches a project? it sounds a bit strangely conspiratorial
It's not a conspiracy. It's just a complete disregard for developer privacy from a company that claims "privacy is a human right". There's a difference between doing something bad on purpose and doing something bad simply because you don't give a crap about the effects.
> I understand this is just one of those things that some people decide to care a lot about, and in some cases it makes a lot of sense, but not this one.
Privacy aside, do you care about slow builds?
If it isn't, could you provide a source?
What is not sarcasm, that I once lived in a region in germany where apples are grown. The local government had a project where they created some hiking trails. They wanted to call one of those "Apfelweg" (apple street or s.th. in englisch), because you know, there are apple trees everywhere. They had been sued by apple and had to rename it. Real.
https://www.phonearena.com/news/Apple-Apfelroute-logo-German...