मैं एकता के लिए ios बिल्ड को स्वचालित करना चाहता हूं। पहला भाग कोई समस्या नहीं है। इसने xcodeproj फ़ाइल के साथ xcode के लिए एक संपूर्ण फ़ोल्डर जेनरेट किया।

मेरा लक्ष्य एक स्क्रिप्ट लिखना है जो मेरी परियोजना बनाता है और इसे ऐपस्टोर की परीक्षण उड़ान में अपलोड करता है। मैंने इन आदेशों का उपयोग करके एक .ipa फ़ाइल प्राप्त करने में कामयाबी हासिल की है:

xcodebuild -project Unity-iPhone.xcodeproj -scheme "Unity-iPhone" -sdk iphoneos -configuration Release archive -archivePath export/build/ts2.xcarchive
xcodebuild -exportArchive -archivePath export/build/ts2.xcarchive -exportOptionsPlist info.plist -exportPath export/build -allowProvisioningUpdates

हालाँकि जब मैंने इसे altool के साथ अपलोड करने का प्रयास किया, तो इसने गलत प्रोविज़निंग प्रोफ़ाइल का उपयोग करने के बारे में एक त्रुटि दी। यह सच है कि इसका विकास प्रोफाइल था न कि वितरण वाला। मैं कैसे निर्दिष्ट कर सकता हूं कि हस्ताक्षर करते समय किसका उपयोग करना है?

दुर्भाग्य से xcode इस बेकार के बारे में सभी ऑनलाइन संसाधनों को प्रस्तुत करने के लिए अक्सर ऐसा करने के अपने तरीके बदलता है

3
Z4urce 15 मई 2019, 11:37

1 उत्तर

सबसे बढ़िया उत्तर

आप एक .plist बना सकते हैं जिसमें वितरण के लिए उपयोग की जाने वाली प्रावधान प्रोफ़ाइल शामिल है। फिर इसे -exportOptionsPlist पैरामीटर में इंगित करें।

यदि आप इसे किसी स्क्रिप्ट में गतिशील रूप से करना चाहते हैं, तो आप इस तरह .plist उत्पन्न कर सकते हैं

    cat > "$BUILD_DIRECTORY/exportOptions.plist" <<EOF
<?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>method</key>
    <string>$EXPORT_METHOD</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>$BUNDLE_IDENTIFIER</key>
        <string>$PATH_TO_PROVISION_PROFILE</string>
    </dict>
</dict>
</plist>
EOF

फिर -exportArchive स्टेप पॉइंट पर -exportOptionsPlist "$BUILD_DIRECTORY/exportOptions.plist"

ऐप स्टोर के लिए $EXPORT_METHOD app-store होगा, लेकिन जरूरत पड़ने पर आप इसे enterprise, ad-hoc तक बढ़ा सकते हैं और संबंधित प्रोविजनिंग पाथ से बदल सकते हैं।

(पुनश्च मैं -allowProvisioningUpdates का उपयोग नहीं करता, इसलिए आप इसे हटाने का प्रयास कर सकते हैं।)

3
The_Falcon 15 मई 2019, 11:22