गाइड

Windows से अपना iOS ऐप बिल्ड करें, हर framework के लिए अलग

Flutter, React Native, Unity, Godot या MAUI ऐप आप Windows पर लिख सकते हैं। सिर्फ़ iOS बिल्ड के लिए Mac चाहिए। ये सभी टूल आखिरी काम Xcode को सौंपते हैं। यह पेज बताता है कि हर framework के लिए Mac पर क्या चलाना है। यह भी दिखाता है कि नतीजा कैसे अपलोड करें।

हर framework में Mac किस काम के लिए चाहिए

यह हर प्रोजेक्ट के अपने docs की बात है। हमने इन्हें 18 अक्टूबर 2026 को पढ़ा।

  • Flutter: iOS release गाइड कहती है कि Xcode ज़रूरी है और macOS वाला डिवाइस इस्तेमाल करना होगा। आपका Dart कोड और Android बिल्ड Windows या Linux पर रह सकते हैं।
  • React Native: App Store गाइड release बिल्ड Xcode में करती है। JavaScript का काम और Jest टेस्ट किसी भी सिस्टम पर चलते हैं।
  • Expo: EAS Build, Expo के cloud में macOS मशीनों पर iOS बिल्ड चलाता है। इसलिए शायद आपको अपना Mac कभी न चाहिए।
  • Unity: editor एक Xcode प्रोजेक्ट लिखता है, और Xcode उससे ऐप बिल्ड करता है। Unity कहता है कि लोकल iOS बिल्ड के लिए macOS चाहिए।
  • Godot: docs कहते हैं कि iOS के लिए export, Xcode इंस्टॉल वाले macOS कंप्यूटर से ही करना होगा। यानी export का स्टेप भी Mac पर होता है।
  • .NET MAUI: Windows पर Visual Studio, SSH से Mac से जुड़ता है। Mac ऐप को compile और sign करता है।

दो पुरानी गाइड आम स्थिति को कवर करती हैं। API keys, signing और TestFlight के लिए बिना Mac के पब्लिश करना पढ़ें। रिमोट स्क्रीन और कीबोर्ड के लिए Windows पर Xcode पढ़ें। यह पेज सिर्फ़ कमांड पर टिका है।

शुरू करने से पहले: अकाउंट और signing

  • आपको paid Apple Developer Program membership चाहिए। यह 99 USD प्रति साल है।
  • App Store Connect में ऐप रिकॉर्ड बनाएँ। यह किसी भी ब्राउज़र से हो जाता है।
  • Mac पर Xcode में अपना Apple Account जोड़ें। फिर Signing and Capabilities में अपनी team चुनें।
  • Automatically manage signing चालू रहने दें। तब Xcode आपके लिए certificate और profile बना देता है।

Flutter: flutter build ipa

Mac पर Flutter इंस्टॉल करें और अपनी repository वहाँ clone करें। फिर प्रोजेक्ट फ़ोल्डर में यह एक कमांड चलाएँ:

flutter build ipa

Flutter के docs के अनुसार यह build/ios/archive में एक .xcarchive और build/ios/ipa में एक .ipa लिखता है। वर्ज़न सेट करने के लिए --build-name और --build-number इस्तेमाल करें। Flutter नतीजा अपलोड करने के तीन तरीके बताता है। आप .ipa को Mac पर Apple के Transporter ऐप में खींच सकते हैं। आप archive को Xcode में खोलकर Distribute App दबा सकते हैं। या App Store Connect API key से टर्मिनल से अपलोड कर सकते हैं:

xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa \
  --apiKey your_api_key --apiIssuer your_issuer_id

React Native: Xcode में archive

React Native गाइड release, Xcode window में करती है। पहले pods इंस्टॉल करें, फिर workspace खोलें:

cd ios
bundle exec pod install
open MyApp.xcworkspace
  • Product, Scheme, Edit Scheme में Run का build configuration Release पर सेट करें।
  • डिवाइस को Any iOS Device (arm64) पर सेट करें, फिर Product, फिर Archive चुनें।
  • archive window में Distribute App, फिर App Store Connect, फिर Upload दबाएँ।

