কোডইগেন ব্যবহার করে কোনও ওএসএক্স অ্যাপ্লিকেশনটিতে সাইন ইন করার চেষ্টা করে "ব্যবহারকারীর মিথস্ক্রিয়া অনুমোদিত নয়"


145

আমাদের অটোমেটেড বিল্ড জেনকিন্সে চলছে। বিল্ড নিজেই দাসদের উপর চলছে, দাসদের এসএসএইচ দিয়ে কার্যকর করা হয়েছে।

আমি একটি ত্রুটি পেয়েছি:

00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.

আমি এখানে অন্যান্য পোস্টে এখন পর্যন্ত যতটা পরামর্শ পেয়েছি তা চেষ্টা করেছি:

  • কীচেইন আনলক করতে সাইন ইন করার সাথে সাথেই সুরক্ষা আনলক-কীচেন ব্যবহার করুন।
  • স্বাক্ষর কীটি তার নিজস্ব কীচেইনে সরানো।
  • লগইন কীচেইনে স্বাক্ষর কীটি সরানো।
  • সিস্টেম কীচেইনে স্বাক্ষর কীটি সরানো।
  • ম্যানুয়ালি তালিকা-কীচেনগুলি কেবল কীচেইনে সেট করে যা কী রয়েছে।

সব ক্ষেত্রেই আমি একই ত্রুটি পেয়েছি।

