Posted on Leave a comment

Introducing the News Partner Program

An illustration of iPhone 12 Pro and journalists.

Enrollment is now open for the News Partner Program, designed for subscription news publications that provide their content to Apple News in Apple News Format. Publishers that work with Apple News may qualify for a commission rate of 15% on qualifying in-app purchase subscriptions from day one. The program is available to Apple Developer Program members globally.

Learn more

Posted on Leave a comment

Developer Spotlight: Puppr

Photo of the developers of Puppr on a collage.

If Loki the sheepdog hadn’t been so smart — or if his owners had a backyard — the dog-training app Puppr might not exist.

Developers Michael Gao and Alice Mongkongllite got their first dog when they were newlyweds living in a Los Angeles apartment. “A good way to keep him engaged was to teach him tricks,” Gao says. “Loki’s supersmart and would pick up things quickly.”

But training Loki to behave in their pet-friendly offices was more challenging. They didn’t want to have to lug around a book or a clicker, explains Gao. “We thought we could solve our own problem by making something with videos, a community, and the ability to track our progress.”

Puppr’s lessons, created with celebrity dog trainer Sara Carson, range from basics to circus tricks. There are community photo challenges (because who doesn’t like to share dog pics?), and subscribers can turn to Carson for answers and advice.

We spoke to Gao and Mongkongllite about the power of cold-calling and taking things one step at a time.

Puppr can help teach your pet to shake hands, cross paws, and maybe even say hi.

Puppr can help teach your pet to shake hands, cross paws, and maybe even say hi.

How much experience with apps did you have before Puppr?
Gao: Alice and I met in college at UCLA, where I majored in computer science and she studied design and media arts. We’d published two games when we were traveling around China for a few years after college. We would spend half the day working out of coffee shops and the rest of the day exploring the city.

How did you connect with celebrity dog trainer Sara Carson?
Mongkongllite: When I searched for tags like “dog training” and “dog tricks,” Sara’s videos came up. The things her dogs could do blew my mind. So we DMed her.

Gao: She said, “I’m actually headed up to L.A. this weekend.” Later we found out she was there to audition for America’s Got Talent. The deadline for Puppr’s release ended up being defined by the airdate for her episode.

What was your biggest challenge in building Puppr? Mongkongllite: The photography and the editing took a lot of time. We bought this really cheap green screen, and I ended up having to take the green out of Sara’s hair. And the fur—the fur!

What’s your biggest challenge today? Mongkongllite: Balancing mom life and work life. Time management is difficult.

If you could go back in time, what advice would you give to your younger selves?
Gao: Build momentum. One of my early goals was to work on Puppr every single day, even if it was just writing one line of code. Without that, I think we wouldn’t have been able to ship when we did.


Download Puppr from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

Additional banking information required in App Store Connect

Due to changes in local regulations, the bank account holder’s address is now required if you have bank account information in App Store Connect. Account Holders, Admins, and Finance roles can now provide a valid address in the Agreements, Tax, and Banking section. Please provide this information by October 22, 2021, in order to avoid a potential interruption of your payments.

Learn more

Posted on Leave a comment

Developer Spotlight: The Dyrt

Photo of The Dyrt developer on a collage.

Sarah Smith, an avid camper and cofounder of The Dyrt, was frustrated by how hard it was to find details on a campsite before you booked. She wanted to know that, say, site 2 was next to a busy road, while site 7 was along a river.

She wondered why nobody seemed to be solving the problem. Then she had a thought that changed everything: “Why can’t I do it?” she says.

Four years later she launched The Dyrt to help nature lovers find and review campsites all over the country. Last year members planned more than 55 million miles of trips.

We caught up with Smith to chat about transitioning from education to technology, the importance of starting slow, and why it pays to learn on the fly.

*The Dyrt* can point you to the perfect campsite.

*The Dyrt* can point you to the perfect campsite.

Before creating The Dyrt, did you have any tech background? None whatsoever! I was in education. My cofounder and husband has a background in tech and apps, but he didn’t come on board until I had already built something.

