متن پر جائیں
Launch دستاویزات پر واپس جائیں

Markdown ڈاؤن لوڈ کریںGitHub پر اصل دستاویز

دستی ترقی کی انضمام رہنمائی (9 زبانیں، AI ضروری نہیں)

یہ رہنمائی Licentivo فراہم کنندہ کے لیے ہے۔ دوسرے لائسنسنگ سسٹم والے مرچنٹ پس منظر میں “لائسنس انتخاب اور تخصیص” سے کسٹم سروس منتخب کر کے کسٹم لائسنس API اور انضمام کے عمل سے جڑ سکتے ہیں اور اپنے لائسنسنگ سسٹم کا SDK استعمال جاری رکھ سکتے ہیں۔

موجودہ غیر شائع شدہ تبدیلیاں اکاؤنٹ شناختی تبادلہ استعمال کرتی ہیں؛ ذمہ داریاں اور منتقلی کی پابندیاں خریداری کی مدت اور اکاؤنٹ SDK کی حد میں دیکھیں۔ Launch خریداری مدت گنتا ہے؛ Licentivo SDK اجازت نافذ کرتا ہے۔

صرف متعلقہ زبان کا Launch انضمامی پیکیج انسٹال کریں۔ Launch پیکیج میں سرکاری SDK، طے شدہ اڈاپٹر اور لنک ترتیب شامل ہیں؛ سرکاری لائسنسنگ پتہ https://www.licentivo.com مقرر ہے۔ ایپ خریدار کے موجودہ Launch اسٹور میں رجسٹرڈ اکاؤنٹ سے لاگ ان کرتی ہے۔

پہلے سے پُر شدہ ابتدائی کوڈ حاصل کریں

  1. Launch پس منظر میں سافٹ ویئر، سیلز پلان اور Licentivo لائسنس پالیسی کا تعلق مکمل کر کے متعلقہ ماحول میں شائع کریں۔
  2. پروگرام انضمام → انضمام کی جانچ اور کوڈ کھولیں، سافٹ ویئر، زبان اور آزمائشی/پروڈکشن ماحول منتخب کریں۔
  3. “پروڈکٹ کی معلومات پڑھیں اور انضمامی کوڈ بنائیں” پر کلک کریں۔ Launch سائٹ کا موجودہ عوامی پتہ، موجودہ پروڈکٹ میپنگ اور دستخطی عوامی کلید خود پڑھتا ہے۔
  4. صفحے کا کنکشن فنکشن اپنے پروجیکٹ میں کاپی کریں اور نیچے کے مطابق انٹرفیس اور کاروباری کال دستی لکھیں۔ خود بھری اقدار دیکھ کر متعلقہ زبان کا Connect/connect خود بھی کال کر سکتے ہیں۔

دو اندرونی پروڈکٹ ID دستی بھرنے یا launch-config.json یا product.json بنانے کی ضرورت نہیں۔ صفحے سے سورس کنکشن فنکشن محفوظ کیا جا سکتا ہے۔ سرور کا نجی config.yaml صرف Launch سروس شروع کرنے کے لیے ہے، گاہک کے سافٹ ویئر کے ساتھ شائع نہیں ہو سکتا۔

سائٹ کا پتہ موجودہ انسٹینس کے درست عوامی پتے سے آتا ہے (آغاز ترتیب public_url یا پس منظر ویب سائٹ ترتیبات کا درست عوامی پتہ)۔ یہ ڈومین یا پورٹ سمیت IP پتہ ہو سکتا ہے، مگر پروٹوکول لازم ہے؛ پروڈکشن میں درست HTTPS استعمال کریں۔ سننے کا پتہ http_addr گاہک کی رسائی کا پتہ نہیں۔ سائٹ پتہ، پروڈکٹ میپنگ یا ماحول بدلنے پر موجودہ سائٹ سے کنکشن فنکشن دوبارہ لیں؛ پرانی سائٹ کا سیشن اور کیش نئی سائٹ کی اجازت نہیں بن سکتے۔