সমস্যাটি নির্ধারণের প্রয়াসে আমি আমার স্থানীয় টার্মিনালে "সিকিউরিটি আনলক-কীচেন" কমান্ডটি চালানোর চেষ্টা করেছি এবং দেখতে পেয়েছি এটি আসলে কীচেনটি আনলক করে না - যদি আমি কেচেইন অ্যাক্সেসে দেখি, তবে লক চিহ্নটি এখনও আছে। আমি কমান্ড-লাইনে পাসওয়ার্ডটি পাস করি কিনা বা এটির জন্য আমাকে অনুরোধ করি কিনা তা এই ক্ষেত্রেই এটি। জিইউআই ব্যবহার করে একই কীচেন আনলক করা আমাকে পাসওয়ার্ডের জন্য অনুরোধ করবে এবং তারপরে এটি আনলক করবে। উপরন্তু, যদি আমি চালানোর "নিরাপত্তা লক-Keychain", আমি কি করতে অবিলম্বে কমান্ড চলমান পরে কি লক দেখুন। এটি আমাকে ভাবতে বাধ্য করে যে আনলক-কীচেন আসলে কাজ করে না। আমি সিংহের (যা আমরা বিল্ড স্লেভদের জন্য ব্যবহার করছি) এবং মাভেরিক্সের (যা আমি বিকাশ করছি the

এরপরে, আমি সমস্ত সুরক্ষা কমান্ড -v যোগ করার চেষ্টা করেছি:

list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
        "/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.

এখান থেকে এটি দেখে মনে হবে তালিকাগুলি হ'ল যা কাজ করছে না। না হয় কাজ। : /

একটি নেই অনুরূপ প্রশ্ন এখানে । সমাধানটি আকর্ষণীয় - "সেশনক্রিট" প্রবর্তন করতে সত্য হিসাবে সেট করুন। তবে আমি মাস্টারের উপরে নির্মাণ করছি না - আমার বিল্ড প্রক্রিয়াটি এসএসএইচ থেকে দাস বিল্ড মেশিনে শুরু হয়েছিল। সম্ভবত আপনি "সেশনক্রিট" চালানোর সময় লঞ্চটেক্স কী করছে তা করার একটি কমান্ড-লাইন উপায় আছে?


কীভাবে বৃত্তে কীচেন পাসওয়ার্ড সেট করবেন?
শচীন কুমারাম

@ সচিনকুমারাম কি কার্যকর একটি নতুন প্রশ্নের মতো মনে হচ্ছে?
ট্রেজকাজ 21

উত্তর:


205

আমিও এই লড়াই করে চলেছি। Http://devnet.jetbrains.com/thread/311971 এ আমি পরামর্শটি চেষ্টা না করা পর্যন্ত কিছুই সাহায্য করেনি । ধন্যবাদ আশীষ অগ্রবাল!

জিইউআইয়ের মাধ্যমে আপনার বিল্ড ব্যবহারকারীকে লগইন করুন এবং কীচেন অ্যাক্সেস খুলুন। আপনার স্বাক্ষরকারী ব্যক্তিগত কী নির্বাচন করুন, ডান-ক্লিক করুন, তথ্য পান নির্বাচন করুন, অ্যাক্সেস কন্ট্রোল ট্যাবে পরিবর্তন করুন এবং "এই আইটেমটি অ্যাক্সেস করার জন্য সমস্ত অ্যাপ্লিকেশনকে মঞ্জুরি দিন" নির্বাচন করুন।

অ্যাক্সেস নিয়ন্ত্রণ ট্যাব


2
আপনাকে স্বাগতম. আপনি আমার মতো সমস্ত অ্যাপ্লিকেশনকে অনুমতি দেওয়ার পরিবর্তে নীচে অ্যাপ্লিকেশন তালিকায় কোডসাইন যুক্ত করার বিষয়টিও বিবেচনা করতে পারেন। এটি ইতিমধ্যে আমার স্ক্রিনশটে রয়েছে, তবে আমি মনে করি মূলত এটি ছিল না।
বায়মাটার

3
"সর্বদা অনুমতি দিন" তালিকায় যোগ করতে সক্ষম হতে আমাকে Apple.stackexchange.com/a/34872/6052 দিয়ে / usr ডিরেক্টরিটি লুকিয়ে রাখতে হয়েছিল codesign
সীমানা

24
কেবল একটি নোট যে এটি ছাড়াও আপনাকে পুরো security unlock-keychain
জিনিসটিও

13
এছাড়াও, আপনি আপনার কীগুলি লগইন থেকে সিস্টেমে সরিয়ে নিতে চাইবেন যাতে আপনি যখন নিজের কম্পিউটারে দূরবর্তী বিল্ডগুলি করেন তখন সেগুলি অ্যাক্সেসযোগ্য হয়।
ক্রিস্টিয়ান

8
কমান্ড লাইন থেকে কেউ কি এটি করার কোনও উপায় জানেন? আমার দূরবর্তী বিল্ড মেশিনটি সুরক্ষার কারণে আমাকে ওভার স্ক্রিন ভাগ করে নেবে না ।
ডিভাইস 1

78

ঠিক আছে, আমি অনুমান করি যে আমি আজ আমার নিজের প্রশ্নের উত্তরটি পেয়েছি, কারণ আড়াই থেকে দু'দিন ধরে এটিকে ছুরিকাঘাত করার পরে, আমি চেষ্টা করেছি এমন একটি জিনিস কার্যকর হয়েছে বলে মনে হয়। আমি এখনই এ থেকে পিছনে যাব এবং আশা করি এটি কাজ করে চলেছে।

মূলত, দেখে মনে হচ্ছে এটি -d systemআসলে কাজ না করে নেমে আসে । সুতরাং আশেপাশের অন্যান্য প্রশ্নের প্রচুর উত্তর সম্ভবত এটি আপডেট করতে আপডেট করা উচিত।

security -v list-keychains -s "$KEYCHAIN" "$HOME/Library/Keychains/login.keychain"
security list-keychains # so we can verify that it was added if it fails again
security -v unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN"
codesign --sign "$SIGNER_IDENTITY" --force --signature-size 9600 \
         --resource-rules src/AppResourceRules.plist --timestamp --verbose \
         "$APP"

17
ধন্যবাদ। আমি এটিকে সঙ্কুচিত করতে পেরেছি। নির্মাণের চেষ্টা করার আগে ঠিক নীচের কমান্ডটি চালান: সিকিউরিটি -v আনলক-কীচেন -p "$ কেইচএএইচএএইচএএইপিএসিপিএসওয়ার্ড" "/ হোম / লাইব্রেরি / কীচেনস / login.keychain"
pir800

3
সুতরাং কোনও codesignস্ক্রিপ্টের ভিতরে লগইন পাসওয়ার্ডটি সংরক্ষণ না করেই এসএসএসের মাধ্যমে অ্যাক্সেস করার কোনও উপায় নেই ?
চক্রত

2
উপরের উদাহরণে @ সংস্কৃত আমি লগইন পাসওয়ার্ড নয়, কেবল কীচেইন পাসওয়ার্ডটিই পাস করি। আমি বুঝতে পেরেছি যে প্রচুর ব্যবহারকারীর জন্য, লগইন কীচেনই কেবল কীচেন, তবে আমাদের ক্ষেত্রে, আমরা স্বাক্ষরকারী কীগুলি মেশিনগুলি তৈরিতে সিঙ্ক্রোনাইজ করার সহজ করার জন্য একটি পৃথক কীস্টোরের মধ্যে রাখি। তবে হ্যাঁ, এই জিনিসগুলির অনেকগুলি স্বয়ংক্রিয় বিল্ডগুলির জন্য বরং অসুবিধাগ্রস্থ বলে মনে হচ্ছে, অ্যাপল এমনকি স্বয়ংক্রিয় বিল্ডগুলি কি না তা নিয়ে অবাক করে আমাকে।
ট্রেজকাজ

@ ট্রেজকাজ ওহ ঠিক আছে, কমপক্ষে একটি কীচেইন পাসওয়ার্ড ভাগ করে নেওয়া খারাপ নয়।
চকৃত

স্বয়ংক্রিয়ভাবে দূরবর্তী বিল্ডগুলির ক্ষেত্রে আমার ব্যবহারের ক্ষেত্রে, কোনও .envফাইলে কীচেন পাসওয়ার্ড সংরক্ষণ করা খুব খারাপ নয়, কারণ .envফাইলটিতে ইতিমধ্যে সংবেদনশীল কী রয়েছে contains এডাব্লুএস এবং হেরোকু। আমাদের ক্ষেত্রে বিল্ড সম্পর্কিত কোড সাইন শংসাপত্রগুলি সদ্য নির্মিত কেচেইনে সংরক্ষণ করা হয় যা পরে বিল্ডের পরে সরানো হয়। তারপরে এটি আবার নির্মাণের জন্য পুনরায় তৈরি করা হয়। যাইহোক, loginকীচেইনটি এখনও অবশ্যই খোলার দরকার security unlock-keychain -p pass login.keychainছিল, তবে এখানে অনুপস্থিত লিঙ্কটি ছিল। ধন্যবাদ!
পেট্রাস রেপো

19

অন্য কোনও উত্তর আমার পক্ষে কাজ করেনি।

যা অবশেষে আমাকে বাঁচিয়েছিল এই পোস্ট

সংক্ষিপ্তসার হিসাবে, এটি 5 মিনিটের ডিফল্ট সময়সীমা দ্বারা সৃষ্ট হতে পারে, এটি একটি দীর্ঘ বিল্ডের পরে এই ত্রুটিটিকে ট্রিগার করবে।

ঠিক করতে:

security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain

2
এল ক্যাপিটেনে, আপনি এটি ব্যবহারকারী ইন্টারফেসের মাধ্যমেও করতে পারেন। কেবল কীচেইন অ্যাপ্লিকেশনটি খুলুন, আপনার কীচেইনে ডান ক্লিক করুন (লগইন করুন, সিস্টেম ইত্যাদি) এবং এমন কিছুতে ক্লিক করুন যা <your_keychain> 'এর জন্য সেরা সেটিংসের সাথে মেলে।
রুবিবেগনার

Confirmআমি অ্যাক্সেস পরিবর্তন করার পরেও এটি সর্বদা আমার সিস্টেম কীচেন অ্যাক্সেসটিকে সেট করে। : /
অ্যালেক্স জাভাটোন

এটা আমার জন্য সহায়ক ছিল !!
নরি

আপনার মন্তব্যটি খুঁজে পাওয়ার আগে আমি 2 দিন ধরে এটির সাথে লড়াই করে যাচ্ছি, ধন্যবাদ !!!
গিলাদ নভিক

16

কল করার চেষ্টা করুন security unlock-keychainএবং codesignএক-লাইন কমান্ড হিসাবে। এটি আমাকে সাহায্য করেছিল। কিছুটা এইরকম:

security unlock-keychain -p <password> /Users/<user>/Library/Keychains/login.keychain && codesign --force --verify --verbose --sign "<certificate id>" <app name>

4
এটি দুটি লাইনে করার মতোই। আমার ধারণা পার্থক্যটি হ'ল যদি প্রথম কমান্ডটি ব্যর্থ হয় তবে এটি দ্বিতীয়টি চালায় না।
Trejkaz

1
আমার জন্য তারা এক নয়। আমি তাদের পিঁপড়ের মাধ্যমে কল করি sshexecএবং প্রতিটি সময় এটি একটি নতুন ssh সময় তৈরি করে।
ZhekaKozlov

2
আপনি যদি সত্যিই চান তবে আপনি একক ssh অধিবেশনেও একাধিক লাইন করতে পারেন। সুতরাং ... ত্রুটিগুলির চিকিত্সা বাদ দিয়ে এটি এখনও একই।
ট্রেজকাজ

13

সুরক্ষা ব্যবহার করে / usr / বিন / কোডসাইন এর জন্য একটি কেচেইন তৈরি করুন

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

এই দিনগুলি codesignফলন না errSecInternalComponentকরার জন্য আপনার পার্টিশন তালিকা (এসিএল) সঠিক হওয়া দরকার। আমি পদক্ষেপগুলি দিয়ে হাঁটব:

কীচেইন তৈরি করুন

security create-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"

এই মুহূর্তে কীচেইন আনলক করা থাকলেও উপস্থিত হবে না Keychain Access

অনুসন্ধান তালিকায় নতুন কীচেন যুক্ত করুন

security list-keychains -s "${KEYCHAIN_NAME}" "${OLD_KEYCHAIN_NAMES[@]}"

তালিকায় নতুন কীচেন যুক্ত করুন। যদি আপনি প্রথমে মূল তালিকাটি দখল না করেন তবে আপনার list-keychainsআর login.keychainঅনুসন্ধান-তালিকায় থাকবে না।

কীচেনটি আনলক করুন

security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"

যদি আপনি উপরে কীচেন তৈরি করেন তবে এটি অপ্রয়োজনীয়, তবে কীচেন ইতিমধ্যে বিদ্যমান থাকলে এটি প্রয়োজনীয়।

কীচেন থেকে ডিফল্টগুলি সরান

security set-keychain-settings "${TESTING_KEYCHAIN}"

কোনও যুক্তি নির্দিষ্ট না করে এটি অটো-লকের সময়সীমা সীমাহীন করে দেয় এবং ঘুমের মধ্যে অটো-লকটি সরিয়ে দেয়।

.P12 থেকে আপনার স্বাক্ষরকারী শংসাপত্রগুলি আমদানি করুন

security import "${DIST_CER}" -P "${CERTIFICATE_PASSWORD}" -k "${KEYCHAIN_NAME}" -T /usr/bin/codesign

শংসাপত্রগুলি আমদানি করুন এবং এর মাধ্যমে codesignঅ্যাক্সেস দেয়-T বিকল্পের ।

কীচেইনে এসিএল সেট করুন

security set-key-partition-list -S apple-tool:,apple: -s -k "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"

এটি একটি প্রয়োজনীয়তা যা অনেক লোক মিস করে। আপনি দেখতে পারেন ডাম্প-কীচেইন ব্যবহার করে ম্যাকোস কী করে। কোডাইনিংয়ের ক্ষেত্রে যা প্রয়োজন apple:এবং apple-tool:-sস্বাক্ষরকারী শংসাপত্রগুলি বোঝায়।

গিটল্যাব-রানার, জেনকিনস এবং অন্যান্য

যে কোনও সিআই-টাইপ রানার বা বিল্ড সিস্টেমের জন্য একটি খুব গুরুত্বপূর্ণ বিষয় প্রক্রিয়াটি launchdসঠিকভাবে থেকে শুরু হয়েছে তা নিশ্চিত করা। আপনার প্লাস্টে রয়েছে তা নিশ্চিত করুন<SessionCreate> </true>

বিল্ড প্রক্রিয়াটির সাথে কীচেইনের মালিককে সঠিকভাবে মেলে না এবং সুরক্ষা সেশন তৈরি করা হয়েছে তা নিশ্চিত করা ফলস্বরূপ হ'ল সমস্ত প্রকার মাথা ব্যথা। ডায়াগোনস্টিকালি বলতে গেলে আপনি পরিচয় করিয়ে দিতে পারেনlist-keychains পারেন এবং আউটপুটটি আপনার প্রত্যাশার সাথে মেলে কিনা তা দেখতে পারেন।

এটি launchd.plistম্যান পেজ থেকে:

SessionCreate <boolean>

এই কীটি সুনির্দিষ্ট করে যে কাজটি প্রাসঙ্গিক ডিফল্ট অধিবেশন প্রসঙ্গের পরিবর্তে একটি নতুন সুরক্ষা নিরীক্ষণ অধিবেশন করা উচিত। বিশদ জন্য অডিটন (2) দেখুন।

UserName <string>

এই alচ্ছিক কীটি ব্যবহারকারীকে কাজটি চালনার জন্য নির্দিষ্ট করে। এই কী কেবল পরিষেবাগুলির জন্য প্রযোজ্য যা সুবিধাযুক্ত সিস্টেম ডোমেনে লোড হয়।

GroupName <string>

এই alচ্ছিক কীটি কাজটি চালানোর জন্য গ্রুপটিকে নির্দিষ্ট করে। এই কী কেবল পরিষেবাগুলির জন্য প্রযোজ্য যা সুবিধাযুক্ত সিস্টেম ডোমেনে লোড হয়। যদি ব্যবহারকারীর নামটি সেট করা থাকে এবং গ্রুপনেমটি না থাকে, তবে এই গ্রুপটি ব্যবহারকারীর প্রাথমিক গোষ্ঠীতে সেট করা হবে।

শেষ পর্যন্ত কোডাইন

আপনি স্বাক্ষরকারী শংসাপত্রগুলি হ্যাশ ব্যবহার করে দেখতে পারেন find-identity

security find-identity -p codesigning -v

একটি ফ্রেমওয়ার্ক, ডাইলিব ইত্যাদি কোডাইন করুন

/usr/bin/codesign --verbose=4 -f -s "$SIGNER_HASH" "$SIGNABLE"

অ্যাপ্লিকেশন বান্ডেল কোডসাইন করুন

/usr/bin/codesign --verbose=4 -f -s "$SIGNER_HASH" --entitlements entitlements.xcent "$SIGNABLE"

চূড়ান্ত নোটস - আপনি যদি দেখে থাকেন যে এক্সকোড এটি কীভাবে এটি এক্সকোডে থাকা একটিটি CODESIGN_ALLOCATEব্যবহার করতে সেট করে, ভিতরে না /usr/bin

export CODESIGN_ALLOCATE="$( xcrun --find codesign_allocate )"

সন্ধানের পথটি সেট করা হয়েছে ${PLATFORM_PATH}:${TOOLCHAIN_PATH}:${PATH}, যেখানে PLATFORM পাথটি প্রদত্ত টার্গেট এসডিকে-র জন্য / usr / বিন ডিরেক্টরি এবং টোলচএএইচপিএইচটি Xcode হোস্ট সরঞ্জামগুলির জন্য / usr / বিন।


3
ডুড আপনি অবশ্যই এটি সম্পর্কে একটি নিবন্ধ লিখতে পারেন, আমি 2 দিন থেকে এটি খুঁজছিলাম। আমি জানি না আমি কতগুলি স্টাফ এবং স্ট্যাকওভারফ্লো পোস্ট পড়েছি। আপনাকে অনেক ধন্যবাদ!
ড্যামিয়েন

এই সহায়ক ওয়াকথ্রু জন্য ধন্যবাদ!
তারাস নিকুলিন

কিচেনের এসিএল ছিল আমার অনুপস্থিত অংশ। স্পষ্ট ব্যাখ্যার জন্য ধন্যবাদ স্যার!
কেউহা

11

আপনার কীগুলি সিস্টেম কীচেনে রাখুন


তবে এটি এখনও ব্যবহারকারীর নাম এবং পাসওয়ার্ড জিজ্ঞাসা করে
Durai Amuthan.H

সিস্টেম কীচেইনে কী কী রাখবেন ....... কীচেইন অ্যাক্সেসের কাজ থেকে পেস্টটি অনুলিপি করবেন?
আশীষ কার্পে

@

ড্র্যাগ এন্ড ড্রপ এ কি একই ত্রুটি পেয়েছে: === কনফিগারেশনের সাথে প্রকল্পের রোগীপুত্রের বিল্ড টার্গেটের রোগী পোর্টাল === নির্ভরতা যাচাই করুন 'com.abc.xyz360' এর জন্য কোনও প্রোফাইল খুঁজে পাওয়া যায় নি: এক্সকোড কোনও প্রভিশনিং প্রোফাইলের মিল খুঁজে পাওয়া যায়নি "com .abc.xyz360 '। এসডিকে 'আইওএস 10.2' তে পণ্যের ধরণের 'অ্যাপ্লিকেশন' এর জন্য কোড সাইন ইন করা দরকার
আশীষ কার্পে

এটিতে বলা হয়েছে যে আপনি মেশিনে কোনও প্রভিশন প্রোফাইল ইনস্টল করেন নি, আপনি যে চাবিগুলি অনুগ্রহ করছেন তা নয় "আশিষকার্পে
আলিস্ট্রা

5

সুতরাং এটি এই আদেশটি কাজ করে। -Aম্যাককে পাসওয়ার্ড জিজ্ঞাসা করা থেকে বিরত রাখা। System.keychain এ আমদানি করার জন্য GUI লাগবে না।

sudo security import <cert.p12> -k "/Library/Keychains/System.keychain" -P <passphrase> -A


3

আমার কিচেনটি তালাবন্ধ ছিল। এটা প্রতিহত করেছে সত্য পরিবর্তন করার জন্য আমার অগ্রযাত্রাকে ...

Keychain Access-> Keychain First Aid-> Repair, এবং ভাল !


2

কীচেন আনলক করা যথেষ্ট নয়। আপনাকে "সমস্ত অ্যাপ্লিকেশনগুলিকে এই আইটেমটি অ্যাক্সেস করার অনুমতি দিন" এ প্রাইভেট কী অ্যাক্সেস সেট করতে হবে। এবং কমান্ড লাইন থেকে এটি করার জন্য কীটি পুনর্নির্মাণ করা দরকার। তাই একসাথে জিনিস নেওয়া:

লক থাকলে তা লগইন কীচেইনটিকে আনলক করুন। এটি লক করা উচিত নয়, তবে যাইহোক আপনি এখানে এটি কীভাবে করবেন:

security -v unlock-keychain -p "$KEYCHAIN_PASSWORD" "~/Library/Keychains/login.keychain"

যদি কোনও কারণে আপনার বিল্ড মেশিনটিতে লগইন কীচেন লক থাকে এবং আপনি কোনও পাসওয়ার্ডটি কোনও স্ক্রিপ্টে প্রকাশ করতে চান না, তবে আপনার আলাদা কীচেন ব্যবহার করা উচিত। আপনি ঘটনাস্থলে একটি তৈরি করতে পারেন এবং এটি আগের এবং নীচের কমান্ডটিতে ব্যবহার করতে পারেন। ঘটনাস্থলে একটি তৈরি করতে:

security create-keychain -p 'temporaryPassword' MyKeychain.keychain
security list-keychains -d user -s login.keychain MyKeychain.keychain

তারপরে -A প্যারামিটার ব্যবহার করে আপনার শংসাপত্রগুলি এবং সম্পর্কিত ব্যক্তিগত কীগুলি লগইন কীচেইনে আমদানি করুন। মনে রাখবেন যে এই সমস্তটির জন্য আপনাকে সুডো করার দরকার নেই ...

security import <cert.p12> -k "~/Library/Keychains/login.keychain" -P <passphrase> -A

-এর প্যারামিটারটি হ'ল আপনার ব্যক্তিগত কীটিকে "সমস্ত অ্যাপ্লিকেশনগুলিকে এই আইটেমটি অ্যাক্সেস করার অনুমতি দিন" এ সেট করা হবে

সুতরাং এই সমস্ত ব্যবহার করে আপনি এমন একটি স্ক্রিপ্ট তৈরি করতে সক্ষম হবেন যা একটি রিলিজ আইপা তৈরির জন্য প্রয়োজনীয় শংসাপত্র ইনস্টল করে এবং প্রম্পট ছাড়াই স্বাক্ষর করতে পারে। আপনি আপনার রেপোতে .p12 ফাইলটি সঞ্চয় করতে পারেন, যাতে কোনও মেশিন ম্যানুয়াল সেটআপের প্রয়োজন ছাড়াই আপনার আইপা তৈরি করতে পারে।


2

কীচেইন আনলক করা (অন্য উত্তরে উল্লিখিত হিসাবে) বাদে, আপনাকে সমস্ত অ্যাপ্লিকেশন থেকে কীচাইনে থাকা এক্সকোড প্রমাণীকরণ টোকেনে অ্যাক্সেসের অনুমতি দিতে হবে:

  • "লগইন" কীচেন নির্বাচন করুন
  • "সমস্ত আইটেম" বিভাগ নির্বাচন করুন
  • "এক্সকোড" কীওয়ার্ড অনুসন্ধান করুন
  • সমস্ত এক্সকোড টোকেনের জন্য "সমস্ত অ্যাপ্লিকেশনগুলিকে এই আইটেমটি অ্যাক্সেস করার অনুমতি দিন" নির্বাচন করুন
  • আনলক কীচেইন পদক্ষেপ যুক্ত করতে ভুলবেন না (পূর্ববর্তী উত্তরগুলি থেকে)

স্ক্রিনশট


1

সিস্টেম কীচেইনে আপনার কীগুলি আমদানি করুন। আপনি এই আদেশটি ব্যবহার করতে পারেন:

sudo security import YourKey.p12 -k /Library/Keychains/System.keychain -P PasswordToYourKey -T /usr/bin/codesign

1

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


আমার সত্যিকার অর্থে একই সমস্যা ছিল। আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ। :)
Paweł কে

