2017-03-21 1 views
0

Je vois cette erreur lorsque je tente d'exporter une archive:xcodebuild méthode exportArchive non définie downcase pour nil: NilClass

2017-03-08 16:33:01.413 xcodebuild[61048:2742229] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7fe3d72312f0>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} 
error: exportArchive: No applicable devices found. 

Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.} 

Je ne fais pas éclaircie app:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>compileBitcode</key> 
    <false/> 
    <key>method</key> 
    <string>enterprise</string> 
    <key>teamID</key> 
    <string>MYTEAMID</string> 
    <key>thinning</key> 
    <string>&lt;none&gt;</string> 
    <key>uploadBitcode</key> 
    <false/> 
</dict> 
</plist> 

Quand je regarder dans le répertoire mentionné ici:

2017-03-21 08:47:20.275 xcodebuild[24493:1421657] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/36/28z3md3x08xcljbsh6tvv4xrcr93wf/T/UniversalFree_2017-03-21_08-47-20.274.xcdistributionlogs'. 

Je vois cette erreur dans le IDEDistribution.standard.log

2017-03-21 15:47:25 +0000 Scanning IPA... 
2017-03-21 15:47:48 +0000 /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:2341:in `platformIdentifierForVersionMinLoadCommand': undefined method `downcase' for nil:NilClass (NoMethodError) 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1236:in `block in GetMachOImagesFromOToolInfoForFile' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1196:in `each' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1196:in `GetMachOImagesFromOToolInfoForFile' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1294:in `MakeFileSystemNode' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1322:in `block in MakeFileSystemNode' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1321:in `each' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1321:in `MakeFileSystemNode' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1322:in `block in MakeFileSystemNode' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1321:in `each' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1321:in `MakeFileSystemNode' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1085:in `initialize' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1871:in `new' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:1871:in `ProcessIPA' 
     from /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool:2428:in `<main>' 
2017-03-21 15:47:49 +0000 [MT] /Applications/Xcode-7.app/Contents/Developer/usr/bin/ipatool exited with 1 

L'exportation échoue ensuite. Comment puis-je faire face à cela?

Répondre

0

Répondre à ma propre question, puisque je ne pouvais pas trouver une réponse directe en ligne. Bien que ce ne soit pas tout à fait clair pour moi ce qui cause cela, comme la trace de la pile indique le problème apparaît dans le ipatool dans le GetMachOImagesFromOToolInfoForFile. Il semble y avoir une attente que le loadCommands pour chaque élément qu'il traite aura une clé de la forme LC_VERSION_MIN_(.+) mais cela ne semble pas être le cas pour tous les éléments (si quelqu'un peut déterminer pourquoi et mettre à jour cette réponse, très apprécié). Dans tous les cas, vous pouvez apporter les modifications suivantes à ipatool pour "corriger" ce problème (le nouveau fichier est le fichier de gauche).

TL/DR: Edits pour /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool

Pour Xcode 7 ...

608,610d607 
<  if (self.machoFile == nil) 
<  return "<MachOImage nil #{self.arch}>" 
<  end 
1239,1242d1235 
<  if (versionMinLoadCommandName == nil) 
<  next 
<  end 
1302c1295 
<  if (machoImages && machoImages.length > 0) 
--- 
>  if machoImages 

Et pour Xcode 8 ...

750,752d749 
<  if (self.machoFile == nil) 
<  return "<MachOImage nil #{self.arch}>" 
<  end 

1438,1440d1434 
<  if (versionMinLoadCommandName == nil) 
<  next 
<  end 
1510c1504 
<  if (machoImages && machoImages.length > 0) 
--- 
>  if machoImages