And*_*ord 12 xcode objective-c ios dropbox-api bitcode
我已经在我的iOS应用程序中使用Dropbox Core API已经有一段时间了.更新到Xcode 7后,当我尝试编译项目时收到以下错误:
ld: '.../Frameworks/Dropbox/iOS/DropboxSDK.framework/DropboxSDK' does not contain bitcode.
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated
library from the vendor, or disable bitcode for this target.
Run Code Online (Sandbox Code Playgroud)
我知道Bitcode是什么以及它有什么好处.只需在目标Build Settings中设置Enable Bitcode选项即可解决错误No.在这之后一切都编译没有任何错误,应用程序运行没有任何问题.
到目前为止一切顺利,但这是"正确"的解决方案吗?我在Dropbox页面上查看了SDK的更新版本,但我已经使用了最新版本.
该项目包含不使用Dropbox SDK的App Widget,Watch Extension等的其他目标.Enable Bitcode应该在这里使用什么选项?是(出于某种原因)更好地使用相同的值(No在我的情况下)对所有目标?如果主应用程序目标不使用Bitcode,那么为Watch和Widget目标启用Bitcode是否有意义?
这里的最佳做法是什么?
看来他们还没有发布支持bitcode的API.以下是官方Dropbox论坛上线程的链接,其中包括来自Dropbox的支持人员在此上下文中回复其他开发人员的问题.
以下是Dropbox支持人员的相关回复:
哦,太好了!我们还没有发布带有bitcode的iOS Core SDK的更新,但是如果你需要对Core SDK的bitcode支持,你可以直接添加源代码,因为它是开源的.这里有关于Core SDK的一个主题:https: //www.dropboxforum.com/hc/en-us/community/posts/204352929-Need-Bitcode-Framework
由于我问了这个问题,我只是在 Widget 和 Apple Watch 目标中使用时将选项设置Enable Bitcode为No目标。这工作得很好,我没有注意到任何问题或限制。Build SettingsYes
Include Bitcode现在,我尝试向 App Store 发布应用程序的新版本,在将应用程序文件上传到 Apple 时,我注意到有一个复选框。启用此复选框后,我收到以下错误:
无效的 Match-O 格式。Match-O 捆绑包“MyApp.app/PlugIns/MyApp WatchKit Extension.appex”与主捆绑包中的 Match-O 不一致。
主捆绑包Match-O包含armv7(机器代码)和arm64(机器代码),而嵌套捆绑包Match-O包含armv7(位代码和机器代码)和arm64(位代码和机器代码)。
验证平台的所有目标都具有一致的 ENABLE_BITCODE 构建设置值。
我不知道为什么现在这是一个问题,而我去年上传的所有其他版本都没有任何问题。不过,通过取消选中该复选框,可以轻松解决该问题Include Bitcode。然后上传就被接受了,没有任何问题。
但有一个更好的解决方案:正如 Greg 指出的那样,Dropbox 终于发布了支持 Bitcode 的 SDK 版本!
下载新的 SDK 1.3.14,将其包含在您的项目中并将所有目标设置ENABLE_BITCODE为Yes,然后就完成了。至少在苹果找到一种新方法来扰乱你的发布工作流程之前:-)
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |