Many times during the development process, we fall into the abyss of being compelled to integrate a social network Api/SDK into our app. As many of you know, it can be very tedious and it varies greatly between technologies. This article focuses on what we need to have in mind to create and upload our iOS app building for Facebook review process and the permissions during login that, as developers, we can access to from a logged in user of our app using Facebook SDK/API.
App “maturity” is required
The first thing to have into account is that our app has to be feature complete as far as Facebook integration is concerned -where the Facebook SDK is used and has a visible way to be tested. Facebook reviewers are gonna require this maturity during the process, before allowing us to use them on “production environment”. This is a way to protect their platform policy and to make sure we are not messing around with their servers.
Creating and managing a “Facebook app”
When using Facebook API or integrating the iOS Facebook SDK, we need to create what Facebook calls an “app”, a space from where developers can configure and manage app data for development or even marketing and legal purposes. In this space, once it goes into production, we can find an “Application page” on Facebook dedicated to our app from where we can post and manage the site like a normal Facebook page. This way, it isn’t necessary to create apps using personal accounts, something that’s important since many product owners wanted to use these spaces for marketing purposes. Then, to create an app, we need:
- Ask/Give to product owner a Facebook account to use during development process.
- Get into https://developers.facebook.com using that account. Once done this, the site will ask if we want to activate the account for “developer mode”.
- Follow Facebook process to activate this “developer mode” into the account.
- Create an app so you can get the Secret Key and use it for initializing the Facebook API or SDK.
Do not use personal accounts for app creation. This way is easier to give project ownership to product owners later on.
Facebook API permissions
We’re always aware of the API version in use and when a new API version is gonna be released, a moment when Facebook usually use to change the API/SDK. For this reason is not worth listing the permissions as they are subject to changes. By the way, you can see the complete list and details on https://developers.facebook.com/docs/facebook-. There’re two types of permissions:
- Default Permissions its use does not require a review process.
- Advanced Permissions (whose use on “production environment” need to be approved by Facebook review process).
Keep in mind that the review process can take between one or two weeks in the worst cases and without this approval, Advanced Permission will not work on “production environment”. It’s important to plan the App Store release with caution.
Once you have created the app on the site, you can access the”App” section and create Approval requests (one at the time). From there, you can select the permissions to request for approval. Once we selected the requested permissions for our app, a form will be generated. There, the developer must complete three fields:
- How the permission is gonna be used in the app.
- The platform from which the permission is gonna be used.
- A video tutorial showing step by step the functionality integrated in the app (screencast is recommended).
Finished this, you will need to upload an app building (archive) exported using the provided tutorial on Facebook site and submit it (happily, the form has a great error handling so you don't forget any step).
Building for Facebook review process
If you are gonna create an application that uses Facebook login, you’ll need to apply for a review. Consult the norms of revision.
For iOS applications dev you must provide a binary package from the simulator and upload it to theapply form. To create this you need to:
- Step 1: Execute the app in the simulator. Execute the app on the Xcode simulator. Automatically a building is generated in the simulator cache DerivedData of Xcode.
- Step 2: Compress the simulator building in a ZIP file Create a ZIP file of the simulated building with the next command:
12345ditto -ck -- sequesterRsrc -- keepParent `ls -1 -d -t~/Library/Developer/Xcode/DerivedData/*/Build/Products/*-iphonesimulator/*.app |head -n 1` path/to/YourApp.zip
- Step 3: Check the building (Not tested). The simulated building can be tested using the ios-sim utility. Once installed, execute:
1ios-sim launch /path/to/your-app.app
- Step 4: Send the file for review. Send the ZIP file for review (i.e YourApp.zip) using the application panel. Keep in mind that the building given by Facebook will be erased after three weeks of processing; that is to say, after the review or cancellation.
Check this link for app building creation if needed.
Check this link if you have enquiries or doubts about how to integrate all this. Since Facebook usually changes API version every 6 months, the integration can change heavily and invalidate any already integrated one.
Please check https://developers.facebook.com for changes.
Till next time!