Were any of your skills from your career in education transferable? I did have one skill from my 10 years of living abroad and helping students study abroad: adaptability. When I think of every job I’ve done for The Dyrt — from scribbling out wireframes to figuring out a payroll system to creating more strategic partnerships — it’s always about being flexible while keeping the end goal in mind.

How long did it take to bring The Dyrt into the world? We did it pretty slowly at the beginning. I built a rudimentary beta version of the website in WordPress in 2014, and a better beta the next year. In 2015, we started raising money and hiring people. But our first app didn’t come out until March 2017. It took years for something I thought would take not that long.

What was the trickiest part? It’s not hard to create a directory of campgrounds, but it is hard to create a platform that people want to contribute to. We did it by incentivizing people through contests: We choose the top reviewer from each region and work with brands to give prizes. But getting brands involved was challenging at first; we started talking to them before we had a website launched, so they had to believe in the dream.

What advice would you give to other aspiring developers? Start small and iterate. I can’t say I knew that when I started — I couldn’t afford to do it any other way at the time. But I did have a hunch that I shouldn’t put my life savings into this until I had an idea that other people wanted this problem solved too.


Download The Dyrt from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

SharePlay release schedule update

SharePlay has been disabled for use in the developer beta 6 versions of iOS 15, iPadOS 15, and tvOS 15, and will be disabled in the upcoming beta 6 release of macOS Monterey. SharePlay will also be disabled for use in their initial releases this fall. SharePlay will be enabled for use again in future developer beta releases and will launch to the public in software updates later this fall.

We’re thrilled with the high level of enthusiasm we’ve seen from the developer community for SharePlay, and we can’t wait to bring it to users so that they can experience your apps with their friends and family in a whole new way.

We appreciate how many teams have been hard at work building SharePlay experiences and to ensure there is no interruption in your development, we have provided a SharePlay Development Profile which will enable successful creation and reception of GroupSessions via the Group Activities API.

If your team plans to submit an update to your app for the initial release of these platforms, please remove the GroupActivities entitlement. We will provide guidance when SharePlay is re-enabled in a future developer beta, at which point we encourage you to include the GroupActivities entitlement in your code.

Download the SharePlay Development Profile

Posted on Leave a comment

Developer Spotlight: Revry

Photo of the developer of Revry on a collage.

In five years, Revry has gone from an idea among friends to the biggest LGBTQ+ streaming service on the App Store, with a huge library of original movies, shows, music, and podcasts — and it’s growing by the day.

Founded in 2016 by Damian Pelliccione, Alia Daniels, LaShawn McGhee, and Christopher Rodriguez, Revry began as a bare-bones operation but is expanding quickly. In the past 18 months alone, the team has doubled in size to 30 employees.

We caught up with Pelliccione on the set of House of Pride, the app’s new variety show, to talk about the power of street marketing and what true representation looks like.

Stream new movies, classic series, and exclusive live shows by LGBTQ+ creators.

Stream new movies, classic series, and exclusive live shows by LGBTQ+ creators.

Revry is now an industry leader in LGBTQ+ media, but in the early days, how did you get the word out? Before we launched, we hit the streets in San Francisco the Saturday before Pride; we had printed T-shirts and obnoxious giant flyers, and we were going around demoing the app. We weren’t the best at it, but people would ask us, “Are you in street marketing?” and I’d say, “No, I’m the CEO, that’s the CBO, that’s our CFO.” By the end of the weekend we had done interviews with Macworld and Oakland TV.

How do you find new talent and content to grow Revry’s library? We’ve traveled to film fests from Brazil to Israel to Mumbai; we scour YouTube for great videos we want to license. Right now I’m walking around the soundstage of our variety show in L.A.; we’ve got 25 influencers and musicians and comedians and drag queens.

Can you tell us about the team behind Revry? We represent so many communities: immigrants, nonbinary people, Hispanic people, African Americans, LGBTQ+, veterans. I’m proud to say that over 65 percent of our staff are people of color, and almost 70 percent are women. In the special I’m working on today, our director is female, and our producer is a trans male. That’s not forced — that’s organic. This is what representation looks like, and it starts with ownership and it starts with leadership.

A sample of *Revry*’s incredible well of content.