دو پروڈکٹ نمبر سسٹم کا موجودہ اندرونی تعلق ہیں: Launch سافٹ ویئر پروڈکٹ اور Licentivo لائسنس پروڈکٹ۔ انضمام صفحہ منتخب سافٹ ویئر سے خود بھرتا ہے؛ خریدار صرف اسٹور اکاؤنٹ دیتا ہے۔ سرور ترتیب شدہ Licentivo کنکشن سے دستخطی عوامی کلید پڑھتا ہے، انتظامی کلید اور گاہک کی لائسنس اسناد سورس میں نہیں آتیں۔

Connect/connect کا کردار

Connect/connect مختلف زبانوں میں “Launch ایپ کلائنٹ بنائیں” کے عمل کا نام ہے۔ Go، C# اور بعض مقامی انٹرفیس بڑے ابتدائی حرف کے ساتھ Connect استعمال کرتے ہیں، Python، JavaScript، Ruby وغیرہ اپنے انداز میں connect استعمال کرتے ہیں۔ پس منظر سے بنے connectLaunch(), connect_launch() یا LaunchConnection.Open() عوامی پیرامیٹر پہلے سے بھرے پروجیکٹ فنکشن ہیں، جو اندر متعلقہ زبان کا انٹری پوائنٹ کال کرتے ہیں۔

کنکشن صرف ابتدائی ترتیب مکمل کرتا ہے: اسٹور پتہ، پروڈکٹ میپنگ، ماحول اور دستخطی عوامی کلید جانچتا ہے، Launch کلائنٹ بناتا ہے اور پیکیج کا سرکاری Licentivo SDK ترتیب دیتا ہے۔ یہ گاہک کی شناخت نہیں جانچتا اور براہ راست معاوضہ فیچرز نہیں کھولتا۔ مکمل ترتیب:

Connect/connect → Login or Restore → RunFeature → Logout / Close
                                       └──────────→ ReleaseDevice (explicit device unlink only)

ایپ چلنے کے دوران ایک ہی کلائنٹ آبجیکٹ برقرار رکھیں تاکہ SDK ہارٹ بیٹ اور فلوٹنگ سیٹس درست سنبھالے۔ عام بندش ڈیوائس بائنڈنگ برقرار رکھتی ہے؛ گاہک کا واضح لاگ آؤٹ اور ReleaseDevice مطابقتی راستہ ایک ہی سرکاری SDK لاگ آؤٹ عمل کال کرتے ہیں۔

انسٹالیشن اور ابتدائی ترتیب کے راستے

0.1.6 کی نو زبانوں کی عوامی انسٹالیشن جانچ مکمل کامیاب ہے (9/9)، نیچے جدول کے تمام طریقے جانچے گئے ہیں۔ GitHub Release مقامی پیکیج اور آف لائن فائلیں بھی دیتا ہے؛ استعمال ڈاؤن لوڈ پیکیج کی انسٹالیشن ہدایات میں دیکھیں۔

زبان صرف Launch انسٹال کریں صفحے کا فراہم کردہ کنکشن فنکشن پیکیج میں براہ راست ابتدائی API
Go go get github.com/spf86/licentivo-launch-sdk/pkg/launchclient@v0.1.6 connectLaunch() launchclient.Connect
Python 3.10+ python -m pip install licentivo-launch==0.1.6 connect_launch() Application.connect
C# / .NET 8+ dotnet add package Licentivo.Launch --version 0.1.6 LaunchConnection.Open() Application.Connect
Java 17+ Maven/Gradle: com.licentivo.launch:launch-client:0.1.6 LaunchConnection.open() Launch.connect
Node.js 20.3+ npm install @licentivo/launch@0.1.6 connectLaunch() Application.connect
Rust 1.85+ cargo add licentivo-launch@=0.1.6 connect_launch() Application::connect
Ruby 3.1+ gem install licentivo-launch --version 0.1.6 connect_launch Application.connect
C11 GitHub Release سے مقامی پیکیج ڈاؤن لوڈ کریں اور CMake سے درآمد کریں connect_launch() launch_application_connect
C++17 وہی Launch مقامی پیکیج استعمال کریں connectLaunch() Application::Connect

