|
|
The joke was a bit slow in the middle, but both ends were OK.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Were you lit when you wrote that?
|
|
|
|
|
I'm almost at the point of defeat.
To develop an iOS app using Visual Studio / Xamarin you need to connect to a host Mac running XCode.
Getting Visual Studio to connect to the Mac involved physically setting up a new router since Wifi seemed to be a problem, then installing XCode. And Xamarin Studio. Or may this wasn't necessary - depends on the forum you read. And cursing. And then suddenly it worked.
But then adding my Apple account to Xamarin requires installing fastlane which throws you to a terminal window in order to login to your account (but which? macOS or AppleID? Turns out AppleID), which then borks because you need to create an App-specific password, Which then doesn't work.
So back to VS. I build, but the build fails because I need a code signing certificate. Back to the mac. Generate a CSR, create a cert, download the cert, install it in the keychain (the login one, it turns out), and try again.
error : No installed provisioning profiles match the installed iOS signing identities.
OK. Sigh. Xamarin help says to use the "Organiser" window in XCode, so I go there, and I see "Archives" and "Crashes". Nothing in Archives, but "Crashes", for some reason, offers me the chance to sign in with my Apple Id and from there I can see my signing identities and provisioning profiles. Except it's not offering to create a provisioning profile.
So back to developer.apple.com to manually create a provisioning profile and we try again. No luck.
OK. Let's step back and have another crack at adding an account to Xamarin. Looks like the issue is with 2FA and the Apple ID. I hear that VS Code solves this so I download VS code, install, run, add account. It works!
I rebuild in Visual Studio on my Windows machine. It works! Oh - no it doesn't. No provisioning profile.
So I hunt around, I try to manually create a profile but it's asking for my device ID (what's the ID of an emulator?) and I give up. A day lost.
So I move to VS Code on the Mac and create a new project from the project templates and attempt to build / run. Except it doesn't even build. A new project generated by VS Code with zero changes doesn't even build out of the box. Looks like it's Android issues so I unload that portion and try the iOS.
No provisioning profile.
FFS.
I know this stuff all works. Somehow. I'm just stunned beyond words that it's this painful, this complicated, this frustrating, this badly and misleadingly documented, and yet more patient people than I have worked through it.
It gives me such an immense respect for how simple Microsoft have made software development in complex and heterogeneous technologies (notwithstanding the pain of Xamarin / VS Code)
cheers
Chris Maunder
|
|
|
|
|
Sounds like you need to write this up in an article.
|
|
|
|
|
Hahaha, in fact, several things which he has mentioned are really important troubleshoot fix.
Definitely a good suggestion and it would be really helpful if someone is having same hard times like him.
You can have all the tools in the world but if you don't genuinely believe in yourself, it's useless.
|
|
|
|
|
I didn't even bother trying this in Visual Studio, just installed Xamarin Studio on the Mac, coded, debugged, built and published the iOS and Android versions from there, much easier..
Now is it bad enough that you let somebody else kick your butts without you trying to do it to each other? Now if we're all talking about the same man, and I think we are... it appears he's got a rather growing collection of our bikes.
modified 31-Aug-21 21:01pm.
|
|
|
|
|
If you ever want to write up your experience with creating provisioning profiles I'd name my dog after you.
cheers
Chris Maunder
|
|
|
|
|
As I remember, it didn't seem that tricky using Xcode?
Now is it bad enough that you let somebody else kick your butts without you trying to do it to each other? Now if we're all talking about the same man, and I think we are... it appears he's got a rather growing collection of our bikes.
modified 31-Aug-21 21:01pm.
|
|
|
|
|
It's such a bloody mess. Seriously. That whole experience is exactly what inspired me to write my blog post thanking Microsoft for just making things EASY, even though I know it comes across really fanboy-ish and I caught some flack for it. iOS and Android dev is just insanely frustrating in comparison.
[Code Index] | Thank You Microsoft[^]
|
|
|
|
|
If Microsoft had a half-decent phone and had managed to get Windows to actually run on it then they would have won the "who has more apps" challenge.
Being in the thick of this now boggles my mind as to how the ecosystem for apps is so strong. There are some persistent and forgiving devs out there.
cheers
Chris Maunder
|
|
|
|
|
Yeah, I was thinking the same thing with regard to the app ecosystem. If they managed to do that well with the dev tools they have, I can't imagine how great an MS phone done right would have been.
Although somewhat counter-intuitively, perhaps their app ecosystem is stronger because the only apps that make it to the app store are made by superstars with the persistence to get there. Maybe the higher barrier to entry results in only much more dedicated devs getting over the barrier?
|
|
|
|
|
Mike Marynowski wrote: only apps that make it to the app store are made by superstars
I was thinking about that too: the quality of apps that came out with the phone were phenomenal. There was a massive shift in the expectation of consumers on the level of fit and finish in an app and that came from the focus on design.
Windows apps were always pretty rough. Lots of knobs and controls and small text input boxes. iPhone apps (and subsequently Android apps) were a completely different beast.
Microsoft tried through the Metro design but it was just all harsh, flat unfriendly squares with thin skeletal fonts.
cheers
Chris Maunder
|
|
|
|
|
Yeah I think Metro just took minimalism one step too far, to the point where UI designers weren't necessary in the eyes of developers because what they could do on their own looked "good enough". But even Metro requires the delicate touch of a skilled designer to really get everything just right to the point where it looks good, not just good enough.
Windows UWP desktop apps tend to face the same issues, though it is getting slightly better over time. The Creator's Update Mail app is finally mostly usable and kinda even pretty. I'm really looking forward to seeing "Microsoft Design Language 2" / "Project NEON" in the next major update.
I can't really put my finger on why exactly, but even the Facebook UWP app is just so damn ugly that it is annoying to use. I had it open the other day when my girlfriend walked by and glanced at the screen and said "oh god, what did Facebook do to their website, it looks terrible!" I don't know what it is but all UWP apps seem to have this quality to them that is just blah.
I think they really need to change font rendering in UWP apps, it's just too harsh on 96 DPI desktop screens. It probably isn't worth it at this point though, with high DPI screens starting to become standard. Maybe UWP was just introduced before its time. I feel like the design language NEEDS high DPI to look acceptable.
Wow that turned into a really long completely unrelated rant. Sorry.
|
|
|
|
|
I'm with you.
Microsoft actually has a long, long, long history of introducing things before their time, having them flop, and having their competition step in and do it "right".
cheers
Chris Maunder
|
|
|
|
|
I don't want to sound discouraging or know-it-all, but I would recommend to stay away from Xamarin, phonegap and all the other cross-platform offerings.
Both iOS and Android offer ways to build a javascript bridge between the webview and the code behind, which makes the UI portable. The system specific stuff can then be optimized on Android Studio or Xcode.
modified 20-Oct-19 21:02pm.
|
|
|
|
|
Termi Nater wrote: Both iOS and Android offer ways to build a javascript bridge between the webview and the code behind, which makes the UI portable. Amen! TBH, that's what we ended up doing after two failed attempts with Xamarin and Phonegap.
You can have all the tools in the world but if you don't genuinely believe in yourself, it's useless.
|
|
|
|
|
Xamarin gives you native app performance, unlike JavaScript crap.
|
|
|
|
|
Quite similar to the WPF argument and situation really.
modified 20-Oct-19 21:02pm.
|
|
|
|
|
Check out NSBasic (www.nsbasic.com). They really have an interesting approach to this. Seriously.
If you think hiring a professional is expensive, wait until you hire an amateur! - Red Adair
|
|
|
|
|
I feel your pain... well, almost. Never tried Xamarin, but the regular signing process also felt like a pain to me.
Long long ago... in 2008. It was complicated and manual... but at least you knew that if you understood the process and remembered the steps you'd be fine.
I'd create a certificate, setup a provisioning profile on the dev portal, add devices on the portal and then to the profile, download the profile and install it via xcode or the keychain access. Of course i'd have to add the profile to the device as well.
I knew if i messed up it wouldn't work, but with a bit of practice you can get it right.
I tried building iOS again recently and with xcode 'managing' everything, I have absolutely no control (or that's how it feels like), and no clue what's going wrong if something goes wrong.
It's worse when you have to set up a CI server and people on the team, equally clueless, end up tampering the provisioning profiles!
Sorry for the rant, your post just brought back very bad memories.
"It was when I found out I could make mistakes that I knew I was on to something."
-Ornette Coleman
"Philosophy is a study that lets us be unhappy more intelligently."
-Anon.
|
|
|
|
|
I was considering looking at that some time ago but ran into a wall with it. Painful. What ever happened to the days when you could just WRITE A PROGRAM eh?
Anyway ... if you're looking for an interesting approach to writing IOS/Android applications check out NSBASIC (www.nsbasic.com). I have only written a few "apps" (I hate that word) with it but it really has a lot of potential and you DON'T have to involve an App Store unless you want to. The NSBASIC IDE will run either on a Windows machine or a Mac. It's a really impressive approach, IMO. It essentially produces a Javascript application that runs in a somewhat "sandboxed" mode (if that's an appropriate term) on a mobile device. You can write for pretty much any format of mobile device out there.
If you think hiring a professional is expensive, wait until you hire an amateur! - Red Adair
|
|
|
|
|
If you develop for iOS you need to use macOS. Trying to hack around it any other way is a waste of time. Get a Mac Mini and use VS for Mac and move on.
|
|
|
|
|
But I don't want to. I want to have my Mac sitting there obeying every command my Windows machine (which is actually a Mac) sends it. I want it to Just Work.
And I also want World Peace and a ride on a Unicorn.
cheers
Chris Maunder
|
|
|
|
|
I code in RemObjects Oxygene, a Pascal/Delphi syntax .Net language. With the RemObject's products, I can write in Pascal and make .net applications for Windows, Android, and iOs. You code specific to each platform, but can share libraries.
Additionally they also support C#, and Silver (Swift) on all 3 platforms.
And now they can also compile to native Win32 apps.
In each case you use the native libraries for the platform and are not limited as to what you can do on that platform. Unlike the Xamarin approach where you write one codebase and target the different platforms.
I haven't done the iOs bit, but they do a nice job on Oxygene and .Net for Windows. And I think they probably did a good job of interfacing to the Mac and the Xcode.
You MIGHT want to check it out.
FWIW, I LOVE the Oxygene language much more then C#. (Although you can mix languages in a single project as well, of you have something in one language that you don't won't to redo at all. They also let you paste C# code into Oxygene and it will do a decent job of translating. Can also just import a C# file. Have a look see.
|
|
|
|