আইপিএ তৈরি করার সময় এক্সকোড 6.1 ত্রুটি


140

আজ সবেমাত্র Xcode 6.1 এ আপগ্রেড হয়েছে এবং অনুমান করুন: এখন টেস্টফ্লাইট ডেস্কটপ অ্যাপ ব্যবহার করে বিল্ডগুলি জমা দিতে আমার সমস্যা হচ্ছে having অ্যাপ্লিকেশনটি আইপিএ তৈরি করতে শুরু করার সময় আমি ত্রুটিটি পেয়েছি:

ভূল

ত্রুটি: / ইউএসআর / বিন / কোডসাইন --ফোর্স - প্রিজার-মেটাডেটা = সনাক্তকারী, এনটাইটেলমেন্টস, রিসোর্স-বিধি - সাইন 854059d45eed724593debef577a562e1ba96ab55 --res स्त्रोत-বিধিগুলি / tmp / QYFSJIvu7W / পেলোড / এক্সএক্স / অ্যাপস / রিসোর্স রুলস / টিএমপি /QYFSJIvu7W/Payload/XX.app ত্রুটির সাথে ব্যর্থ হয়েছে 1. আউটপুট: সতর্কতা: "রিসোর্স-বিধি" বিকল্পের সাথে প্রিফারিজ-মেটাডেটার ব্যবহার (ম্যাক ওএস এক্স> = 10.10 এ অবমূল্যায়ন)! সতর্কতা: ম্যাক ওএস এক্স> = 10.10 - - উত্স-বিধি নিষ্ক্রিয় করা হয়েছে! /tmp/QYFSJIvu7W/Payload/XX.app/ResourceRules.plist: সংস্থানগুলি পড়তে পারে না

'সমর্থন নিবন্ধ' এর কী চলছে সে সম্পর্কে কোনও ধারণা নেই।

এটি টেস্টফ্লাইট সমস্যা বলে মনে হচ্ছে না কারণ জেনকিন্সের মতো সিআই পরিবেশে এক্সক্রুন বা অনুরূপ সরঞ্জাম ব্যবহার করে একই জিনিস ঘটে happens

অ্যাপ্লিকেশন কয়েক মাস ধরে আপডেট করা হয়নি, তাই আমি জানি যে শীঘ্রই এটিকে ঠিক করার জন্য কোনও আপডেটের আশা করা উচিত নয়। এটি আমার এবং আমার ক্লায়েন্টদের জন্য সত্যই ভাল কাজ করত তাই আমি অন্য কোনও কারণে এটিকে ত্যাগ করার বিষয়ে সত্যই আগ্রহী নই।

এই ত্রুটিটি কী সম্পর্কে রয়েছে এবং কীভাবে এটি ঠিক করা যায় তার জন্য কোনও ধারণা খুব প্রশংসা হবে।


4
এটা একটা TestFlight সমস্যা হতে কারণ একই জিনিস ভালো xcrun কমান্ড ব্যবহার করে একটি সি আই পরিবেশে ঘটে বলে মনে হচ্ছে না: xcrun -sdk iphoneos PackageApplication -v <Path_to_App> -o <Path_to_IPA> --sign <Distribution_certificate> --embed <Provisioning_profile>। এক্সকোড 6.0.1 এর সাথে, এটি সমস্ত ঠিক আছে।
ড্যানিয়েল

উত্তর:


312

আশা করি আমি জানতাম কেন এটি কাজ করে, তবে এখানে একটি স্থিরতা রয়েছে যা আমার পক্ষে কাজ করেছে:

ফিক্স পাওয়া গেল!

আপনার প্রকল্পে ক্লিক করুন> লক্ষ্যগুলি> আপনার লক্ষ্য নির্বাচন করুন> সেটিংস তৈরি করুন>

Code Signing Resource Rules Path

এবং যোগ করুন :

$(SDKROOT)/ResourceRules.plist


7
ধন্যবাদ! সত্যিই আমি কেন এটি কাজ করে তা চিন্তা করি না :) অ্যাপল গত কয়েক মাসের মধ্যে তাদের স্ক্রু-আপগুলির দুর্দান্ত স্ট্রাইকটি কী ভেঙেছে তার মধ্যে সর্বশেষতম। যাইহোক, সমাধান নির্দেশ করার জন্য ধন্যবাদ। (এবং পোস্ট করার আগে ত্রুটিটি পুঙ্খানুপুঙ্খভাবে অনুসন্ধান না করার জন্য আমার জন্য একটি ডাউনওয়েট)
akafak Gezer

10
আপনি যদি কোনও স্ক্রিপ্ট বা কমান্ড লাইনের মাধ্যমে আপনার xcodeproj সেটিংস সম্পাদনা করেন তবে CODE_SIGN_RESOURCE_RULES_PATH হল পরিবর্তনশীল নাম। বিকাশকারী.এপলল.লাইবারি
আইওস

5
আমি Code Signing Resource Rules Pathআমার বিল্ড সেটিংসে দেখতে পাচ্ছি না। কোন ধারণা?
গেয়র্গ