A sample of *Revry*’s incredible well of content.

What advice would you give to other aspiring entrepreneurs?
Fail fast and learn big. Those failings are your school — that’s life teaching you how to succeed. When you’re ready to receive the world, the world will be there to give itself to you.

What’s been your most inspiring moment?
I still have a letter from a queer kid in Saudi Arabia who wrote to say, “I identify as gay, and I never knew this community existed until I downloaded your app. For the first time in my life, I saw myself represented.” That’s not the last letter we’ve gotten like that, but it was the first. It’s framed and on a coffee table in my office. That’s my inspiration for going to work; it’s like winning an Academy Award over and over and over again.


Download Revry from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

Challenge: Solution to “Memgraph Capture The Flag”

Flag icon on grey background

The “Memgraph Capture the Flag” challenge invites you to learn and practice memory debugging and symbolication with command line tools. If you haven’t yet attempted the challenge or otherwise don’t want to be spoiled on the necessary steps to complete it, we recommend returning to the original challenge page. Otherwise, read on!

Challenge: Memgraph Capture the Flag

The challenge begins with the following: “One of our engineers has hidden a memory easter egg in our secret app. We’re trying to track it down but all we know is that it has format flag_<unknown_string_here>@WWDC. You’ll have to use the command line tools offered by macOS to investigate the memory issue, recover missing symbols, and and capture the rogue flag.”

The following solution is one of the possible paths to capture the flag. To start, the challenge article supplies you with a memgraph file and a dSYM, along with the following hint: “Memgraph is a special binary plist. What can you find in its properties?”

To look at the properties of a Memgraph, use plutil. In the output, you’ll find more hints:

$ plutil -p secret.memgraph
... "hint" => "the flag is hiding in a memory leak"
... "one_more_hint" => "you might also want to explore the 'symbols' in the dSYM”
...

The hint invites you to investigate the memory leak, while one_more_hint directly encourages you to use the symbols CLI tool. In the WWDC21 session “Symbolication: Beyond the basics,” engineer Alejandro Lucena mentions that it’s a good idea to specify the architecture with this tool. As such, you can use the memgraph to learn the “secret” app’s architecture.

You can try heap, leaks or vmmap. When used with a memgraph, the first few lines are the same in the output of each of these tools. This is how you learn which architecture the “secret” process uses: Code Type: X86-64.

As detailed in the WWDC21 session “Detect and diagnose memory problems,” you can use the vmmap command against memgraph files in addition to targeting the running process. Running it agaisnt this memgraph provides the following information:

$ vmmap -summary secret.memgraph Process: secret [2901]
Path: /Users/*/secret
Load Address: 0x10d264000
Identifier: secret
Version: 0
Code Type: X86-64
Platform: macOS
Parent Process: zsh [1438]
...

Now you’re ready to use the symbols command. Use the -noSources option to restrict the output to symbol names so you have less output to look through. Hidden amidst the symbols in the “secret” dSYM, you’ll find another breadcrumb towards the solution:

$ symbols -arch x86_64 -noSources secret.dSYM [macOS Monterey+, Xcode 13+]
or
$ symbols -arch x86_64 -noSources secret.dSYM/Contents/Resources/DWARF/secret [macOS before Monterey, Xcode before 13]
...
hint_find_the_secret_addresses_of_the_memory_leak
...

The leaked memory in this memgraph is definitely starting to sound interesting — it’s probably a specific leaked address. Let’s see which secret addresses the hint is referring to. To determine if the “secret” app was leaking memory, you can check the memgraph for leaks with the leaks command line tool.

You’ll want to pay attention to this portion of the output:

$ leaks secret.memgraph
...
STACK OF 5 INSTANCES OF 'ROOT LEAK: <CFArray>':
6 hint 0x7fff204edf3d how would you translate secret Addresses TO Symbols? + 1
5 secret 0x10d267ee8 0x10d264000 + 16104
4 secret 0x10d267dc5 0x10d264000 + 15813
3 secret 0x10d267ccf 0x10d264000 + 15567
2 com.apple.CoreFoundation 0x7fff2059576f __CFArrayCreateInit + 190
1 com.apple.CoreFoundation 0x7fff2054df07 _CFRuntimeCreateInstance + 587
0 libsystem_malloc.dylib 0x7fff20314071 _malloc_zone_malloc + 242 ...

In this output, you’ll spot five leaks, all of which originated from the same place in code. They are united by the same call stack backtrace each time a CFArray was allocated, but never freed. You’ll find three secret addresses here — 0x10d267ee8, 0x10d267dc5 and 0x10d267ccf — along with a new hint sporting some interesting capitalization. This clue hints that you should try and use atos tool to symbolicate the secret addresses.

To call atos, you need several components: The DWARF binary in the dSYM, architecture, and addresses to symbolicate. You’re missing the load address, however, and can find it for the “secret” binary image within the call stack of the leaks next to all three secret addresses: 0x10d264000. You can also find it in the the process description and list of binary images portions of the leaks output:

$ leaks secret.memgraph
Process: secret [2901]
Path: /Users/*/secret
Load Address: 0x10d264000
...
Binary Images: 0x10d264000 - 0x10d267ff7 +secret (0) <6676D338-8C26-3019-B919-88C1CB4AA324> /Users//secret
...

