Skip to main content

كيفية تجميع إصدار iOS

  1. أولاً، قم بإعداد بيئة التطوير.
  2. قم بتثبيت Xcode من AppStore (آخر اختبار 14.2)
  3. قم بتثبيت أدوات سطر الأوامر لـ Xcode
$ xcode-select --install

أو في حالة وجود أخطاء، حاول تنزيلها وتثبيتها من: موقع Apple.

  1. تسجيل الدخول إلى حساب Xcode (اختياري) في حال لم يكن لديك حساب مطور Apple. افتح Xcode وانتقل إلى التفضيلات (عبر القائمة العلوية)
Preferences -> Accounts

اضغط على زر +. يمكنك تسجيل الدخول باستخدام AppleID الخاص بك (اسم المستخدم وكلمة المرور من أجهزة iOS/macOS الخاصة بك). اتبع تعليمات Xcode. لأعضاء فريق OsmAnd: أرسل اسم المستخدم الخاص بـ AppleID الخاص بك، حتى يتم إضافتك إلى قائمة المطورين. عندما تتلقى بريدًا إلكترونيًا يحتوي على رسالة دعوة، قم بتنشيطها. أغلق Xcode.

  1. قم بتثبيت أدوات سطر الأوامر - cmake، svn، cocoapods
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# لمعالجات intel
$ echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
$ eval "$(/usr/local/bin/brew shellenv)"

# لمعالجات m1
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
$ eval "$(/opt/homebrew/bin/brew shellenv)"

$ brew install svn
$ brew install cmake # تم اختباره على 3.25.2، 3.19، 3.11

# لمعالجات intel
$ sudo gem install cocoapods

# لمعالجات m1
$ brew install cocoapods
  1. قم بتنزيل وتثبيت Java jdk 17
# لمعالجات intel
https://download.oracle.com/java/17/archive/jdk-17.0.11_macos-x64_bin.dmg

# لمعالجات m1
https://download.oracle.com/java/17/archive/jdk-17.0.11_macos-aarch64_bin.dmg
  1. أنشئ ملف نصي جديد. أو قم بتحديثه إذا كان موجودًا.
$ mkdir ~/.gradle
$ nano ~/.gradle/gradle.properties

الصق هذا المحتوى فيه. احفظ الملف وأعد تشغيل الكمبيوتر.

## إعدادات Gradle على مستوى المشروع. \{#project-wide-gradle-settings}
#
# لمزيد من التفاصيل حول كيفية تهيئة بيئة البناء الخاصة بك، قم بزيارة \{#for-more-details-on-how-to-configure-your-build-environment-visit}
# http://www.gradle.org/docs/current/userguide/build_environment.html \{#httpwwwgradleorgdocscurrentuserguidebuildenvironmenthtml}
#
# يحدد وسائط JVM المستخدمة لعملية daemon. \{#specifies-the-jvm-arguments-used-for-the-daemon-process}
# هذا الإعداد مفيد بشكل خاص لتعديل إعدادات الذاكرة. \{#the-setting-is-particularly-useful-for-tweaking-memory-settings}
# القيمة الافتراضية: -Xmx10248m -XX:MaxMetaspaceSize=256m \{#default-value--xmx10248m--xxmaxmetaspacesize256m}
# org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 \{#orggradlejvmargs-xmx2048m--xxmaxmetaspacesize512m--xxheapdumponoutofmemoryerror--dfileencodingutf-8}

org.gradle.daemon=true

org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

