2016-07-14 4 views
0

Я пытаюсь создать скрипт для ipa-файла для своего приложения, но хочу, чтобы он был для корпоративного распространения, а не Ad Hoc.Создание IPA для корпоративного приложения, а не ad hoc

мой сценарий:

# creating xcArchive file 

xcodebuild -workspace <ProjectName>.xcworkspace -scheme <SchemeName> archive \ 
-archivePath <DirectoryPath><ScemeName>.xcarchive 


# compressing the xcArchive file into IPA file 
xcodebuild \ 
-exportArchive \ 
-exportFormat ipa \ 
-archivePath <DirectoryPath>/<ScemeName>.xcarchive \ 
-exportPath <DirectoryPath>/<ScemeName>.ipa" \ 
     -exportProvisioningProfile "<My Distribution Provisioning Profile>". 

Теперь в мастере яблока, когда я создаю файл IPA, в embedded.mobileprovision я могу видеть эти атрибуты: для распределения eneterprise:

<key>ProvisionsAllDevices</key> 
<true/> 

для Ad-Hoc распределение:

<key>ProvisionedDevices</key> 
    <array> 
     <string>accacaca0-9800ac898a908908c90aca890c8a90</string> 
     <string>123123123123123123bfd123bdf123fv123bdf12</string> 
. 
. 
. 
    </array> 

в моем случае, я не знаю, почему , у меня их нет, и поэтому они не могут быть установлены на каком-либо устройстве. Кто-нибудь может сказать мне, почему? пожалуйста ?

ответ

0

Я решил. Я должен использовать современный подход, и записать его в export.plist:

# 
# creating .xcarchive file from .app file 
function create_archive_file() { 
    xcodebuild \ 
    -workspace ${PROJECT_NAME}.xcworkspace \ 
    -scheme "${scheme_name}" \ 
    archive \ 
    -archivePath ${SRCROOT}/${proj_external_name}/${1}.xcarchive 
} 
# 
# compressing xcArchive file into IPA file 
function create_ipa_from_archive() { 
    xcrun xcodebuild \ 
    -exportArchive \ 
    -archivePath ${SRCROOT}/${proj_external_name}/${scheme_name}.xcarchive \ 
    -exportPath ${SRCROOT}/${proj_external_name}/folder \ 
    -exportOptionsPlist export.plist 
} 

и в export.plist:

<?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>teamID</key> 
    <string>... (my TeamID, get it from one archiving action only once, and check it's details in build editor)</string> 
    <key>method</key> 
    <string>enterprise</string> 
    <key>uploadSymbols</key> 
    <true/> 
</dict> 
</plist> 
+0

И это работает? Я вижу ошибку: «Ошибка домена = IDEDistributionErrorDomain Code = 14» Не найдено никаких применимых устройств. UserInfo = {NSLocalizedDescription = Неиспользуемые устройства найдены.} "С теми же командами по содержимому plist. Каковы настройки пения в вашем проекте? Автоматический? – diidu

+0

Это сработало для меня. Я думаю (немного поздно в моем регионе), может быть, ваш профиль обеспечения не должен быть для определенных устройств, он должен быть подстановочным. – yonivav

+0

Это не так. Я использую профиль предприятия, который можно использовать с любым устройством. Я не единственный, у кого есть эта проблема (на основе поиска в Интернете). Кажется, или может быть, что по какой-то причине он пытается использовать ad-hoc-метод, даже если предприятие определено. – diidu

Смежные вопросы