Now, you can use atos to translate the secret addresses to symbols:

$ atos -o secret.dSYM/Contents/Resources/DWARF/secret -arch x86_64 -l 0x10d264000 0x10d267ee8 0x10d267dc5 0x10d267ccf
main (in secret) (main.m:226)
very_nice_function (in secret) (main.m:205)
good_job_but_the_flag_is_inlined (in secret) (main.m:186)

You’re getting close: The flag is inlined, so you need to add the -i command line option while calling atos to display the inlined functions too:

$ atos -o secret.dSYM/Contents/Resources/DWARF/secret -arch x86_64 -l 0x10d264000 0x10d267ee8 0x10d267dc5 0x10d267ccf -i
main (in secret) (main.m:413) very_nice_function (in secret) (main.m:392) IGZsYWdfbWVNMHJ5VDBPTHNEZWJ1R0cxbmdQcjBAV1dEQyAg (in secret) (main.m:86)
whats_wrong_with_encoding (in secret) (main.m:204)
omg_you_found_it (in secret) (main.m:333)
good_job_but_the_flag_is_inlined (in secret) (main.m:373)

Closer still! Run this command and you’ll get a string of gibberish that looks like it might be base64-encoded. Run that decode and you get:

$ echo "IGZsYWdfbWVNMHJ5VDBPTHNEZWJ1R0cxbmdQcjBAV1dEQyAg" | base64 -d flag_meM0ryT0OLsDebuGG1ngPr0@WWDC %

As a note: Make sure you also pass the -arch flag to atos, because atos defaults to the architecture you’re actively using. For example, if you run this command from x86_64 (either on x86 hardware or in Rosetta 2), you won’t see any change. But if you run the tool from an Apple Silicon machine without the -arch flag, you’ll get strings delivered for the wrong architecture:

IOKdmuKWiOKVkOKVkOKWiOKdmiAg4p2a4paI4pWQ4pWQ4paI4p2a (in secret) (main.m:396)
IOKWhyDiloUg4paIIOKWhSDilocg4paCIOKWgyDiloEg4paB (in secret) (main.m:381)

Convert those from their base64 encoding, and you’ll get some very pretty ASCII art weights.

❚█══█❚ ❚█══█❚ ▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁

While these might be helpful for filling the fitness rings on your Apple Watch, you need the -arch x86_64 parameter to capture this particular flag.

One last tip: The secret.memgraph was generated when the “secret” process was running with MallocStackLogging enabled; this allows you to see the call stack of the leak. Don’t forget to enable MallocStackLogging for your own app when generating memgraphs. This can be done in the scheme settings in Xcode (Run > Diagnostics > MallocStackLogging = Live Allocations Only) or with the environment variable when launching from a terminal:

`$ MallocStackLogging=lite <command>`

This is just one path you can follow to get the flag using the command line tools built into macOS for memory debugging and symbolication. Check out the full repository of Coding and Design Challenges for other fun coding and design explorations, or dive deeper into debugging with our most recent WWDC21 videos.