#
# عند التهيئة، سيعمل Gradle في وضع التزايد المتوازي. \{#when-configured-gradle-will-run-in-incubating-parallel-mode}
# يجب استخدام هذا الخيار فقط مع المشاريع المفككة. لمزيد من التفاصيل، قم بزيارة \{#this-option-should-only-be-used-with-decoupled-projects-more-details-visit}
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects \{#httpwwwgradleorgdocscurrentuserguidemultiprojectbuildshtmlsecdecoupledprojects}

org.gradle.parallel=true
org.gradle.caching=true

#الجمعة 08 أبريل 18:47:31 EEST 2016
# android.useDeprecatedNdk=true \{#androidusedeprecatedndktrue}
  1. قم بتشغيل prepare.sh لتجميع مكتبة Qt وتنزيل التبعيات الخارجية
$ cd ios
$ ./prepare.sh

خطأ: Xcode not set up properly. You may need to confirm the license.... الحل: قم بتبديل XcodeCommandLineTools إلى تطبيق Xcode، قم بتأكيد الترخيص ثم قم بتبديله مرة أخرى.

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
$ sudo xcodebuild -license accept
$ sudo xcode-select --switch /Library/Developer/CommandLineTools

الحل 2: تحقق مما إذا كان xcrun متاحًا: /usr/bin/xcrun -find xcrun. إذا حصلت على: xcrun: error: unable to find utility "xcrun", not a developer tool or in PATH. ثم افتح Xcode > Preferences > Locations وفي حقل "Command Line Tools" اختر أدوات سطر الأوامر الخاصة بك "Xcode XX.X" ثم قم بتشغيل $ ./prepare.sh مرة أخرى.

الحل 3: خطأ: CMake Error ... iphoneos is not an iOS SDK.

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

الحل 4: إذا حصلت على خطأ مثل هذا: CMake Error at CMakeLists.txt:1 (cmake_minimum_required): CMake 3.21.2 or higher is required. You are running version 3.11.2. ثم قم بتنزيل مثبت dmg من موقع CMake على الويب وقم بالتثبيت اليدوي. ثم قم بتشغيل $ ./prepare.sh مرة أخرى.

https://cmake.org/download/

الحل 5: إذا حصلت على خطأ مثل هذا: Failed to configure 'qtbase-ios' for 'ios.simulator.clang.static', aborting.... اذهب إلى المجلد core/external/qtbase-ios/ واحذف جميع المجلدات التي تبدأ بـ upstream. ثم قم بتشغيل $ ./prepare.sh مرة أخرى.

  1. افتح osmand.xcworkspace في Xcode

  2. البناء الأول. قم بتعيين هدف البناء إلى OsmAnd Maps. (بالقرب من أزرار التشغيل/الإيقاف). حدد جهازك كهدف أو أحد محاكيات iOS. ولكن لا تستخدم الافتراضي 'Any iOS Device (arm64)'. قم ببناء المشروع (زر التشغيل).

  3. وجهات XCode و Sandbox

  • استخدم "جهازي Mac (مصمم للآيباد)" للتطوير اليومي (أفضل أداء)

  • استخدم وجهات iPhone/iPad لتطوير واجهة المستخدم/تجربة المستخدم (بطيء على معالجات M)

  • قد يطلب منك MacOS تسجيل الدخول باستخدام Apple ID عندما يكون OsmAnd قيد التشغيل

  • استخدم حساب Sandbox الخاص بك كـ Apple ID لتجنب طلبات تسجيل الدخول المتكررة

  • استخدم OsmAnd Cloud مع اشتراكك الترويجي للحصول على خرائط غير محدودة

  • اطلب من قائد فريقك حسابات Sandbox واشتراكات ترويجية

استكشاف الأخطاء وإصلاحها

تنظيف الملفات المؤقتة.

  • في حالة وجود أخطاء في البناء، يمكنك الضغط في Xcode على: Product -> Clean build folder
  • أغلق Xcode.
  • احذف مجلدات baked و binaries في دليل OsmAnd (إذا كانت موجودة بالفعل).
  • اذهب إلى المجلد core/external/qtbase-ios/ واحذف جميع المجلدات التي تبدأ بـ upstream.
  • احذف مجلد Xcode DerivedData: rm -rf ~/Library/Developer/Xcode/DerivedData
  • تأكد من أن جميع المستودعات محدثة وعلى الفروع الصحيحة.
  • أعد تشغيل جهاز الكمبيوتر الخاص بك. (نعم، يمكن أن يساعد ذلك).
  • ثم قم بتشغيل $ ./prepare.sh
  • افتح XCode وحاول بناء المشروع مرة أخرى.

جهاز Mac M1

  • في حالة ld: library not found for -lOsmAndCore_static_standalone:
  • Project Navigator -> OsmAnd_projects -> OsmAnd_projects (في قائمة Project/Targets) -> Build settings -> All -> Architectures -> Excluded Architectures -> Debug
  • أضف حقل سلسلة من نوع Any IOS Simulator SDK بقيمة arm64. (ستحتاج إلى إضافته بعد كل تشغيل لـ prepare.sh)
  • قم ببناء المشروع. في حالة وجود أخطاء، اتبع جميع التعليمات من 11. استكشاف الأخطاء وإصلاحها - تنظيف الملفات المؤقتة. و prepare.sh مرة أخرى.

إضافة تصحيح أخطاء Kotlin (اختياري)

$ brew install xcode-kotlin
$ xcode-kotlin install
$ xcode-kotlin sync

ارجع إلى قسم ملف تهيئة LLDB لإنهاء إعداد تصحيح أخطاء Kotlin.

إضافة تصحيح أخطاء Qt (اختياري). إذا كنت ترغب في رؤية قيم Qt في وضع التصحيح، قم بتشغيل هذا:

$ mkdir -p ~/qtlldb
$ git clone https://github.com/gbooker/lldb-qt-formatters ~/qtlldb
$ touch ~/.lldbinit-Xcode
$ echo "" >> ~/.lldbinit-Xcode
$ echo "command script import ~/qtlldb/both.py" >> ~/.lldbinit-Xcode

ملف تهيئة LLDB (اختياري)

لا يقوم XCode 16+ بتحميل ~/.lldbinit-Xcode تلقائيًا، لذا قم بإعداده يدويًا باستخدام قائمة Product - Scheme - Edit scheme - Run - LLDB Init File.

بعد تعيين هذه المعلمات، أعد تشغيل جهاز الكمبيوتر الخاص بك.