Skip to main content

Project Configuration

App Name

Set app name {APP_DISPLAY_NAME} same as sample project

POD

Add certification, provision

Add certification, provision file, update key chain with private key in folder keys, password of private key in key.txt file. Double click on .p12 file then enter password. Import certificate distribution by double click on ios_distribution.cer and ios_development.cer

show key 2

Import provisioning profile by double click on 2 files xxx.mobileprovision then make sure xcode show like below

provisioning 4

Build Settings

Add to Build Settings → Other Linker Flags:

  • $(inherited)
  • -ObjC

buid settings

{APP_DISPLAY_NAME} is the user‑facing app name. In your build config, set Product Name to an ASCII‑only string (e.g., MangaBaChay, KiemKhachPhongLang).

build packing config

Info.plist

Open Info.plist as Source Code and add:

<key>CFBundleName</key>
<string>{APP_DISPLAY_NAME}</string>
<key>CFBundleDisplayName</key>
<string>{APP_DISPLAY_NAME}</string>

App Tracking Transparency (iOS 14+)

<key>NSUserTrackingUsageDescription</key>
<string>Cho phép theo dõi để nhận phần thưởng, ưu đãi và gợi ý trò chơi phù hợp dành riêng cho bạn.</string>
Improve your ATT opt-in rate

The NSUserTrackingUsageDescription text appears directly in Apple's native permission dialog. A clear, benefit-focused message significantly increases the percentage of users who allow tracking — which directly improves paid campaign attribution accuracy for Facebook, Google Ads, and TikTok.

SKAdNetwork / AdSupport

<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://adjust-skadnetwork.com</string>
<key>SKAdNetworkItems</key>
<array>
<!-- Last updated: 2026-02-27 | Facebook · TikTok · Google Ads · Unity Ads
Verify against your MMP (Adjust dashboard → SKAdNetwork) before each release. -->
<dict><key>SKAdNetworkIdentifier</key><string>22mmun2rn5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>238da6jt44.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>24t9a8vw3c.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>24zw6aqk47.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>252b5q8x7y.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>275upjj5gd.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>294l99pt4k.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>2fnua5tdw4.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>2u9pt9hc89.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>32z4fx6l9h.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>3l6bd9hu43.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>3qcr597p9d.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>3qy4746246.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>3rd42ekr43.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>3sh42y64q3.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>424m5254lk.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>4468km3ulz.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>44jx6755aq.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>44n7hlldy6.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>47vhws6wlr.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>488r3q3dtq.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>4dzt52r2t5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>4fzdc2evr5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>4mn522wn87.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>4pfyvq9l8r.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>4w7y6s5ca2.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>523jb4fst2.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>52fl2v3hgk.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>54nzkqm89y.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>578prtvx9j.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>5a6flpkh64.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>5l3tpt7t6e.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>5lm9lj6jb7.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>5tjdwbrq8w.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>6964rsfnh4.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>6g9af3uyq4.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>6p4ks3rnbw.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>6v7lgmsu45.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>6xzpu9s2p8.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>737z793b9f.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>74b6s63p6l.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>79pbpufp6p.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>7fmhfwg9en.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>7rz58n8ntl.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>7ug5zh24hu.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>84993kbrcf.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>89z7zv988g.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>8c4e2ghe7u.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>8m87ys6875.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>8r8llnkz5a.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>8s468mfl3y.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>97r2b46745.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>9b89h5y424.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>9nlqeag3gk.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>9rd848q2bz.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>9t245vhmpl.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>9vvzujtq5s.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>9yg77x724h.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>a2p9lx4jpn.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>a7xqa6mtl2.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>a8cz6cu7e5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>av6w8kgt66.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>b9bk5wbcq9.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>bvpn9ufa9b.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>bxvub5ada5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>c3frkrj4fj.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>c6k4g5qg8m.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>cg4yq2srnc.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>cj5566h2ga.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>cp8zw746q7.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>cs644xg564.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>cstr6suwn9.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>dbu4b84rxf.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>dkc879ngq3.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>dzg6xy7pwj.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>e5fvkxwrpn.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>ecpz2srf59.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>eh6m2bh4zr.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>ejvt5qm6ak.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>f38h382jlk.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>f73kdq92p3.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>f7s53z58qe.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>feyaarzu9v.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>g28c52eehv.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>g2y4y55b64.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>g6gcrrvk4p.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>ggvn48r87g.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>glqzh8vgby.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>gta8lk7p23.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>gta9lk7p23.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>hb56zgv37p.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>hdw39hrw9y.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>hs6bdukanm.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>k674qkevps.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>kbd757ywx3.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>kbmxgpxpgc.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>klf5c3l5u5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>krvm3zuq6h.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>lr83yxwka7.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>ludvb6z3bs.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>m297p6643m.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>m5mvw97r93.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>m8dbw4sv7c.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>mj797d8u6f.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>mlmmfzh3r3.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>mls7yz5dvl.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>mp6xlyr22a.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>mqn7fxpca7.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>mtkv5xtk9e.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>n38lu8286q.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>n66cz3y3bx.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>n6fk4nfna4.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>n9x2a789qt.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>nzq8sh4pbs.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>p78axxw29g.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>ppxm28t8ap.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>prcb7njmu6.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>pwa73g5rt2.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>pwdxu55a5a.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>qqp299437r.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>qu637u8glc.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>r45fhb6rf7.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>rvh3l7un93.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>rx5hdcabgc.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>s39g8k73mm.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>s69wq72ugq.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>su67r6k2v3.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>t38b2kh725.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>tl55sbb4fm.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>u679fj5vs4.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>uw77j35x4d.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>v4nxqhlyqp.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>v72qych5uu.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>v79kvwwj4g.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>v9wttpbfk9.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>vcra2ehyfk.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>vhf287vqwu.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>vutu7akeur.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>w9q455wk68.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>wg4vff78zm.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>wzmmz9fp6w.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>x44k69ngh6.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>x5l83yy675.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>x8jxxk4ff5.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>x8uqf25wch.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>xga6mpmplv.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>xy9t38ct57.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>y45688jllp.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>y5ghdn5j9k.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>yclnxrl5pm.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>ydx93a7ass.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>zmvfpc5aq8.skadnetwork</string></dict>
<dict><key>SKAdNetworkIdentifier</key><string>zq492l623r.skadnetwork</string></dict>
</array>
tip