Resources

Symbolication: Beyond the basics

Detect and diagnose memory issues

Explore more coding & design challenges

Posted on Leave a comment

Behind the Design: Pok Pok Playroom

Beam of light coming from top right corner that reveals Pok Pok playroom toys

When the husband-and-wife team of Esther Huybreghts and Mathijs Demaeght first began dreaming up Pok Pok Playroom, they made a solemn vow: parents shouldn’t need to mute the app in a restaurant.

“We didn’t want media and jingles and jangles that get stuck in your head,” Huybreghts laughs. “We wanted a quieter experience.”

To the delight of dining parents everywhere, they got it: Their inventive children’s sandbox is a quiet feast for little senses. There are switches to flip, gears to grind, blobs to plop together, and bells to ring — and those are just a handful of the animations designed to make the app feel like a tactile, handmade toy.

A child in yellow pants plays with Pok Pok Playroom’s toy library

Huybreughts and Demaeght began their careers in the film and game design worlds before finding work with the independent Canadian studio Snowman (creators and producers of titles like Alto’s Odyssey and Alto’s Adventure as well as Where Cards Fall and Skate City for Apple Arcade). The duo began pondering developing an app for young children after they struggled to find the right kind of experience for their own kids. “We didn’t want anything loud and overstimulating,” Huybreughts says. “We wanted something quieter and educational, and we really didn’t find anything that checked all those boxes.”

Instead, they decided to try and check those boxes themselves, building Pok Pok Playroom on the side with frequent input from the duo’s own in-house play-testers before eventually joining forces with their employers at Snowman. (The Snowman team loved the spirit of the app so much that they spun out a separate company, Pok Pok, focusing solely on educational children’s entertainment.)

The Pok Pok Playroom couple in their home office

Huybreghts and Demaeght carefully designed the app’s digital toybox atmosphere to both fire up children’s minds and leave space for them to fill in details with their own imaginations. “Kids develop differently, and everyone who plays Pok Pok approaches it with a different mindset,” says Huybreghts. “That’s the wonderful quality of open-ended play. There’s something new to discover every time.”

To perfect the app’s handcrafted look, Huybreghts dove back into her own art and animation history. “I’ve been drawing my whole life,” she says, “but it’s always been more on the sketchy side. Give me a pencil and a napkin and I’m happy,” she laughs.

Huybreghts struggled to find Pok Pok’s look for some time, long enough that her husband stepped in to issue a nautical challenge. “Mathijs held up this toy boat that was lying around our living room among the millions of other toys and said, ‘OK, Esther, stop stressing about it. Use only these three colors: red, yellow and blue.”

Huybreghts sketches designs on iPad

As a lifelong creative, Huybreghts was duly horrified. “I was like, ‘I can’t do that!’” she laughs. “How would I even draw a tree?”

But the little boat (and its guidelines) proved inspiring. The new strategy — a mix of free play with friendly guidelines — also gave her room to experiment. “I didn’t want the artwork to be perfect, because that would mean I’d have to animate everything perfectly. The rule was that everything could jitter a little bit, which took a lot of the pressure off me. Making everything too clean and too nice would have been too much work, especially since it was often just me drawing with one hand with a baby in the other.” (Fun fact: All of Pok Pok’s designs began as iPad sketches.)

With the visuals in motion, the challenge of matching audio fell to sound designer Matt Miller, who ended up recording every sound in the playroom: all the sloshing mops, sizzling grills, and wordless dialogue. “The idea was to create calming sounds,” says Miller, “something that could be heard a number of times without becoming fatiguing.”

Miller records sounds in his backyard

Initially, Miller and Demaeght wanted to use a small number of real-world objects, but they quickly realized that the app’s thousands of animations required a broader arsenal of sounds — so Miller went on a hunt. “I got wooden blocks, pots from the kitchen, stuff I bought at a local thrift store,” Miller says, pointing to a boxes of “Foley objects” in the background of his home studio. “I’d just walk into a music store and start pinging on things.”

