The personal blog of Stuart Breckenridge

Github, Twitter Stored Passwords in Clear Text

Github:

During the course of regular auditing, GitHub discovered that a recently introduced bug exposed a small number of users’ passwords to our internal logging system […]

Twitter:

Due to a bug, passwords were written to an internal log before completing the hashing process.

It seems that Github and Twitter are using the same underlying technology. Regardless, you should change your password.



Fortnite Platform Restrictions

The geek in me wanted to see how Fortnite played in 4K on the Xbox One X. However, after downloading, I was disappointed to be hit with this error message when the game started:

Your Account can not play on this Platform.

It turns out that because I have a PS4 PSN ID linked to my Epic Games account, I can’t play on Xbox One with an Xbox Gamertag linked to that same Epic Games account. Platform Restrictions kick in and they suck. According to this help article, if you want to play Fortnite on both PS4 and Xbox, you need two Epic Games accounts:

If you receive this error when attempting to launch Fortnite, it means that your account is locked out of playing on Xbox One. In order to play on that platform, you will need to unlink the Xbox Live Gamertag you are attempting to play on from your Epic account, and then re-link it to a new Epic account.

It’s user hostile in the extreme. There must be a better solution1.

  1. Perhaps this one which allowed PS4 and Xbox cross-platform play, accidentally. ↩︎


GDPR App Updates

The EU General Data Protection Regulation (GDPR) requires quite a bit of work from app developers to ensure their apps are compliant. I want to outline what I am doing with my apps.

SG Transit

v1.0 of SG Transit contains the Fabric and AdMob SDKs. Fabric is used for crash monitoring and app analytics (i.e. what bus numbers are the most popular); and AdMob is used to provide advertising services.

v1.1 will remove Fabric from the app entirely1. Presentation of personalised ads will only occur with the consent of the user.

Baby Feeds

Up to v2.0.3 included the AdMob SDK. Similar to SG Transit, in v2.1 presentation of personalised ads will only occur with the consent of the user.

Primes – Numbers Game

Primes uses Game Center, which is subject to Apple’s Privacy Policy. While the app collects no personal data, you should be aware of the Game Center T&Cs:

The Service is subject to Apple’s Privacy Policy at https://www.apple.com/privacy. As set out in the Privacy Policy, when you use the Service, such as inviting other users to join the Service, participating in leader boards, enabling invitations or multiplayer functionality, or displaying status messages, the personal information you share is visible to other users and can be read, collected, or used by them. You are responsible for the personal information you choose to submit. When playing a game that supports multiplayer functionality, other users accessing the Service from within the same game on the same Wi-Fi network, local area network or within range of Bluetooth will be able to see that you are nearby (unless you turn this feature off), and see your nickname and photo, or full profile if you have a friend relationship with such user. If you choose to have your public profile set to “on”, other users of the Service can see your full profile, including your full name, activity (such as the games you have played and when you played them), scores, and achievements, and you can be recommended as a friend to other users. If your public profile is set to “off”, only users with whom you have established a friend relationship can see your full profile, and you will not be recommended to others; only your nickname and photo will be visible to users who are not friends. If you send or receive a friend request, the full name associated with your Apple ID will be shared with those users to whom you send, or from whom you accept, a friend request, and Apple may recommend games that you have played to your friends.

There will be no update to Primes for GDPR2.

The FFI List

This app will be retired prior to GDPR implementation. It does not collect any personal data.

  1. I had considered an opt-in option, but felt the uptake would be poor. ↩︎

  2. It does need to an update to, amongst other things, convert it from Objective-C to Swift, and to support larger interfaces natively. ↩︎


BoringSSL SSL ERROR ZERO RETURN

In an iOS app I’m building, I’m using URLSession to make API requests. However, shortly after the first request has completed successfully this error appears in the console log:

SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert

Enabling CFNETWORK_DIAGNOSTICS doesn’t reveal anything out of the ordinary, and I haven’t found anything on Stack Overflow that reveals the underlying cause of the issue. Strangely, testing the API through the app, browser, and Postman, works perfectly.

I just can’t stand seeing this pointless entry in the console log, the best description of which is available on Apple’s Developer Forums:

What’s happening here is that this log message relates to a common scenario that may or may not be correlated to any actual problem.

If anyone has any ideas as to how to resolve this error message, ping me on Twitter.

Config:

  • Server:
    • Ubuntu 16.04.4
    • Apache/2.4.18
    • OpenSSL 1.0.2g
  • Client:
    • iOS 11.3
    • Swift 4


3D Touch Needs to be Pervasive  

John Gruber at Daring Fireball:

I also think it’s a serious problem that iPhones have 3D Touch and iPads don’t, yet iPads are stuck running an OS where 3D Touch is the way to bring up a contextual shortcut menu, but that’s a different rant.

The 3D touch gesture that allows you to clear all notifications in one go is only available on iPhone. Every time I try that gesture on my iPad to clear notifications I’m left frustrated: not in that the functionality isn’t available, but that Apple have tied a useful feature to a hardware requirement needlessly. There’s no reason clearing all notifications couldn’t be handled via a long press rather than a 3D touch.


Citibank Introduces Apple Pay in Singapore, Australia, and Hong Kong  

Citibank have joined the Apple Pay party in Singapore, Australia, and Hong Kong. From their press release:

From today, Citi brings its credit card customers in Australia, Hong Kong and Singapore Apple Pay, which is transforming the mobile payments experience with an easy, secure and private way to pay that is fast and convenient. Apple Pay will be introduced to Citi credit card customers in Taiwan later this year.

This deserves a finally: Citibank were the only bank that hadn’t introduced Apple Pay in Singapore for almost 18 months.


Retiring The FFI List  

After over two-and-a-half years on the App Store, I’ve decided that it’s time to retire The FFI List and remove it from sale on May 3rd. It’ll receive a final update in early May which will contain the April database changes.

Update 2018-05-03: Removed from sale.


Lackluster HomePod Sales  

Joe Rossignol, via MacRumors:

HomePod shipments “could be far below market expectations” this year, according to reputable KGI Securities analyst Ming-Chi Kuo.

[…]

Kuo believes the “major miss” in HomePod shipments could be attributable to the speaker’s design and pricing, among other factors.

[…]

More importantly, Kuo believes Apple needs to improve Siri, support more languages, and make other improvements to the HomePod to stay competitive against Amazon and Google in the smart speaker market. Premium audio quality alone may not be enough for customers to justify dropping $349 on the speaker.

In recent trips to Apple stores, I’ve seen the HomePod but I’ve not seen a single person trying one out.


High Sierra Storage Space Woes

High Sierra is an unforgivable mess when it comes to communicating free storage space.

What exactly are you meant to do when Boot Camp tells you that you need 39GB free space, Finder tell you that 126.14GB is available, and About This Mac tells you that 207.69GB is available?

Storage Space Woes

Update 2018-04-10: Here’s what worked for me after a bit of digging on Stack Overflow:

sudo tmutil thinlocalsnapshots / 999999999999

I’m still left with Finder and About this Mac communicating storage values that are about 80GB apart.