文件的归档对于x code 4.6版本与PhoneGap的v 2.9失败 [英] Building an archive for XCode 4.6 release with phonegap v 2.9 fails

查看:249
本文介绍了文件的归档对于x code 4.6版本与PhoneGap的v 2.9失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这似乎是一个经常性的现象。

我看到了一些以前的问题,那里的解决办法是删除ARMv6的,
然后存档会工作。当然,ARMv6的走了。

所以,现在,既电流 X $ C $ç4.6.3的PhoneGap构建2.9
是的,应用程序适用于iPhone手机,ipad罚款,并在模拟器。

我得到在创建归档步骤结束此消息:

  /Applications/X$c$c.app/Contents/Developer/Toolchains/X$c$cDefault.xctoolchain/usr/bin/clang -arch armv7s -isysroot /Applications/X$c$c.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -F/Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -filelist /Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq.LinkFileList -dead_strip -weak_framework的CoreFoundation -weak_framework UIKit的-weak_framework AVFoundation -weak_framework CoreMedia -weak-l系统-force_load /Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a -ObjC -fobjc链接运行时-miphoneos版本分钟= 5.0 -framework CoreLocation -framework的ImageIO -framework OpenAL的-framework AssetsLibrary /Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a -framework基金会-weak_framework UIKit的-framework CoreGraphics中-framework通讯簿-framework AddressBookUI -framework AudioToolbox -weak_framework AVFoundation -framework CFNetwork的-framework MediaPlayer的-framework QuartzCore -framework SystemConfiguration -framework MobileCoreServices -weak_framework CoreMedia -framework CoreLocation -o /Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeqLD:找不到文件: /Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a
铿锵:错误:连接命令,退出code 1(使用-v看看调用)失败

和走过去,看了看周围的文件系统有:

  CD /用户/ peeq /库/开发/ X code / DerivedData / peeq-gylybvwifdxjmtajtbvdsdpjcvkl /编译
./Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/UninstalledProducts/libCordova.a

和它的建成,只是没有把那里的链接想找到它。

所以,毫无疑问,一些构建设置要么告诉链接看那里,或者
告诉构建以把它放在连接器要找到它。

除非它的东西。

我的问题是如何让应用程序档案建立
正确的,所以它可以熄灭商店。

谢谢,
约翰·


一个没事人谁在苹果公司工作的告诉我在哪里看,在这一点上,这是解决了。

深生成设置中,存在要设置一个字段,称为其它链接器标记

它开始显示出没有价值的,但如果你点击它,它与调试和发布弹出。

在很长的字符串,发布,人们发现一个-force_load libCordova.a结果
并删除该字符串的部分。

从:

  -weak_framework的CoreFoundation -weak_framework UIKit的-weak_framework AVFoundation -weak_framework CoreMedia -weak-l系统-force_load $ {} TARGET_BUILD_DIR -ObjC /libCordova.a

要:

  -weak_framework的CoreFoundation -weak_framework UIKit的-weak_framework AVFoundation -weak_framework CoreMedia -weak-l系统-ObjC

它大概以某种方式中的错误PhoneGap的违约这地方,我将
还与他们联系,看它是否能默认的修复它。

他的注意,我指出它:

我注意到,你的链接命令包含这样的:

  -force_load /Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a

和这样的:

<$p$p><$c$c>/Users/peeq/Library/Developer/X$c$c/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a

传递的路径-force_load是链接器抱怨伪造路径。我认为你需要删除-force_load链接器标志。你有没有这样的标记在其他链接器标记的设置设置?


解决方案

找到了解决。


  1. 在您的目标构建设置中,找到其它链接器标记

  2. 更改 $(TARGET_BUILD_DIR)/libCordova.a

  3. $(BUILT_PRODUCTS_DIR)/libCordova.a

This appears to be a recurring phenomena.

I saw a number of prior questions, where the solution was to delete armv6, and then the archive would work. Of course, armv6 is gone.

So, now, building with both current, Xcode 4.6.3 phonegap 2.9. And yes, the app works fine on iphones, ipads, and in the simulator.

I get this message at the end of the create archive step:

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -F/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -filelist /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq.LinkFileList -dead_strip -weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a -ObjC -fobjc-link-runtime -miphoneos-version-min=5.0 -framework CoreLocation -framework ImageIO -framework OpenAL -framework AssetsLibrary /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a -framework Foundation -weak_framework UIKit -framework CoreGraphics -framework AddressBook -framework AddressBookUI -framework AudioToolbox -weak_framework AVFoundation -framework CFNetwork -framework MediaPlayer -framework QuartzCore -framework SystemConfiguration -framework MobileCoreServices -weak_framework CoreMedia -framework CoreLocation -o /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq

ld: file not found: /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

And went over and looked around the file system there:

cd /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build
./Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/UninstalledProducts/libCordova.a

And its been built, just not put where the linker wanted to find it.

So, no doubt some build setting either tells the linker to look there, or tells the build to put it where the linker wants to find it.

Unless its something else.

My question is how to get the app archive to build correctly, so it can go off to the store.

Thanks, john


A fine person who works at Apple told me where to look, at which point, this was solved.

Deep within the Build Settings, there is a field to be set, called Other Linker Flags

It starts out showing no value, but if you click on it, it pops up with Debug and Release.

In the very long string that is Release, one finds a -force_load libCordova.a
and deletes that part of the string.

From:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load ${TARGET_BUILD_DIR}/libCordova.a -ObjC

To:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem  -ObjC

Its probably a bug in some fashion that phonegap defaults this in place, I shall also contact them and see if it can default repair it.

His note that pointed me at it:

I notice that your link command contains both this:

-force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a

and this:

/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a

The path being passed to -force_load is the bogus path that the linker is complaining about. I think that you need to remove the "-force_load" linker flag. Do you have such a flag set in the "Other Linker Flags" setting?

解决方案

Found a fix.

  1. In your Target's Build Settings, find Other Linker Flags
  2. Change $(TARGET_BUILD_DIR)/libCordova.a
  3. To $(BUILT_PRODUCTS_DIR)/libCordova.a

这篇关于文件的归档对于x code 4.6版本与PhoneGap的v 2.9失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