इसके बाद बिल्ड App Store Connect में TestFlight के नीचे दिखता है। टर्मिनल से release करना हो, तो xcodebuild archive और -exportArchive इस्तेमाल करें। flags हमारी पब्लिशिंग गाइड में हैं। पूरे Windows और Linux workflow के लिए बिना Mac के React Native iOS बिल्ड देखें।

Expo पर आप बिल्ड के लिए Mac छोड़ सकते हैं। Windows से यह चलाएँ, और बिल्ड Expo के macOS runners पर होता है:

eas build --platform ios

Simulator या Xcode का debugger चाहिए, तो Mac फिर भी चाहिए।

Unity: Windows पर बिल्ड, Mac पर archive

Build Settings में iOS चुनें और Build दबाएँ। Unity एक Xcode प्रोजेक्ट वाला फ़ोल्डर लिखता है। Run in Xcode का विकल्प सिर्फ़ macOS पर दिखता है, इसलिए Windows पर काम यहीं रुकता है। फ़ोल्डर को SSH से Mac पर कॉपी करें:

scp -r Builds/iOS you@your-mac:~/MyGame-iOS

Mac पर उस फ़ोल्डर के अंदर का .xcodeproj खोलें। Unity-iPhone scheme चुनें। यह launcher target है जो UnityFramework चलाता है। डिवाइस को Any iOS Device पर सेट करें, फिर Product, फिर Archive चुनें। Organizer window से इसे किसी भी दूसरे iOS ऐप की तरह distribute करें।

बड़ा गेम बड़ा फ़ोल्डर बनाता है, इसलिए कॉपी का समय आपकी अपलोड स्पीड पर निर्भर है। Unity, Build Automation भी देता है, जो गेम को Unity के cloud में बिल्ड करता है।

Godot: Mac पर export

Godot का iOS export सिर्फ़ macOS पर चलता है। Mac पर Godot और उसके export templates इंस्टॉल करें, फिर अपना प्रोजेक्ट वहाँ खोलें।

  • Project, फिर Export खोलें, फिर Add दबाकर iOS चुनें।
  • App Store Team ID और Bundle Identifier भरें। exporter को दोनों चाहिए।
  • Team ID 10 अक्षरों का एक कोड है, Xcode में दिखने वाला आपका नाम नहीं।
  • Export Project दबाएँ और फ़ाइलों के लिए एक खाली फ़ोल्डर चुनें।
  • जो .xcodeproj बनता है उसे खोलें, फिर Product, फिर Archive चुनें।

.NET MAUI: Visual Studio को Mac से pair करें

Microsoft का Pair to Mac फ़ीचर Mac के बिल्ड SSH पर चलाता है, इसलिए Remote Login चालू होना चाहिए। Xcode हाथ से इंस्टॉल करके एक बार खोलना होगा। Microsoft, Mono भी माँगता है, और Apple silicon पर Rosetta भी। Visual Studio में Tools, iOS, Pair to Mac खोलें। अगर Mac सूची में नहीं है, तो उसके पते से उसे जोड़ें।

आप Windows command line से भी पब्लिश कर सकते हैं। यह Visual Studio 2026 के लिए Microsoft का उदाहरण है, बस पासवर्ड हटा दिया है:

dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true \
  -p:RuntimeIdentifier=ios-arm64 \
  -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" \
  -p:CodesignProvision="MyMauiApp" \
  -p:ServerAddress={macOS build host IP address} \
  -p:ServerUser={macOS username} -p:TcpPort=58181 \
  -p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/maui/PairToMac/SDKs/dotnet/

net8.0-ios की जगह अपना target framework डालें। पासवर्ड flag न हो, तो Pair to Mac पहले कनेक्शन पर सेव की गई SSH keys इस्तेमाल करता है। sign की गई .ipa आपके PC पर bin\Release के अंदर आती है। अपलोड के लिए Microsoft, Transporter की सलाह देता है।

अपलोड: Apple आज क्या बताता है