His biggest challenge came in the app’s “musical blobs” section, an abstract playspace of movable shapes not unlike that lava lamp you had in college. “We wanted to do something musical,” Huybreghts says, “but every kids’ app that musical has a figurative aspect, where it’s a person or animal singing or using visual recognizable instruments.”

The answer lay in the abstract. “A musical blob is a completely new idea,” Miller says. “A lot has to come together for that to work.” For instance: The color blue is always a C, while circles (the simplest of shapes) are represented by a single sine wave (the simplest of sounds). “There needs to be a consistency.”

The team behind Pok Pok Playroom sits at a conference room testing toys.

Miller also found room for a little play, however: One of his favorite effects involves a dung beetle that raises its back legs and rolls the dung away. “That rolling sound is just me rolling over the edges of a soup can,” he says with a laugh. “When we can be literal, we’re literal. But it’s fun to throw curveballs too.”

In a way, Pok Pok Playroom is a curveball of its own, something that stands out by virtue of its simplicity. “We’re people, we’re not computers building this,” says Huybreghts. “It’s not vector art. It’s all hand-drawn and hand-animated. We’re not a giant, polished company. You can really see everyone’s impression, everyone’s mark, on every single thing they make in the app.”

Learn more about Pok Pok Playroom

Download Pok Pok Playroom from the App Store

Posted on Leave a comment

Developer Spotlight: SmartGym

Photo of the developer of SmartGym on a collage.

Matt Abras kept three words in mind when creating SmartGym: simplicity, simplicity, and simplicity.

“Many workout apps have a throw-spaghetti-at-the-wall-and-see-what sticks plan,” says the Brazil-based developer. “I don’t like that approach.”

With SmartGym’s illustrated library of more than 620 exercises, you can put together your own workout routine or have the app’s Smart Trainer create one for you. When you’re at the gym, the app calls out each exercise and start timers as needed. And with the Apple Watch app, all that happens right from your wrist.

We spoke to the Brazil-based developer about what drew him to Apple Watch, his Smart Trainer, and why you need to dream big.

*SmartGym* selects the best exercises for your needs — and shows you exactly how to do them right.

*SmartGym* selects the best exercises for your needs — and shows you exactly how to do them right.

How did you start developing apps?
I went to college and studied computer science, but I never wanted to become a developer — I wanted to work at Pixar! I loved the idea of inspiring and bringing joy to people. But when Steve Jobs introduced the iPhone in 2007, I knew it would change the world — my life included. And when I first saw the Apple Watch, I knew it would be the future — just like the iPhone.

Was SmartGym always designed to be Apple Watch–first? Absolutely, from day one. Every feature in our iPhone app, including the AI Smart Trainer that creates personalized routines for you, is completely implemented on the watch. With Apple Watch, there are no distractions — it’s focused only on your training.

What inspired you to create SmartGym?
People can be intimidated to go to the gym. Others might have no idea which exercises to do. I wanted to give users the confidence they need to start going. That’s why SmartGym begins with questions everyone knows how to answer: Which muscles do you want to target? What’s your experience level? It will create a workout for you, and then Smart Trainer will continually suggest changes as you progress.

What’s your design philosophy?
The app needs to be simple. It needs to be transparent. I have users who are 70. I’ve heard from army veterans and people deployed in Afghanistan. There’s a huge range of people in different scenarios in different cultures.

What advice would you give to developers just starting out? I received advice a long time ago that really shaped me: Dream really big, because God is huge. Always do everything with excellence. Pay attention to the smallest details, because everything matters. Persevere. Do what you love with passion. And always create things that will change the world for the better.


Download SmartGym from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

Get ready for a new Game Center authentication certificate

Starting August 4, 2021, a new certificate for server-based Game Center verification will be available via the publicKeyUrl. The previous certificate will no longer be available after this date. As a reminder, make sure your app always retrieves and uses the current publicKeyUrl value so it automatically uses the new certificate. If your app caches the certificate or hardcodes the certificate URL, it will require an update.

Please note, this root certificate issuer has been updated from Symantec Corporation to DigiCert, Inc. Make sure to check that the new root certificate issuer is on your list of trusted CAs. You can download the trusted root CA (DigiCert trusted G4) here.

Learn more