Для Xcode 7 у вас есть намного более простое решение. Единственная дополнительная работа заключается в том, что вам нужно создать файл конфигурации для экспорта архива.
(По сравнению с Xcode 6, в результатах xcrun xcodebuild -help
, -exportFormat
и -exportProvisioningProfile
опции больше не упоминаются; первый удален, а последний заменен -exportOptionsPlist
.)
Шаг 1 , измените каталог на папку, включающую файл .xcodeproject или .xcworkspace.
cd MyProjectFolder
Шаг 2 , используйте Xcode или /usr/libexec/PlistBuddy exportOptions.plist
для создания файла опций экспорта. Кстати, xcrun xcodebuild -help
скажет вам, какие ключи нужно вставить в файл plist.
Шаг 3 , создайте файл .xcarchive (фактически, папку) (сборка / каталог будет автоматически создан XCode прямо сейчас),
xcrun xcodebuild -scheme MyApp -configuration Release archive -archivePath build/MyApp.xcarchive
Шаг 4 , экспортируйте как файл .ipa следующим образом, который отличается от Xcode6
xcrun xcodebuild -exportArchive -exportPath build/ -archivePath build/MyApp.xcarchive/ -exportOptionsPlist exportOptions.plist
Теперь вы получаете файл ipa в каталоге build /. Просто отправьте его в Apple App Store.
Кстати, файл ipa, созданный Xcode 7, намного больше, чем Xcode 6.
Если вы еще не видели тем не менее, книга Practical Common Lisp доступна бесплатно в Интернете и содержит несколько примеров проектов.
Макрос LOOP - почти идеальный пример DSL, встроенного в Common Lisp. Однако, поскольку это уже часть стандарта, возможно, это не то, что вам нужно.
Функция формата CL имеет мини-dsl.
Я думаю, что dsl для печати строк будет компилироваться в машинный код.
(format nil "~ {~ A ~ # [~:;, ~] ~}" lst))
I feel your constraints are over-specified:
small enough to comprehend, varied enough to show off most of (c)lisp's tricks and features without being opaque (the 'well-written' part of the wish), and independent of other пакеты.
Common Lisp - огромный язык, и набор возможностей, который появляется при объединении языковых элементов, намного больше. У вас не может быть небольшой программы, показывающей «большинство трюков» на CL.
Есть также много концепций, которые вы найдете чуждыми, когда вы изучите CL с другого языка. По сути, CL - это не столько уловки, сколько ее фундаментальные парадигмы.
Я предлагаю сначала немного прочитать об этом, а затем начать создавать свои собственные программы или изучать открытый исходный код.
Обычно обычно Эди Вейц. пишет хороший код. Проверьте его проекты на http://www.weitz.de/ .
А теперь прочтите PCL. :)
CLSQL обеспечивает нотацию Lispy для запросов SQL, которые он компилирует в SQL, и почти все библиотеки Lisp для генерации HTML и XML подходят. Metabang bind - это DSL для лексического связывания переменных. Вы, вероятно, не знали, что он вам нужен, но он оказался удивительно полезным.
Я немного ленив, чтобы найти ссылки, но у вас должна быть возможность "Google" / "Bing". В следующем списке упоминаются очень разные способы встраивания языков и очень разные встроенные языки.
СЕРИЯ является своего рода DSL, в зависимости от вашего определения. Он находится в приложении к CLTL2, хотя на самом деле не является частью языка.