عوامی سورس اور ہر زبان کا README Launch SDK ذخیرہ میں، مقامی پیکیج اور آف لائن فائلیں v0.1.6 Release میں اور عوامی انسٹالیشن نتائج نو زبانوں کی رجسٹری جانچ میں ہیں۔ ہر پیکیج کا README انسٹالیشن کمانڈ اور API دیتا ہے۔ JavaScript پیکیج میں TypeScript اعلانات ہیں۔ عام زبان کی dependencies پیکیج مینیجر حل کرتا ہے، مثلاً Python کا cryptography، C# کا BouncyCastle اور Ruby کا base64؛ سرکاری SDK پیکیج انسٹال کرنے کی ضرورت نہیں۔

Go کا عوامی ماڈیول نام github.com/spf86/licentivo-launch-sdk اور درآمدی پاتھ github.com/spf86/licentivo-launch-sdk/pkg/launchclient ہے، ایپ کو مقامی replace ضروری نہیں۔ Windows مقامی پیکیج amd64 GNU/MinGW استعمال کرتا ہے، Linux amd64 مقامی پیکیج بھی ہے۔ Ruby پلیٹ فارم پیکیج اور Rust/native Windows تقسیم میں curl شامل ہے؛ دوسرے پلیٹ فارم کے سورس بلڈ کو معمول کی C11، curl/OpenSSL ترقیاتی dependencies چاہئیں۔ پلیٹ فارم ٹول چین ہر پیکیج README میں دیکھیں۔

لاگ ان اور محفوظ کارروائیاں

درج ذیل ٹکڑے پچھلے مرحلے میں کاپی کردہ کنکشن فنکشن استعمال کرتے ہیں۔ email, password آپ کے لاگ ان انٹرفیس سے آتے ہیں؛ پاس ورڈ سورس یا ترتیب میں نہ لکھیں۔ export کو پلان پالیسی میں واقعی موجود فیچر نام سے بدلنا ضروری ہے۔

Go

app, err := connectLaunch()
if err != nil { return err }
defer app.Close()
if _, err := app.Login(ctx, email, password); err != nil { return err }
return app.RunFeature("export", func() error {
    return exportReport()
})

ctx ایپ کے لائف سائیکل سیاق استعمال کرے؛ لاگ ان درخواست ختم ہوتے ہی ہارٹ بیٹ منسوخ نہ کریں۔ نیٹ ورک کام پس منظر ورکر تھریڈ میں رکھیں۔ بحالی کے لیے Restore(ctx)؛ اکاؤنٹ لاگ آؤٹ کے لیے Logout(ctx)؛ ڈیوائس ریلیز کے لیے ReleaseDevice(ctx) کال کریں۔

Python

with connect_launch() as app:
    app.login(email, password)
    result = app.run_feature("export", export_report)

restore() موجودہ محفوظ سیشن بحال کرتا ہے؛ سیشن نہ ہو تو لاگ ان انٹرفیس دکھائیں۔ logout() اکاؤنٹ صاف کرتا ہے؛ release_device() واضح طور پر ڈیوائس ریلیز کرتا ہے۔ مطابقتی نیٹ ورک کام ڈیسک ٹاپ ایونٹ لوپ کو بلاک نہ کرے۔

C# / .NET

await using var app = LaunchConnection.Open();
await app.Login(email, password);
await app.RunFeature("export", async () => {
    await ExportReport();
});

await Restore(), await Logout() اور await ReleaseDevice() استعمال کریں۔ ایپ کے زندہ رہنے تک SDK لائف سائیکل برقرار رکھیں، غیر مطابقتی انٹرفیس عمل استعمال کریں۔

Java

try (var app = LaunchConnection.open()) {
    app.login(email, passwordChars);
    app.runFeature("export", () -> exportReport());
}

پاس ورڈ کے لیے char[] استعمال کریں۔ سیشن نہ ہو تو restore()، NO_SESSION ناکامی واپس کرتا ہے، لاگ ان انٹرفیس دکھائیں؛ دوسری ناکامی اجازت نہیں سمجھی جا سکتی۔ logout() اور releaseDevice() الگ کارروائیاں ہیں۔ try-with-resources بند کرنے کا ذمہ دار ہے۔