7
কি নির্বাচিত সব এবং বেসিক সেটিংস (নীচের "জেনারেল কেপেবিলিটিস, তথ্য, বিল্ড সেটিং ইত্যাদি" সারি) করুন
আঃ

স্পষ্টতই এটি আপনার অ্যাপ্লিকেশনটিকে প্রত্যাখ্যান করবে: stackoverflow.com/questions/26488077/…
গ্লেন মেইনার্ড

61

প্যাকেজ অ্যাপ্লিকেশনগুলির জন্য নিম্নলিখিত প্যাচটি এটি আমার জন্য স্থির করে দিয়েছিল, আমি সম্পদ-বিধিগুলি সরিয়ে দিয়েছি কারণ এটি বলছে যে এটি 10.10-এ অবচিত হয়েছে।

টেস্টফ্লাইট এটি ছাড়া কাজ তৈরি করে। অ্যাপস্টোরও বিল্ড করে।

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
 % diff PackageApplication PackageApplicationFixed 
155,157c155,156
<     my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
<                          "--sign", $opt{sign},
<                          "--resource-rules=$destApp/ResourceRules.plist");
---
>     my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
>                          "--sign", $opt{sign});

প্যাকেজ অ্যাপ্লিকেশন থেকে দুর্বৃত্ত পরামিতিগুলি সরানো হয়েছে, এবং বিল্ডোজার এখন আইওএসের জন্য আমার পাইথন অ্যাপ্লিকেশনটি তৈরি করে
ইয়ান এলিস

দুর্দান্ত ফিক্স! অনেক ধন্যবাদ :) উপরের "কোড সাইন ইন রিসোর্স রুলস পাথ" সেটিংস আমার সমস্যাটি সমাধান করে নি তবে এই উত্তরটি করেছে, প্লাসটি এখন সমস্ত প্রকল্পে বিশ্বব্যাপী :)
পেলেট

@ আইএনইলিস: আপনি কি দয়া করে আমাকে জানান যে কীভাবে আপনি প্যাকেজ অ্যাপ্লিকেশন থেকে "রিসোর্স-বিধি" পরামিতি সরিয়েছেন। এতে অনেক সাহায্য হবে !!
রশ্মি রঞ্জন mallick

8
প্যাকেজ অ্যাপ্লিকেশনটি ঠিক করার জন্য এখানে অনিলিঞ্জার রয়েছে: পার্ল-পি-আই'রিগ '-e' বিগিন {অপরিশোধিত $ /; resource এস /, রিসোর্স-বিধি (। * চিহ্ন})। * রিসোর্স রুলস.পল্লিস্ট "/ $ 1 / এসএমজি '" / আবেদনগুলি / Xcode6.1.1.app / সূচিপত্র / ডেভেলপার / প্ল্যাটফর্ম / iPhoneOS.platform / ডেভেলপার / usr / bin / PackageApplication "(আপনার পাথ সমন্বয়) এবং একটি পূর্ণ স্ক্রিপ্ট এই আবেদন করতে: bitbucket.org/WeWantToKnow/xcode_scripts/raw/... ব্যবহার করতে হবে: xcode_fix_Package অ্যাপ্লিকেশন রিসোর্স Rules.sh
অ্যাপ্লিকেশনস

এটা সঠিক উত্তর. বিল্ড সেটিংয়ের উত্তরটি হ্রাসকারী এপিআই ব্যবহার করতে বাধ্য করে।
জেমসন 21

10

আমি টেস্টফ্লাইট সমর্থন ইমেল এবং এই প্রতিক্রিয়া পেয়েছি:

আমাদের দলটি বর্তমানে টেস্টফ্লাইট ডেস্কটপ অ্যাপ্লিকেশন দিয়ে এই সমস্যাটি তদন্ত করছে। এর মধ্যে, আইপিএ ফাইল তৈরি করতে দয়া করে এক্সকোড ব্যবহার করুন এবং তারপরে ডেস্কটপ অ্যাপ্লিকেশন বা টেস্টফ্লাইট ওয়েবসাইট ব্যবহার করে এটি আপলোড করুন।

প্রস্তাবিত কাজটি কাজ করেছে।


1
এটি আমার জন্য এক্সকোড দিয়ে .ipa তৈরি করতে এবং ডেস্কটপ অ্যাপের মাধ্যমে আপলোড করার জন্য কাজ করেছিল।
livetech

@ লিভিংটেক হ্যাঁ, তবে আমি ভয় পেয়েছি "জ্যাকোড যে নতুন ছবিটি পছন্দ করতে চাইছে তার পরিবর্তে একটি নতুন প্রোফাইল তৈরি করছে" -বাগ :) টেস্টফ্লাইটের সাথে সরাসরি আপলোড করা দুর্দান্ত কাজ করেছে।
হেলমেসো

10

উত্তর টিম Gostony দ্বারা আর Xcode 7. মুক্তির যেহেতু কাজ করে এখন App স্টোর বা দোকান জমা দেওয়ার প্রক্রিয়া ব্যর্থ হলে রিসোর্স নিয়ম উপস্থিত থাকে। সমাধানটি হ'ল আপনার কোড সাইনিং রিসোর্স বিধি পাথ সাফ করা এবং এক্সক্রুনকে এক্সকোডবিল্ড সরঞ্জাম দিয়ে প্রতিস্থাপন করুন:

xcodebuild -exportArchive -archivePath [path to archive] -exportPath [path to output directory] -exportOptionsPlist [path to options.plist file]

অ্যাড-হক বিতরণ আইপা ফাইল রফতানি করার জন্য সবচেয়ে সহজ বিকল্পগুলি.পুলিস্টটি দেখতে এই জাতীয় দেখাচ্ছে:

<?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>iCloudContainerEnvironment</key>
    <string>Production</string>
    <key>teamID</key>
    <string>[YOUR TEAM ID]</string>
    <key>method</key>
    <string>ad-hoc</string>
</dict>
</plist>

বিটকোড, অ্যাপ পাতলা করা ইত্যাদি সম্পর্কিত এই প্লিস্ট ফাইলটির জন্য অন্যান্য বিকল্প রয়েছে That's এজন্য আমি মনে করি আইওএস 9 এবং তারপরের জন্য আইপিএ ফাইলগুলি রফতানির জন্য এক্সকোডবিল্ড সরঞ্জামই সঠিক সরঞ্জাম।

অপশন প্লিস্ট সম্পর্কে আরও বিশদ এক্সকোডবিল্ড -হেল্প কমান্ডের সাথে উপলব্ধ।


ধন্যবাদ ভ্লাদিমির, এটি কীভাবে এক্সকোড 7 টি জমা দেওয়ার সাথে সাংঘর্ষিক তা নিয়ে আমি সত্যিই বিভ্রান্ত হয়ে পড়েছিলাম।
কেভিনল

আপনি এক্সক্রুনকে ঠিক কীভাবে প্রতিস্থাপন করবেন? আমি জেনকিন্স
এক্সকোড

2

যোসোমাইটে ডাব্লু / এক্সকোড 6.4 এ এমনকি এসডক্রোট প্যাচ ব্যবহার করে কোডসাইনিং ব্যর্থ হয়। এই নিবন্ধটি পেতে কীভাবে এক্সকোড স্ক্রিপ্টটি প্যাচ করবেন তা নীচের নিবন্ধে ব্যাখ্যা করা হয়েছে। মনে রাখবেন এটি এক্সকোডকে প্যাচ করছে, সুতরাং এটি সংস্করণ নির্দিষ্ট, তবে সমস্যাটি সমাধান করে।

http://www.jayway.com/2015/05/21/fixing-your-ios-build-scripts


1

উত্তর আমার জন্য Alistra কাজ থেকে কিন্তু আমি কোনো স্ক্রিপ্ট আমার নয় পরিবর্তন করতে চায় না (ভবিষ্যতে Xcode মুক্তি এই ফাইলটি পরিবর্তন করতে পারে এবং সংশোধন হারিয়ে যাবে)।

 diff PackageApplication PackageApplicationFixed 155,157c155,156
<-     my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
<-                          "--sign", $opt{sign},
<-                          "--resource-rules=$destApp/ResourceRules.plist");
---
->     my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
->                          "--sign", $opt{sign});

আমি মনে করি আপনার যদি কোনও সংরক্ষণাগার ব্যবহার করে ভ্লাদিমির গ্রিগোরভের উত্তর সবচেয়ে ভাল তবে:

xcodebuild -exportArchive -archivePath [path to archive] -exportPath [path to output directory] -exportOptionsPlist [path to options.plist file]

আমার ক্ষেত্রে, আমার কাছে সংরক্ষণাগারটি নেই, কারণ আমি অ্যাপ্লিকেশনটি তৈরির পরে পরিবর্তন করেছি এবং আমার বান্ডেল আইডি এবং স্বাক্ষরকারী শংসাপত্র পরিবর্তন করতে হবে।

আমি যে সমাধানটি পেয়েছি তা হ'ল codesignব্যবহারের আগে নিজেকে কল করা PackageApplicationএবং PackageApplicationস্বাক্ষর না করার জন্য জিজ্ঞাসা করা। এটার মত :

replace :

 /usr/bin/xcrun -sdk iphoneos PackageApplication -v "<app_path>" -o "<ipa_path>" --sign "<provisioning_profile.certificateSubject>" --embed "<provisioning_profile.path>"

by :

/bin/cp -rpfv "<provisioning_profile.path>" "<app_path>/embedded.mobileprovision"
/usr/bin/codesign -v -vvvv -f -s "<provisioning_profile.certificateSubject>" --entitlements="<entitlement_path>" "<app_path>"
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "<app_path>" -o "<ipa_path>"

.mobileprovisionসাইন ইন করে ফাইল এম্বেড করতে ভুলবেন না cp


0

অন্য উত্তরে বর্ণিত হিসাবে , আপনি সাইন ইন করার জন্য কেবলমাত্র বিতরণ শংসাপত্রটি নির্দিষ্ট করতে পারবেন না এবং এটি সঠিকভাবে প্যাকেজ করবে। এটি করার জন্য টেস্টফ্লাইটের তাদের অ্যাপ্লিকেশনটি আপডেট করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.