当我在设备上运行应用程序后清理、删除派生数据时,它第一次运行没有任何问题。我第二次尝试运行时,它说“已添加修改或删除了已签名的资源”。
在模拟器应用程序上运行没有问题。
我认为这是因为扩展,我有编辑、共享和今天的扩展,当我删除这个扩展时,我可以在没有这个消息的情况下运行第二次。
这个问题是从 xcode 6 beta 5 开始的。
也许与配置文件和签名有关的问题?我为每个扩展目标创建了不同的配置文件。
所以我的问题是,我该如何解决这个问题?如何在不清理项目的情况下第二次在设备上运行?
当我在设备上运行应用程序后清理、删除派生数据时,它第一次运行没有任何问题。我第二次尝试运行时,它说“已添加修改或删除了已签名的资源”。
在模拟器应用程序上运行没有问题。
我认为这是因为扩展,我有编辑、共享和今天的扩展,当我删除这个扩展时,我可以在没有这个消息的情况下运行第二次。
这个问题是从 xcode 6 beta 5 开始的。
也许与配置文件和签名有关的问题?我为每个扩展目标创建了不同的配置文件。
所以我的问题是,我该如何解决这个问题?如何在不清理项目的情况下第二次在设备上运行?
它在 XCode 6 RTM 中仍未修复。但我找到了一个轻松的走动。只需删除构建下的 ShareExtension.appex 文件夹。然后再次重建。您不需要清理项目,因此重建速度非常快。
一个实际的别名命令来进行清理
rm -rf ~/Library/Developer/Xcode/DerivedData/<your_app>-*/Build/Products/Debug-iphoneos/ShareExtension.appex/
我对 Cloud Xu 的脚本稍作修改,删除了 .appex 和 .appex.dSYM
rm -rf ~/Library/Developer/Xcode/DerivedData/YourAppName-*/Build/Products/Debug-iphoneos/com.yourcompany.Name.extension.*
您可以将其放入您的方案中,以便在每次构建时执行:
编辑方案... > 在侧边栏中展开运行模式 > 预操作 > 单击“+”> 新建运行脚本操作。
编辑: 还有另一种解决方法:对于每个包含 .swift 文件的扩展目标,在项目运行方案配置中添加构建预操作:
touch "${PROJECT_DIR}/SOME SWIFT FILE IN EXTENSION.SWIFT"
所以我找到了解决这个问题的方法。现在我们不能在扩展中使用 swift 代码。正如评论中提到的
删除所有包含 swift 代码的扩展目标后,它开始正常工作。我认为这是 xcode 中的一个错误,现在如果我们使用 swift 代码进行扩展,不知道为什么,但第二次运行会给出“已添加已签名的资源已修改或删除”。错误。