Apple का अपलोड पेज चार टूल गिनाता है: Xcode, Swift Playground, altool और Transporter। वह कहता है कि Transporter और altool हर target type को सपोर्ट करते हैं। altool के बंद होने की कोई तारीख वह नहीं देता। Transporter एक macOS ऐप है, पर उसका command line वर्ज़न कुछ सीमाओं के साथ Windows पर भी चलता है। हमारी पब्लिशिंग गाइड उन सीमाओं को समझाती है।

Cloud बिल्ड या किराए का Mac?

पहले देखें कि आपको क्या चाहिए। अगर कभी कभी बस एक .ipa चाहिए, तो cloud बिल्ड काफ़ी हो सकता है। Codemagic, EAS Build और GitHub Actions के macOS runners, सभी iOS ऐप बिल्ड करते हैं। हमारी GitHub Actions गाइड एक सेटअप दिखाती है।

किराए का Mac दूसरे कामों के लिए सही है। हो सकता है आपको कोई स्क्रीन जाँचने के लिए Simulator चाहिए, या crash के लिए Xcode का debugger। signing की गड़बड़ी Xcode window में ठीक करना आसान है। और कुछ टीमें release का हर स्टेप होते हुए देखना चाहती हैं।

$15 के Mac पर release का दिन

बहुत से ऐप साल में बस कुछ बार ship होते हैं। उसके लिए MacRun का एक दिन का पास $15 का है, एक बार भुगतान, कोई रिन्यू नहीं। एक हफ़्ता $59 का है, जिससे review के बाद fix का समय मिल जाता है। अगर आप हर कुछ हफ़्तों में ship करते हैं, तो मासिक प्लान $139 से शुरू होते हैं।

  • आपको एक डेडिकेटेड Mac mini मिलता है, शेयर किया हुआ नहीं, एडमिन अधिकार के साथ।
  • Xcode 27.1 डिफ़ॉल्ट है, और पुराने प्रोजेक्ट के लिए Xcode 26.6 भी इंस्टॉल है।
  • iOS 27.1 simulator, iPhone Duo के साथ, पहले से इंस्टॉल है।
  • Mac 5 मिनट से कम में इस्तेमाल के लिए तैयार हो जाता है।
  • SSH और स्क्रीन शेयरिंग, Windows या Linux से, प्राइवेट Tailscale नेटवर्क पर चलते हैं।

पास खत्म होने पर Mac मिटा दिया जाता है। उससे पहले अपना कोड push करें और अपनी signing फ़ाइलें कॉपी कर लें।

अक्सर पूछे जाने वाले सवाल

क्या मैं Windows पर iOS ऐप बिल्ड कर सकता हूँ?

+

आप इसे Windows पर लिख सकते हैं। iOS बिल्ड के लिए Xcode चाहिए, जो सिर्फ़ macOS पर चलता है। उस स्टेप के लिए किराए का Mac, CI runner या cloud build सर्विस इस्तेमाल करें।

क्या Flutter, Windows पर iOS बिल्ड कर सकता है?

+

नहीं। Flutter की iOS release गाइड कहती है कि इस स्टेप के लिए macOS वाला डिवाइस चाहिए। Mac पर flutter build ipa चलाएँ, फिर .ipa को Transporter, altool या Xcode से अपलोड करें।

क्या मैं बिना Mac के React Native iOS ऐप बिल्ड कर सकता हूँ?

+

Expo के साथ हाँ, क्योंकि EAS Build, Expo के cloud में macOS मशीनों पर iOS बिल्ड चलाता है। Expo के बिना, Xcode में ऐप archive करने के लिए Mac चाहिए।

क्या Unity, Windows पर iOS के लिए बिल्ड कर सकता है?

+

Unity, Xcode प्रोजेक्ट लिखता है। फिर Xcode ऐप बिल्ड करता है, और Xcode सिर्फ़ macOS पर चलता है। प्रोजेक्ट Mac पर कॉपी करके वहाँ archive करें, या Unity Build Automation इस्तेमाल करें।

Windows से iOS ऐप कैसे अपलोड करें?

+

Apple का Transporter command line टूल Windows पर चलता है। फिर भी उसे एक फ़ाइल चाहिए जो Xcode बिल्ड के साथ export करता है। इसलिए बिल्ड खुद Mac से ही आता है।

संबंधित गाइड