0

আমার জন্য কাজ করা কোনও কিছুই মনে হচ্ছে আবার পুরোপুরি Xcode পুনরায় ইনস্টল করতে হবে। জেনকিনস একই ত্রুটি দিতে থাকে। আপনি যদি কেবল এক্সকোড ইনস্টলেশনটি ট্র্যাসে সরান এবং পুনরায় ইনস্টল করেন তবে আপনি প্রচুর সময় সাশ্রয় করবেন। নিশ্চিত হয়ে নিন যে আপনি কমপক্ষে কমপক্ষে একবার কমান্ড লাইন থেকে কোডসাইন কমান্ডটি চালাচ্ছেন।

এমনকি যদি আপনি একই ত্রুটি পান তবে 'আনলক কীচেইন' সেট করার চেষ্টা করুন? জেনকিন্সের মধ্যে সম্পত্তি এবং আপনার ব্যবহারকারী / ইউজার / ইউসার / লাইব্রেরি / কেচেইনস / লগিন.কিচেইন এর অধীনে আপনার লগইনকে পথ দেখান

আমি আশা করি godশ্বর এর পরে আপনার সাথে থাকবেন।


0

আমার ক্ষেত্রে, এটি 300s এর ডিফল্ট টাইমআউট এবং 300s এরও বেশি দীর্ঘস্থায়ী দীর্ঘ xcode সংকলন সহ একটি কীচেইন তৈরি হওয়ার কারণে ঘটেছিল। কাজের জন্য, আমার জন্য, অনুরোধ ছিল:

security set-keychain-settings -t <longer timeout in seconds> <keychain>

অস্থায়ী কীচেন তৈরি করার সাথে সাথেই।


0

আমি এই সমস্ত পরামর্শ দিয়ে দৌড়েছি এবং তখনও ফাস্টলেন ব্যবহার করে সমস্যা হচ্ছে gym জেনকিন্স কাজের ক্ষেত্রে । আমি শংসাপত্রটি ইনস্টল করে দিয়েছি এবং কীচেইন আনলক করে রেখেছি এবং আমি কমান্ড লাইনে কোডইন কমান্ডটি ম্যানুয়ালি চালিত করার সময় স্লেভের কোডসাইন করতে সক্ষম হয়েছি।

কার্যকারণ হিসাবে, জেনকিনস যদি এসএসএইচের পরিবর্তে জেএনএলপি ব্যবহার করে স্লেভের সাথে সংযুক্ত হন, আপনি কোডসাইন করতে সক্ষম হবেন।


0

আমার জন্য এটি তখন ঘটে যখন একটি দ্বিতীয় কীচেন ম্যানুয়ালি যুক্ত হয় এবং এটি লক হয়ে যায়। কোনও কারণে codesignলকড কীচেন অ্যাক্সেস করার চেষ্টা করে এবং শংসাপত্রগুলি লগইন কীচেইনে থাকা সত্ত্বেও ব্যর্থ হয় (এবং আনলক করা থাকে)। দ্বিতীয়টি আনলক করা সমস্যার সমাধান করে। শুধু আমার বোঝার জন্য না।


-1

উপরোক্ত কয়েকটি সমাধানের চেষ্টা করার পরে। আমি বুঝতে পারি যে আমার একটি ফ্যাক্টর ছিল, তা হ'ল আমি আয়ন কনসোল ব্যবহার করে বিল্ডটি শুরু করছিলাম। আমি যখন টার্মিনাল অ্যাপ্লিকেশন থেকে বিল্ডিংয়ে ফিরে এসেছি, সবকিছু ঠিকঠাক কাজ করেছিল।

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