JavaScript / Node.js / TypeScript

const app = connectLaunch();
try {
  await app.login(email, password);
  const result = await app.runFeature('export', () => exportReport());
} finally {
  await app.close();
}

سیشن نہ ہو تو restore()، null واپس کرتا ہے؛ معمول کی بحالی کے بعد ہی کاروباری کام چلائیں۔ logout() کی boolean قدر دور دراز لاگ آؤٹ کی تصدیق ظاہر کرتی ہے، ڈیوائس ریلیز ناکام ہو تو غلطی دکھائیں۔ کوڈ Node.js، Electron مرکزی عمل یا قابل اعتماد بیک اینڈ میں چلے؛ براؤزر اور Electron رینڈرر اجازت اسناد محفوظ نہیں کرتے۔

Rust

let mut app = connect_launch()?;
app.login(&email, &password)?;
let result = app.run_feature("export", || {
    export_report()?;
    Ok(())
})?;
app.close();

کال بیک Result<T, Failure> واپس کرتا ہے۔ restore(), logout(), release_device() نتائج واپس کرتے ہیں، ناکامی سنبھالنا لازم ہے۔ Drop رن ٹائم بھی بند کرتا ہے۔ طے شدہ مقامی کور build.rs سے کمپائل اور لنک ہوتا ہے، سرکاری SDK خود لنک نہیں کرنا پڑتا۔

Ruby

app = connect_launch
begin
  app.login(email, password)
  result = app.run_feature('export') { export_report }
ensure
  app.close
end

restore سیشن بحال کرتا ہے، logout اکاؤنٹ سے نکلتا ہے، release_device ڈیوائس ریلیز کرتا ہے۔ محفوظ کارروائی میں کوڈ بلاک استعمال کریں؛ استثنا کامیابی میں نہیں بدلا جا سکتا۔

C

static int export_action(void *context) {
    return export_report(context); /* Return 1 only on success. */
}

launch_application *app = connect_launch();
if (!app) return 0;
int ok = launch_application_login(app, email, password);
if (ok) ok = launch_application_run_feature(app, "export", export_action, context);
/* Check launch_application_error(app) on failure; never log credentials. */
launch_application_close(app);
return ok;

launch_application_restore کی تین حالتیں ہیں: 1 بحال، 0 سیشن نہیں، -1 ناکامی۔ صرف سیشن نہ ہونے پر معمول کا لاگ ان دکھائیں؛ انکار یا استثنا کو کامیابی نہ سمجھیں۔ logout اور release_device کی واپسی اقدار بھی جانچیں۔

CMake صرف Launch درآمد کرتا ہے:

find_package(LicentivoLaunch CONFIG REQUIRED)
add_executable(myapp main.c)
licentivo_launch_link(myapp)

C++

auto app = connectLaunch();
app.Login(email.c_str(), password.c_str());
app.RunFeature("export", [&] { exportReport(); });

Restore(), Logout(), ReleaseDevice() C++ استثنائی اصولوں کے مطابق ہیں۔ RAII destructor بندش سنبھالتا ہے۔ CMake، licentivo_launch_link(myapp CXX) استعمال کرتا ہے؛ Launch SDK لنک اور تقسیم کے رن ٹائم کتب خانے خود سنبھالتا ہے۔

لائف سائیکل، محفوظ اسٹوریج اور غلطیاں

کنکشن آبجیکٹ بنانا صرف ابتدائی ترتیب ہے۔ ایپ کو کامیاب لاگ ان یا بحالی اور ہر کاروباری کارروائی میں فیچر تحفظ کال بیک استعمال کرنا ہوگا۔ ادائیگی شدہ آرڈر، موجود سیشن یا قابل کلک بٹن SDK کی جانچ کا متبادل نہیں۔

