Secure Your Digital Life
Information, tools and techniques to silence censorship and protect your personal data.
Note: SVG should be saved at a specific size depending on target resolution, e.g. (320 * 480) for iPhone and (768 * 1024) iPad.
File…in Xcode and then selecting Launch Screen under
Your app is going to need an icon. They can be created for free without much design skill whatsoever.
A picture’s worth a thousand words. Show people what your app will look like on their actual device with iPhone Screenshot Maker. The application will frame an app screenshot inside the iOS device of your choosing and even put a slick gloss on the screen for you. Best of all, it’s free.
Avoid FOUC by bundling your font in the application binary rather than pulling pulling the font from the Web. Font flickers could be avoided by base-64 encoding the font and embedding it in an inline style declaration, but it’s easier to slip the font into the app itself. To do so review the Common Mistakes With Adding Custom Fonts to Your iOS App and follow the instructions provided to add your font.
If your app is running a version of
0.13.0 you’re going to have a little friction getting started here due to an evolving RN codebase. Here’s how it’ll initially manifest itself:
RCTPushNotificationManager.h not found
When this happens it’s because your app cannot find the
.h file in its Header Search Paths (in Build Settings). To fix this follow the sage advice in #1979. And don’t forget to link your library!
Getting your app in the App Store for real.
Getting your app onto the hands of others early is a good idea. There are many different devices of various form-factors, all potentially running different versions of iOS. Don’t make the assumption your app will “just work” for others if it worked for you. Use beta builds to squish bugs before your formal App Store submission. TestFlight can help.
RCTAdSupportLibrary (you’ll be notified during submission).
Update 9 Sep 2016: After a recent talk given on building Lumpen Radio at Stridekick I learned Buddybuild was considered a good way to simplify and manage the beta testing and deployment process of RN apps. I wrote a post about Beta Testing React Native with Buddybuild.
This could be a beta build or it could be your 1.0. The up-front part of the process starts in Xcode and requires you to upload an archive of your app to the App Store.
In your app turn off developer mode and enable performance optimizations (see Submitting the app section for details).
Note: developer.apple.com and iTunes Connect are all you need here.
Update 10 Aug 2016: I received an email from Apple today indicating screenshots have been made even easier. Just submit one set of screenshots and one optional app preview for the largest device size within a device family, and they will be used across all localizations and display sizes. If your app’s UI or behavior changes based on device size, or if you would like to include localized screenshots, you can use the new Media Manager to add custom screenshots.
Update 16 Aug 2016: See also instructions for re-enabling App Transport Security for iOS 9 on the RN Running on Device page.
I ran into a lot of friction here at first and once after changing something, so this gets its own section.
If you’re using Webpack Dev Server to host your application you’ll need to update your
Info.plist to ease security restrictions. Meteor was anticipated to have this problem way back in June. Here’s more info and a workaround for HTTP connections not supporting TLS 1.2.
Here’s the error I saw before updating Lumpen Radio, which uses Webpack Dev Server to dynamically generate
index.ios.js over HTTP:
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
Info.plist file using the workaround the issue was fixed.
While updating I bumped Lumpen Radio to React Native
0.11.0 and CocoaPods
0.39.0.beta.4 while updating to Xcode
7 and started getting generic archives instead of iOS Archives while trying to release. After several hours of debugging I found an answer. If you’re using CocoaPods and start seeing the same problem it could be a number of things, but what I encountered differed from most.
If this was helpful and you like music please try out the free Lumpen Radio app or check out the full source code.