This list was last updated 2026-02-27 (Facebook · TikTok · Google Ads · Unity Ads). Ad networks update their identifiers periodically — re-verify against your Adjust dashboard → SKAdNetwork before each App Store release.

App Transport Security (ATS)

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

Non‑exempt encryption

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Facebook & Google config

Replace placeholders with values from the sample project:

<key>FacebookAdvertiserIDCollectionEnabled</key>
<true/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb{COPY-FACEBOOK-ID}</string>
<string>{COPY-GOOGLE-REVERSED_CLIENT_ID}</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>{COPY-FACEBOOK-ID}</string>
<key>FacebookDisplayName</key>
<string>{COPY-FACEBOOK-NAME}</string>
<key>FacebookClientToken</key>
<string>{COPY-FACEBOOK-TOKEN}</string>
<key>GIDClientID</key>
<string>{COPY-GOOGLE-CLIENT_ID}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fbapi20130214</string>
<string>fbapi20130410</string>
<string>fbapi20130702</string>
<string>fbapi20131010</string>
<string>fbapi20131219</string>
<string>fbapi20140410</string>
<string>fbapi20140116</string>
<string>fbapi20150313</string>
<string>fbapi20150629</string>
<string>fbapi20160328</string>
<string>fbauth</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>

Background modes

<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>

Capabilities & Entitlements

Enable Push, Sign in with Apple, Associated Domains, etc. Example entitlements:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
<key>com.apple.developer.associated-domains</key>
<array>
<string>webcredentials:vgplay.vn</string>
<string>authsrv:vgplay.vn</string>
<string>applinks:vgplay.vn</string>
</array>
<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>
</dict>
</plist>

Config Entitlements

And in Project > Capabilities add:

webcredentials:vgplay.vn
authsrv:vgplay.vn
applinks:vgplay.vn

Config Capabilities