如何解决:'unitypurchasing'已被其他应用程序使用?

时间:2018-04-16 09:32:49

标签: macos unity3d app-store

各种版本的应用已发布到Mac应用商店。新版本在应用程序购买中引入。现在,当尝试通过ApplicationLoader交付应用程序时,它失败并显示以下错误消息:

  

ERROR ITMS-90511:“CFBundleIndetifier Collision.Info.plist   CFBundleIdentifier值'com.unity.purchasing.unitypurchasing'的   'SomeApp.app/Contents/Plugins/unitypurchasing.bundle'已经存在   由另一个应用程序使用。

你有什么想法导致这种情况以及如何解决这个问题吗?

一些其他背景信息:

在签署包之前,所有.meta文件都已从包含的库中删除。一个适当的.entit元文件已到位。签署是通过以下方式完成的:

chmod -R a+xr "SomeApp.app"  
codesign -f --deep -s '3rd Party Mac Developer Application: SomeDev' --entitlements "SomeApp.entitlements" "SomeAppp.app/Contents/Plugins/unitypurchasing.bundle" 
codesign -f --deep -s '3rd Party Mac Developer Application: SomeDev' --entitlements "SomeApp.entitlements" "SomeApp.app"  
productbuild --component "SomeApp.app" /Applications --sign "3rd Party Mac Developer Installer: SomeDev" "SomeApp.pkg"

欢迎任何导致问题的原因以及解决方法。谢谢。

2 个答案:

答案 0 :(得分:0)

  1. 在构建桌面Mac版本时,请在Unity的Mac Player设置中选择“ Mac App Store验证”。
  2. 构建应用程序后,请使用捆绑包标识符和版本字符串更新其info.plist文件。右键单击.app文件,然后单击“显示软件包内容”,找到info.plist文件,然后将CFBundleIdentifier字符串更新为应用程序的捆绑包标识符。
  3. 签名,打包和安装您的应用程序。从OSX终端运行以下命令,并分别填写“ your.app”和“ your.pkg”。 提示:要对捆绑包进行签名,您可能首先需要删除Contents.meta文件(如果存在):your.app/Contents/Plugins/unitypurchasing.bundle/Contents.meta

1. codesign -f --deep -s "3rd Party Mac Developer Application: " your.app/Contents/Plugins/unitypurchasing.bundle
2. codesign -f --deep -s "3rd Party Mac Developer Application: " your.app
3. productbuild --component your.app /Applications --sign "3rd Party Mac Developer Installer: " your.pkg

  1. 要正确安装软件包,请在运行新创建的软件包并安装之前删除未打包的.app文件。
  2. 从“应用程序”文件夹中启动应用程序。首次执行此操作时,系统会提示您输入iTunes帐户详细信息,然后您可以针对其在沙箱环境中进行测试购买。

更多信息的结帐链接:

https://docs.unity3d.com/Manual/UnityIAPAppleConfiguration.html

答案 1 :(得分:0)

要解决此问题,请尝试替换 your.app/Contents/Plugins/unitypurchasing.bundle/Contents/Info.plist

<key>CFBundleIdentifier</key>
<string>com.unity.purchasing.unitypurchasing</string>

使用

<key>CFBundleIdentifier</key>
<string>com.your.app.bundle.unitypurchasing</string>

出现与您相同的错误后,只需将应用提交到App Store。