طے شدہ سیشن صرف میموری میں رہتا ہے۔ لاگ ان یاد رکھنے کے لیے محفوظ اسٹوریج ضروری ہے: Go، Python، C# اور مقامی C/C++ Windows موجودہ صارف DPAPI دیتے ہیں؛ Java، Node، Rust اور Ruby کالر کی کلید والا AES-GCM اسٹوریج دیتے ہیں۔ کراس پلیٹ فارم ایپ سسٹم اسناد کے ذخیرے سے جڑے۔ کلید اور ciphertext ایک عام ڈائریکٹری میں نہ رکھیں۔

عام بندش صارف کا جان بوجھ کر یاد رکھا سیشن برقرار رکھتی اور رن ٹائم روکتی ہے۔ اکاؤنٹ لاگ آؤٹ پہلے سرکاری SDK متحدہ لاگ آؤٹ کال کرتا ہے، پھر Launch کا اپنا اکاؤنٹ ریکارڈ صاف کرتا ہے۔ ReleaseDevice اسی عمل کا مطابقتی راستہ ہے؛ دور دراز تنسیخ باقی ہو تو کامیاب ریلیز نہ بتائیں۔ سرکاری SDK کی کیش ڈائریکٹری یا لاگ آؤٹ بحالی لاگ صاف نہ کریں۔ Launch سیشن تحفظ کا مطلب نہیں کہ سرکاری SDK کی تمام ڈیوائس فائلیں خفیہ ہیں؛ کیش ڈائریکٹری کی اجازت محدود کریں۔

حالت ایپ کی کارروائی
اکاؤنٹ یا پاس ورڈ ناکام عمومی لاگ ان ناکامی دکھائیں، اکاؤنٹ کے وجود کو ظاہر نہ کریں
EMAIL_VERIFICATION_REQUIRED اسٹور ای میل توثیق مکمل کرنے کی رہنمائی دیں
ENTITLEMENT_PENDING ہم آہنگی جاری دکھائیں، پیکیج کی محدود دوبارہ کوشش اور Retry-After کے مطابق انتظار کریں
ENTITLEMENT_NOT_PURCHASED خریداری یا اکاؤنٹ بدلنے کی رہنمائی دیں
ENTITLEMENT_EXPIRED تجدید کی رہنمائی دیں، پرانی اسناد سے انکار نظر انداز نہ کریں
ENTITLEMENT_SUSPENDED محفوظ فیچرز روکیں، مرچنٹ سے رابطہ کریں
ڈیوائس تعداد پوری ڈیوائس انتظام یا واضح ریلیز کی رہنمائی دیں
نیٹ ورک/HTTP 5xx صرف SDK کی توثیق شدہ اور اب بھی مؤثر آف لائن اجازت استعمال ہو سکتی ہے

واضح 401/403/404، اکاؤنٹ عدم مطابقت، منسوخی یا شرح کی حد آف لائن اجازت کی کامیابی نہیں بن سکتے۔ پہلی ایکٹیویشن اور آف لائن ممنوع پالیسیوں کو اب بھی نیٹ ورک چاہیے۔ سرور ڈومین/IP ناقابل رسائی ہو تو کنکشن مسئلہ دکھائیں، خاموشی سے دوسری سائٹ سے نہ جڑیں۔

قبولیتی جانچ اور حوالہ جات

حقیقی لاگ ان، مالک اکاؤنٹ کی اجازت، محفوظ کارروائی، دوبارہ آغاز پر بحالی، درست آف لائن اور آف لائن اختتام، کیش میں ردوبدل، لاگ آؤٹ، اکاؤنٹ تبدیلی اور ڈیوائس ریلیز جانچیں۔ اس دستاویز میں AI ضروری نہیں۔ جانچ کے اوزار اور بیرونی قبولیتی حدود acceptance.md میں؛ مقامی پیکیج اور بلڈ ہدایات integration-packages.md میں ہیں۔

ترتیب کی جانچ، کوڈ جنریشن اور مقامی کمپائل حقیقی ادائیگی، لائسنس اجراء یا بیرونی ایکٹیویشن کی کامیابی خود ثابت نہیں کرتے۔ بیرونی اسٹور اور ادائیگی sandbox کی ترتیب کے بعد الگ قبولیتی جانچ ضروری ہے۔