Xcode 9 GM - 导出并上传到应用商店时崩溃

10
我正在尝试将使用ARKit(Unity构建)的应用上传到iTunes Connect以进行TestFlight分发。在从Xcode -> Organizer导出和上传到应用商店的过程中,我看到了“剥离APPNAME.app的扩展属性”崩溃。
我检查了所有的位代码和符号开关配置,自动签名和手动签名。我的项目部署目标是iOS 10,因为无法设置11。 我还尝试了来自相似线程的以下步骤(https://forums.developer.apple.com/thread/83219),并将App Store 1024图标添加到Images.xcassets中。
任何想法为什么Xcode会崩溃?
崩溃之前的截图: Screenshot from just before the crash 崩溃报告:
Process:               Xcode [10862]  
Path:                  /Applications/Xcode-9b6.app/Contents/MacOS/Xcode  
Identifier:            com.apple.dt.Xcode  
Version:               9.0 (13238.4)  
Build Info:            IDEFrameworks-13238004000000000~11  
Code Type:             X86-64 (Native)  
Parent Process:        ??? [1]  
Responsible:           Xcode [10862]  
User ID:               501  


Date/Time:             2017-09-10 14:56:10.196 +0100  
OS Version:            Mac OS X 10.12.6 (16G29)  
Report Version:        12  
Anonymous UUID:        FD8390BC-9E7B-969D-15A2-22A8DBBD050D  




Time Awake Since Boot: 16000 seconds  


System Integrity Protection: enabled  


Crashed Thread:        17  Dispatch queue: ConcurrentQueue: -[IDEDistributionPackagingStepViewController viewDidInstall]_block_invoke  


Exception Type:        EXC_BAD_ACCESS (SIGSEGV)  
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000020  
Exception Note:        EXC_CORPSE_NOTIFY  


Termination Signal:    Segmentation fault: 11  
Termination Reason:    Namespace SIGNAL, Code 0xb  
Terminating Process:   exc handler [0]  


VM Regions Near 0x20:  
-->  
    __TEXT                 0000000103625000-0000000103627000 [    8K] r-x/rwx SM=COW  /Applications/Xcode-9b6.app/Contents/MacOS/Xcode  


Application Specific Information:  
ProductBuildVersion: 9M214v  


Thread 0:: Dispatch queue: com.apple.main-thread  
0   libsystem_kernel.dylib         0x00007fffbb90634a mach_msg_trap + 10  
1   libsystem_kernel.dylib         0x00007fffbb905797 mach_msg + 55  
2   com.apple.CoreFoundation       0x00007fffa6037434 __CFRunLoopServiceMachPort + 212  
3   com.apple.CoreFoundation       0x00007fffa60368c1 __CFRunLoopRun + 1361  
4   com.apple.CoreFoundation       0x00007fffa6036114 CFRunLoopRunSpecific + 420  
5   com.apple.HIToolbox           0x00007fffa5596ebc RunCurrentEventLoopInMode + 240  
6   com.apple.HIToolbox           0x00007fffa5596cf1 ReceiveNextEventCommon + 432  
7   com.apple.HIToolbox           0x00007fffa5596b26 _BlockUntilNextEventMatchingListInModeWithFilter + 71  
8   com.apple.AppKit               0x00007fffa3b2fa54 _DPSNextEvent + 1120  
9   com.apple.AppKit               0x00007fffa42ab7ee -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796  
10  com.apple.dt.DVTKit           0x0000000103eb58be -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 390  
11  com.apple.AppKit               0x00007fffa3b243db -[NSApplication run] + 926  
12  com.apple.AppKit               0x00007fffa3aeee0e NSApplicationMain + 1237  
13  libdyld.dylib                 0x00007fffbb7df235 start + 1  

编辑

运行xcodebuild(通过fastlane gym),会产生以下结果:

+ xcodebuild -exportArchive -exportOptionsPlist /var/folders/z1/m155xvnn42s7xl7hfw3_8w5w0000gn/T/gym_config20170912-61009-190kutb.plist -archivePath '/Users/wert/Library/Developer/Xcode/Archives/2017-09-12/towerar 2017-09-12 22.06.54.xcarchive' -exportPath /var/folders/z1/m155xvnn42s7xl7hfw3_8w5w0000gn/T/gym_output20170912-61009-42bo6w
2017-09-12 22:09:04.966 xcodebuild[62085:5372649] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/z1/m155xvnn42s7xl7hfw3_8w5w0000gn/T/Unity-iPhone_2017-09-12_22-09-04.966.xcdistributionlogs'.
2017-09-12 22:09:21.584 xcodebuild[62085:5372649] [MT] IDEDistribution: Step failed: <IDEDistributionPackagingStep: 0x7fc3c75f18b0>: <IDEDistributionPackagingStep: 0x7fc3c75f18b0>
2017-09-12 22:09:21.584 xcodebuild[62085:5372649] -[__NSCFString userInfo]: unrecognized selector sent to instance 0x7fc3c74d72f0
** INTERNAL ERROR: Uncaught exception **
Uncaught Exception: -[__NSCFString userInfo]: unrecognized selector sent to instance 0x7fc3c74d72f0
Stack:
0   __exceptionPreprocess (in CoreFoundation)
1   objc_exception_throw (in libobjc.A.dylib)
2   -[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation)
3   ___forwarding___ (in CoreFoundation)
4   _CF_forwarding_prep_0 (in CoreFoundation)
5   __55-[Xcode3CommandLineBuildTool _distributeArchiveAndExit]_block_invoke (in Xcode3Core)
6   -[Xcode3CommandLineBuildTool _distributeArchiveAndExit] (in Xcode3Core)
7   -[Xcode3CommandLineBuildTool run] (in Xcode3Core)
8  0x0000000104d752af (in xcodebuild)
9   start (in libdyld.dylib)

请确保向苹果提交错误报告。 - rmaddy
Xcode 9 GM也存在同样的问题。 - Wojciech Rutkowski
如果您已经安装了Xcode 8.x,请尝试将其删除。 - Wain
7个回答

2

我不得不取消所有复选框并手动管理签名,然后才能继续向导。


1
我已经尝试过了,没有成功。问题出在xattr二进制文件上(根据被接受的答案)。 - Wojciech Rutkowski
我试过了,但并没有帮助。有关如何在Python中修复xattr的更多详细信息吗? - Karsten
我重新安装了macOS,这修复了Python和xattr。我尝试使用homebrew重新安装,但仍然无法正常工作。 - Wojciech Rutkowski
我尝试在几台电脑上构建项目,甚至使用全新安装的操作系统。但都没有帮助。然后我撤销了一个失败的尝试,包括HockeySDK,突然崩溃消失了,事情开始正常工作。有趣的是,破损的HockeySDK还导致Mercurial不想提交,出现最奇怪的错误消息。当我恢复到以前的提交时,两者都得到了解决。 - Karsten

1
我一直遇到同样的问题,几乎每天都会发生。Xcode 9 在打包过程中突然崩溃,导致出现相同的错误报告。
@dangercheng 给了我有关 Xcode 9 打包过程的见解,即它需要使用 xattr 命令,因此我去检查了我的 MacBook 上的 xattr 命令,但不知何故 xattr 不起作用。从详细信息中可以看出,错误与位于 /Library/Python/2.7 内的文件夹/文件所拥有的文件权限有关。某些用户除 root 用户外没有在这些文件/文件夹上进行写入(w/2)的权限。
根据以上事实,我得出结论需要更改文件权限,在这种情况下,使用 chmod -R 775 并将其应用于 /Library/Python/2.7 中的所有文件夹及其内容。之后,我的 xattr 运行良好,Xcode 9 中的打包过程顺畅运行,不再崩溃。
感谢大家的帮助。

出现了xattr的问题,无法重新安装。我将使用Xcode 8.3.3提交存档应用程序。 - Vakas

1
在我的情况下,这是由于Python的权限问题造成的。当从终端运行xattr时,我遇到了以下错误:IOError: [Errno 13] Permission denied:'/Users/cb/Library/Python/2.7/lib/python/site-packages/zc.buildout-1.5.2-py2.7.egg-info/namespace_packages.txt'。查看/Users/cb/Library文件夹后,我发现所有文件夹都属于cb:staff(我的当前登录用户和组),但/Users/cb/Library/Python文件夹属于root:wheel。运行以下命令将消除错误:sudo chown -R $USER:$(id -g) /Users/$USER/Library/Python。在sudo chown之后,你可以再次运行xattr来验证。xattr命令不应该有任何错误或其他输出。

{btsdaf} - Andrew Romanov

1

xattr命令行工具可用吗?可能是您的Python安装已损坏,或者如果您替换了已安装的xattr模块,则可能需要重新安装系统提供的模块。


谢谢你在Twitter上的帮助,问题已经解决了!我的先前Python安装损坏了xattr。 - Wojciech Rutkowski
请解释如何修复损坏的 xattr(如果是这个问题)。我遇到了同样的问题,但却无济于事。 - Nishant

0

我按照@dangercheng的回答解决了我的问题。 两天前,我将我的Python升级到了Python 3.6。看起来xattr命令是在Python 3.6下执行的。 然而,当我在终端中执行xattr时, File "/usr/bin/xattr", line 31 continue ^ TabError: inconsistent use of tabs and spaces in indentation 出现了一些问题! 所以我编辑了xattr的源代码。 for i in g: vers = vpat.search(i) if vers is None: continue //添加4个空格 sys.stderr.write("%s (uses python %s)\n" % (i, i[vers.start():vers.end()])) n = 1

``` Python版本3.6.3无法运行/usr/bin/xattr。尝试使用替代方法:

(错误:未找到替代方法)

运行“man python”以获取有关Mac OS X中多个版本支持的更多信息。 ``` 另一个错误!

我猜测xattr命令应该判断Python的版本并执行适当的代码,而Python3的代码中包含一些错误。 最后,我将默认版本的Python更改为Python2.7,并将xattr的软链接替换为xattr-2.7。它可以工作了。 注意,当xcodebuild执行xattr命令时,Python的路径是“/usr/bin/python”。 路径“/usr/bin/python”也是软链接。 因此,我按照以下步骤解决了这个问题。 第1步: cd /usr/bin

第2步: sudo rm python sudo ln -s python2.7 python

第3步: sudo rm xattr sudo ln -s xattr-2.7 xattr 如果您在“/usr/bin”下找不到Python2.7,请查找其他合适的Python路径,例如“/Library/Frameworks/Python.framework/Versions/2.7”等。


0

可能不是你的错,但请向苹果报告错误。但是,如果由于任何原因Xcode上传程序失败,请尝试使用经典的Application Loader:

Xcode.app/Contents/Applications/Application Loader.app


要使用应用程序加载器,您需要首先拥有 ipa 文件,而导出功能不起作用 :( - Wojciech Rutkowski
哦。你尝试过清除构建文件夹、重启等常规操作了吗? - John Scalo
我已经向苹果报告了这个错误。 - Wojciech Rutkowski

0
在Mac终端中运行“xattr”命令,如果结果如下所示:
python version 2.7.10 can't run /usr/bin/xattr.  Try the alternative(s):

/usr/bin/xattr-2.6 (uses python 2.6)
/usr/bin/xattr-2.7 (uses python 2.7)

Run "man python" for more information about multiple version support in
Mac OS X.

你应该创建一个新的软链接到 '/usr/bin/xattr-2.7' 运行以下命令:

cd /usr/bin
sudo rm xattr
sudo ln -s xattr-2.7 xattr

这解决了我的问题!


我也是。我找到了解决方案,请查看我的答案 https://dev59.com/H6Xja4cB1Zd3GeqPTplJ#46741881 - Vakas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接