IPA (iOS App Store Package) হলো iOS-এ অ্যাপ্লিকেশন বিতরণের জন্য একটি আর্কাইভ ফাইল ফরম্যাট। প্রতিটি অ্যাপ্লিকেশন যা App Store-এ পৌঁছায়, IPA ফরম্যাটের মধ্য দিয়ে যায়: ডেভেলপার প্রকল্প তৈরি করে, সাইন করে এবং App Store Connect-এ IPA আপলোড করে। Apple Developer Documentation, 2026 অনুসারে, IPA ফরম্যাট ZIP-এর উপর ভিত্তি করে তৈরি এবং এতে এক্সিকিউটেবল Mach-O ফাইল, রিসোর্স এবং সাইনিং মেটাডেটা থাকে।
মূল বিষয়
IPA (iOS App Store Package) হলো Apple প্ল্যাটফর্মে অ্যাপ্লিকেশন বিতরণের জন্য একটি প্যাকেজ ফরম্যাট। APK-এর মতো, IPA প্রযুক্তিগতভাবে একটি ZIP আর্কাইভ, কিন্তু iOS নিরাপত্তা এবং সাইনিং প্রয়োজনীয়তা দ্বারা নির্ধারিত নিজস্ব গঠনসহ।
IPA ফরম্যাট 2008 সালে iPhone OS 2.0 এবং App Store-এর সাথে আবির্ভূত হয়। এটি macOS-এর .app বান্ডেল ফরম্যাট থেকে নেওয়া হয়েছিল, প্রেরণের সময় আকার কমানোর জন্য ZIP-এ প্যাকেজ করা। তখন থেকে IPA গঠনে কোনো বড় পরিবর্তন আসেনি — শুধুমাত্র সাইনিং স্কিম এবং মেটাডেটা বিবর্তিত হয়েছে।
App Store — প্রধান চ্যানেল। Ad-hoc বিতরণ — সীমিত সংখ্যক ডিভাইসে (100 পর্যন্ত) পরীক্ষার জন্য। Enterprise বিতরণ — স্টোরে প্রকাশ না করেই কর্পোরেট অ্যাপের জন্য। ডেভেলপাররা Xcode-এর মাধ্যমে বাস্তব ডিভাইসে পরীক্ষার জন্যও IPA ব্যবহার করে।
IPA-র অভ্যন্তরীণ গঠন হলো একটি ZIP আর্কাইভ যাতে .app বান্ডেলসহ Payload ফোল্ডার এবং মেটাডেটা থাকে।
| ফাইল/ডিরেক্টরি | উদ্দেশ্য |
|---|---|
| Payload/ | .app বান্ডেলসহ রুট ফোল্ডার |
| Payload/App.app/ | অ্যাপ বান্ডেল: এক্সিকিউটেবল ফাইল, রিসোর্স, nib/storyboard |
| Payload/App.app/Info.plist | মেটাডেটা: bundle ID, ভার্সন, অনুমতি |
| Payload/App.app/embedded.mobileprovision | ইনস্টলেশনের জন্য Provisioning Profile |
| iTunesMetadata.plist | iTunes মেটাডেটা (ঐচ্ছিক) |
| META-INF/ | যাচাইয়ের জন্য স্বাক্ষর এবং হ্যাশ |
Payload ফোল্ডারের ভিতরে .app এক্সটেনশনসহ অ্যাপ বান্ডেল থাকে। এটি ফাইল নয় বরং একটি ডিরেক্টরি যা iOS একটি অ্যাপ্লিকেশন হিসেবে চিনতে পারে। এর ভিতরে: এক্সিকিউটেবল Mach-O ফাইল (নাম বান্ডেলের নামের সাথে মেলে), Info.plist, রিসোর্স, ছবি এবং স্থানীয়কৃত স্ট্রিং।
Swift বা Objective-C-তে সোর্স কোড Mach-O (Mach Object) ফরম্যাটে মেশিন কোডে কম্পাইল হয়। ফাইলটিতে __TEXT (কোড), __DATA (ডেটা) এবং __LINKEDIT (লিঙ্কার মেটাডেটা) সেগমেন্ট থাকে। আধুনিক IPA-তে শুধুমাত্র 64-বিট arm64 আর্কিটেকচার থাকে।
Xcode IPA বিল্ড অটোমেট করে: সোর্স কোড কম্পাইল করা থেকে শুরু করে App Store Connect-এ আপলোডের জন্য প্রস্তুত সাইনকৃত আর্কাইভ তৈরি করা পর্যন্ত।
Debug — ডেভেলপমেন্টের জন্য, অপ্টিমাইজেশন ছাড়া। Release — প্রকাশনার জন্য, কম্পাইলার অপ্টিমাইজেশনসহ। প্রতিটি স্কিম কম্পাইলেশন ফ্ল্যাগ, কোড সাইনিং এবং এনটাইটেলমেন্ট নির্ধারণ করে। Xcode Product → Archive-এর মাধ্যমে আর্কাইভ তৈরি করে।
// Info.plist — অ্যাপের মৌলিক মেটাডেটা
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
Xcode প্রতিটি .swift বা .m ফাইলকে অবজেক্ট ফাইল (.o)-এ কম্পাইল করে, তারপর সেগুলোকে একটি একক Mach-O বাইনারিতে লিঙ্ক করে। রিসোর্স (ছবি, XIB, storyboard) আলাদাভাবে প্রক্রিয়া করা হয়: স্টোরিবোর্ড বাইনারি .storyboardc ফরম্যাটে কম্পাইল হয়, ছবি Asset Catalog (.car)-এ অপ্টিমাইজ করা হয়।
সাইনিং হলো IPA-র সবচেয়ে জটিল দিক। বাস্তব ডিভাইসে চলমান যেকোনো অ্যাপের জন্য Apple-এর ডিজিটাল স্বাক্ষর প্রয়োজন। সিস্টেম ডেভেলপার সার্টিফিকেট, এনটাইটেলমেন্ট এবং Provisioning Profile-এর সম্মতি যাচাই করে।
সার্টিফিকেট (Development বা Distribution) — ডেভেলপারের পরিচয় প্রমাণ করে। Provisioning Profile — সার্টিফিকেট, bundle ID এবং অনুমোদিত ডিভাইসের তালিকা (ad-hoc-এর জন্য) সংযুক্ত করে। এনটাইটেলমেন্ট — অ্যাপের অনুমতি (push বিজ্ঞপ্তি, iCloud, App Groups)।
Xcode .app বান্ডেলের ভিতরে প্রতিটি লাইব্রেরি এবং ফ্রেমওয়ার্ক সাইন করে, তারপর বান্ডেলটি নিজেই সাইন করে। চূড়ান্ত IPA ZIP আর্কাইভ স্তরে সাইন করা হয়। Apple ইনস্টলেশনের সময় সাইনিংয়ের সমস্ত স্তর যাচাই করে। iOS অ্যাপ্লিকেশন চালু করে না যদি অন্তত একটি উপাদানের স্বাক্ষর অবৈধ হয়।
// Security framework-এর মাধ্যমে স্বাক্ষর যাচাই
import Security
func checkSignature() -> Bool {
let url = Bundle.main.bundleURL
var staticCode: SecStaticCode?
guard SecStaticCodeCreateWithPath(
url as CFURL,
[], &staticCode
) == errSecSuccess else {
return false
}
return true
}
App Store Connect হলো অ্যাপ প্রকাশনা পরিচালনার জন্য Apple-এর প্ল্যাটফর্ম। IPA আপলোড Xcode Organizer, Transporter বা কমান্ড লাইনের মাধ্যমে xcrun altool ব্যবহার করে করা হয়।
আর্কাইভ তৈরি করার পর, Xcode Distribute App অফার করে যাতে পদ্ধতি নির্বাচন থাকে: App Store Connect, Ad-hoc, Enterprise বা Development। App Store Connect নির্বাচন করে, ডেভেলপার টিম নির্দিষ্ট করে এবং আপলোড নিশ্চিত করে। Xcode স্বাক্ষর যাচাই করে, Apple সার্ভারে IPA পাঠায় এবং প্রক্রিয়াকরণ অবস্থা ফেরত দেয়।
CI/CD-র জন্য xcrun altool বা নতুন notarytool ব্যবহার করা হয়। macOS অ্যাপের জন্য Apple-এর নোটারাইজেশন প্রয়োজন; iOS-এর জন্য এই ধাপটি ঐচ্ছিক তবে সুপারিশ করা হয়। xcodebuild -exportArchive আপলোডের জন্য প্রস্তুত সাইনকৃত IPA তৈরি করে।
Apple প্রতিটি IPA-কে ক্ষতিকর কোড, প্রাইভেট API এবং App Store Review Guidelines-এর সাথে সম্মতির জন্য পরীক্ষা করে। পর্যালোচনা প্রক্রিয়ায় 1 ঘন্টা থেকে 2 দিন সময় লাগে।
IPA App Store Connect-এ আপলোড করার সময়, Apple App Thinning প্রয়োগ করে — একটি প্রযুক্তি যা নির্দিষ্ট ডিভাইসের জন্য বাইনারি অপ্টিমাইজ করে। Slicing অসমর্থিত রেজোলিউশন এবং আর্কিটেকচারের জন্য রিসোর্স সরিয়ে দেয়। On-Demand Resources ব্যবহারকারীর অনুরোধে শুধুমাত্র অ্যাপের অংশ (গেম লেভেল, ভিডিও) লোড করার অনুমতি দেয়। Bitcode হলো একটি মধ্যবর্তী উপস্থাপনা যা Apple ডেভেলপারের অংশগ্রহণ ছাড়াই নতুন আর্কিটেকচারের জন্য পুনরায় কম্পাইল করতে পারে।
App Store Sandbox প্রয়োজনীয়তার সাথে IPA সম্মতিও পরীক্ষা করে: অ্যাপ্লিকেশন অন্যান্য অ্যাপের ডেটা, নিজের কন্টেইনারের বাইরে ফাইল সিস্টেম বা ব্যবহারকারীর স্পষ্ট অনুমতি ছাড়া হার্ডওয়্যার বৈশিষ্ট্যগুলিতে অ্যাক্সেস পাবে না।
TestFlight অ্যাপের বিটা পরীক্ষার জন্য Apple-এর অফিসিয়াল পরিষেবা। ডেভেলপার IPA App Store Connect-এ আপলোড করে এবং ইমেল বা পাবলিক লিঙ্কের মাধ্যমে পরীক্ষকদের আমন্ত্রণ জানায়।
Internal Testing — ডেভেলপার টিমের 100 সদস্য পর্যন্ত। Apple পর্যালোচনার প্রয়োজন নেই। External Testing — 10,000 পরীক্ষক পর্যন্ত, Beta App Review পাস করতে হবে। TestFlight স্বয়ংক্রিয়ভাবে পরীক্ষকদের কাছে বিল্ড বিতরণ করে এবং বিশ্লেষণ সংগ্রহ করে।
একটি বিল্ড আপলোডের পরে 90 দিন পরীক্ষার জন্য উপলব্ধ থাকে। TestFlight একসাথে 100টি সক্রিয় বিল্ড সমর্থন করে। প্রতিটি পরীক্ষক একবারে 30টি অ্যাপ পর্যন্ত ইনস্টল করতে পারে। Crashlytics ক্র্যাশ রিপোর্ট এবং নন-ফ্যাটাল ত্রুটি সংগ্রহ করতে TestFlight-এর সাথে সংহত হয়।
CI পরিবেশে IPA বিল্ডের জন্য macOS রানার প্রয়োজন। GitHub Actions, GitLab CI এবং Bitrise iOS বিল্ডের জন্য macOS পরিবেশ প্রদান করে। Fastlane lane `build_app` পুরো চক্র অটোমেট করে: আর্কাইভিং, সাইনিং, IPA এক্সপোর্ট এবং TestFlight-এ আপলোড। সার্টিফিকেট এবং প্রোফাইল পরিচালনার জন্য Match ব্যবহার করা হয় — একটি Fastlane টুল যা এনক্রিপ্টেড Git রিপোজিটরিতে স্বাক্ষর সংরক্ষণ করে।
ডেভেলপাররা IPA বিল্ড এবং সাইন করার সময় বেশ কিছু বৈশিষ্ট্যপূর্ণ ত্রুটির সম্মুখীন হন। অধিকাংশই সার্টিফিকেট এবং প্রোফাইলের ভুল কনফিগারেশনের সাথে সম্পর্কিত।
Xcode bundle ID এবং সার্টিফিকেটের সাথে মেলে এমন Provisioning Profile খুঁজে পায় না। সমাধান — Xcode Accounts → Download Manual Profiles-এ বর্তমান প্রোফাইল ডাউনলোড করুন বা Automatic Signing ব্যবহার করুন।
এই ত্রুটিটি অবৈধ আর্কিটেকচারসহ IPA আপলোড করার সময় ঘটে। আধুনিক IPA-তে শুধুমাত্র arm64 থাকা উচিত। বাইনারিতে i386 বা x86_64-এর উপস্থিতি প্রত্যাখ্যানের কারণ হয়। সমাধান — Build Settings-এ আর্কিটেকচার পরীক্ষা করুন এবং সিমুলেটর আর্কিটেকচার বাদ দিন।
IPA-তে সঠিক Payload/App.app গঠন নেই। Apple সঠিক অনুক্রম আশা করে। সমাধান — যাচাই করুন যে আর্কাইভে একটি .app বান্ডেলসহ Payload ফোল্ডার রয়েছে, ফাইলের ফ্ল্যাট তালিকা নয়।
এন্টারপ্রাইজ বিতরণের জন্য Enterprise Apple ডেভেলপার প্রোগ্রাম ($299/বছর) ব্যবহার করা হয়। IPA Enterprise সার্টিফিকেট দিয়ে সাইন করা হয় এবং পরিমাণ সীমা ছাড়া কোম্পানির যেকোনো ডিভাইসে ইনস্টল করা যায়। Ad-hoc বিতরণ প্রতি ডেভেলপার অ্যাকাউন্টে ($99/বছর) 100 ডিভাইসে সীমাবদ্ধ। MDM (মোবাইল ডিভাইস ম্যানেজমেন্ট) সিস্টেম যেমন Jamf এবং Microsoft Intune Enterprise IPA-র গণ ইনস্টলেশন সমর্থন করে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
IPA DEX-এর পরিবর্তে Mach-O এক্সিকিউটেবল ফরম্যাট ব্যবহার করে, ইনস্টলেশনের জন্য Provisioning Profile প্রয়োজন এবং কঠোর App Store পর্যালোচনার মধ্য দিয়ে যায়। APK, IPA-র বিপরীতে, মধ্যস্থতাকারী ছাড়াই সরাসরি ইনস্টল করা যায় (sideloading)।
না, IPA তৈরির জন্য Xcode এবং Apple টুল প্রয়োজন, যা শুধুমাত্র macOS-এ উপলব্ধ। বিকল্প: দূরবর্তী macOS সার্ভার (Mac mini, AWS Mac) বা ক্লাউড CI পরিষেবা (macOS রানারসহ GitHub Actions)।
সরল অ্যাপ — 5–30 MB। মাঝারি জটিলতার অ্যাপ — 30–150 MB। গেম 4 GB পর্যন্ত পৌঁছাতে পারে। Apple সেলুলার নেটওয়ার্কে ডাউনলোডের আকার 200 MB-তে সীমাবদ্ধ করে, তবে ব্যবহারকারী Wi-Fi-এর মাধ্যমে ডাউনলোড করতে পারে।
Ad-hoc ইনস্টলেশনের জন্য Xcode বা Apple Configurator ব্যবহার করা হয়। Enterprise অ্যাপ manifest.plist-সহ অভ্যন্তরীণ সার্ভারের মাধ্যমে বিতরণ করা হয়। সাধারণ ব্যবহারকারী jailbreak বা TestFlight ছাড়া IPA ইনস্টল করতে পারে না।
Fat IPA-তে সার্বজনীন বিল্ডের জন্য একাধিক আর্কিটেকচার (arm64 + x86_64) থাকে। Thin IPA-তে নির্দিষ্ট ডিভাইসের জন্য শুধুমাত্র একটি আর্কিটেকচার থাকে। Apple প্রকাশনার জন্য শুধুমাত্র thin IPA গ্রহণ করে — fat বাইনারি প্রত্যাখ্যান করা হয়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন