我在Lion 10.7.2上运行Xcode 4.2并且我有一些需要更新到Lion沙箱的应用程序,所以我可以将它们重新提交到Mac App Store(Mac,而不是iOS)。在某个地方,我有一个弹出窗口更新到组合更新10.7.3,之后一切都出错了。
如果存档是在10.7.2中编译的,那么验证和提交应用程序就没问题了,但是如果它是在10.7.3更新之后编译的,则它无法再验证应用程序。这是正确的,根据10.7.3我仍然可以验证应用程序是否在升级之前编译。之后编译的任何东西都会给我这个:
“此捆绑包无效.Apple目前不接受使用此版本操作系统构建的应用程序。”
在以下每次尝试之后,我都已清理,重建了存档,并再次尝试通过Xcode Organizer和Application Loader独立验证或提交应用程序:
我尝试通过完全卸载升级到Xcode 4.2.1, 重启并安装,但没有。
我阅读this similar thread并尝试使用新的应用程序 Loader 2.5.1并确保没有其他Application Loader 系统,但也没有用。这两个应用程序 通过Xcode和独立运行的Loader提供相同的功能 错误。
从another thread尝试将基本SDK更改为10.7。一世 以前是10.6,所以我仍然可以支持Snow Leopard,是的 您可以提交针对10.6构建的沙盒应用程序,这些应用程序可以在Lion中运行 沙箱和SL非沙箱because I've done it有两个 最近的应用程序)。不幸的是,用10.6或10.7 SDK构建 与此错误没有区别。
我已经读过,当开发人员尝试提交基于测试版平台构建的应用程序时会发生同样的错误,但是自从8月份我购买了这台MacBook以来,我还没有运行任何版本的测试版本。 / p>
任何想法都将不胜感激。提前谢谢。
答案 0 :(得分:7)
好吧,我让它以一种完全不安全的方式工作......所以我不能说这是解决这个问题的好方法。
反正:
我看了一下SystemVersion.plist,结果发现我们10.7.3的版本是11D50b(b当然是beta)。当然,10.7.3没有被宣传为测试版...如果是我不会升级。
基本上我将/ System / Library / CoreServices中的SystemVersion.plist更改为:
Build Number: 11C74
ProductUserVisibleVersion: 10.7.2
ProductVersion: 10.7.2
您可以在更改权限后使用TextEdit执行此操作,或者如果您熟悉nano,则可以:
sudo nano /System/Library/CoreServices/SystemVersion.plist
与往常一样,在使用sudo做任何事情时要格外小心。
从那里开始,我重新启动Xcode(确保你这样做,我试过没有重新启动Xcode但它不起作用),清理,存档然后能够成功提交。
在此之后,我立即关闭了Xcode并确保将所有内容改回原来的状态:
Build Number: 11D50b
ProductUserVisibleVersion: 10.7.3
ProductVersion: 10.7.3
我绝对不会尝试重新启动或任何有趣的事情,不知道会发生什么。但这对我有用。
答案 1 :(得分:3)
好的我有同样的问题,我也已经安装了Xcode 4.3,因为我预计这将解决这个问题。 Xcode 4.3需要10.7.3所以无法将SystemVersion.plist更改为10.7.2,只是删除11D50b末尾的b并重新启动Xcode让我提交我的应用程序。
答案 2 :(得分:3)
编辑2012年3月12日: 我使用付费支持票直接联系Apple。事实证明,这是Mac App Store中的一个错误。他们的团队解决了这个问题。使用11D50b提交现在应该可以正常工作。
使用Xcode 4.3解决OS X 10.7.3上的问题
您需要更改SystemVersion文件,这可以通过命令完成 sudo nano /System/Library/CoreServices/SystemVersion.plist(ctrl o,to save)
我当前的文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
<key>ProductBuildVersion</key>
<string>11D50b</string>
<key>ProductCopyright</key>
<string>1983-2012 Apple Inc.</string>
<key>ProductName</key>
<string>Mac OS X</string>
<key>ProductUserVisibleVersion</key>
<string>10.7.3</string>
<key>ProductVersion</key>
<string>10.7.3</string>
</dict>
</plist>
将11D50b更改为11D50,重新启动xcode并清理代码。然后再次提交。 提交后,请记得将文件更改回原始文件。
答案 3 :(得分:1)
使用以下命令编辑plist文件的值以将OSX版本升级到10.7.4
sudo nano /System/Library/CoreServices/SystemVersion.plist 原始值:
内部版本号:11D50 ProductUserVisibleVersion&amp;的ProductVersion:10.7.3 新价值
内部版本号:11E27 ProductUserVisibleVersion&amp;的ProductVersion:10.7.4 按Ctrl + O进行保存,现在可以安装最新的XCode
http://cocoauser.wordpress.com/2012/08/03/how-to-install-latest-xcode-in-10-7-3-lion/
答案 4 :(得分:0)
与incarna一样,我没有解决方案,但我确实有一个解决方法,允许我提交到商店。它可能更安全,因为没有涉及欺骗行为。这仅适用于10.6的构建,但您仍然可以implement the 10.7 sandbox and keep Snow Leopard compatibility。
如果你有另外一台带有Snow Leopard的Mac,或者碰巧有SL的双启动,你可以为SL安装Xcode 4.2。使用SL的双启动是棘手的BTW,因为SL安装光盘无法识别Lion机器上的分区方案。我不得不使用另一台Mac的firewire并以目标模式安装到MacBook。这是我以前第一次拿到MacBook时所做的事情。谷歌,如果你想知道如何。
无论如何,我将项目复制到SL分区并在Xcode 4.2中打开它。您会注意到的一件事是GUI不包含权利或沙箱复选框选项,但您仍然可以在项目中看到权利和容器迁移plist文件(假设您之前在Lion下的Xcode中设置了它)。我想即使没有10.7,SL下的Xcode 4.2编译器仍然知道如何处理这些文件。
我在SL中的Xcode 4.2下重新编译了该项目并验证了存档。都好。然后我将该应用程序作为.pkg文件共享并保存到我的Lion分区。我安装了.pkg并在Lion中运行了我的应用程序。沙盒容器确实正确迁移,应用程序按预期运行。在验证它有效后,我重新启动到SL并提交了申请。
你有它。证明沙盒应用程序可以在SL中编译和提交,这仍然是一个有效且合法的交付平台。
答案 5 :(得分:0)
只是快速更新,在Xcode 4.3重新启动Xcode之后将无法正常工作,因为它检测到只能在10.7.3上运行但是按照说明更改plist文件然后清理,存档和分发似乎可行。我目前正在等待我的应用程序获得批准。