我们开发了一个iOS框架,主要是在Swift中使用了一些Objective-C。
在某个地方,我们显然失去了项目之间的联系。它的主要目标和Info.plist:
这是主要目标。我们只注意到构建的框架没有包含Info.plist,一个快速绘制的模拟应用程序用于玩我们的框架根本不喜欢。
但是,选择文件失败。我可以在此对话框中选择文件:
但确认"选择"没有任何影响。在pbxproj文件中,我看到像
这样的条目 <hash> /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
...
DEFINES_MODULE = YES;
...
INFOPLIST_FILE = "$(SRCROOT)/hcl/Info.plist";
"INFOPLIST_FILE[sdk=*]" = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 10.2;
...
};
name = Debug;
};
这似乎完全合情合理。 Info.plist文件本身似乎也是有效的;当我打开它时,XCode会愉快地显示表视图。
但是,Info选项卡仍为空,并且框架中没有Info.plist结束。 设置&#34; Info.plist文件&#34;在#34;包装&#34;项目设置到同一路径也无济于事。
可能是什么原因?我们怎样才能将Info.plist纳入我们的框架?
&#34;趣味&#34;旁注:我试图通过将Info.plist添加到&#34;复制捆绑资源&#34;来解决这个问题。 &#34;构建阶段&#34;。果然,我们在框架中获得Info.plist并且使用app满意。但是,我们的测试不再运行:
xctest[7779:90709] The bundle “hclTests” couldn’t be loaded because it is damaged
or missing necessary resources.
Try reinstalling the bundle.
xctest[7779:90709] (dlopen_preflight(/path/to/hclTests):
Library not loaded: @rpath/hcl.framework/hcl
Referenced from: /path/to/Build/Products/Debug-iphonesimulator/hclTests.xctest/hclTests
Reason: no suitable image found. Did find:
/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl:
required code signature missing for
'/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl'
/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl:
required code signature missing for '/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl'
Program ended with exit code: 82
感谢这个非常有用的消息,XCode。我花了三个小时才弄明白一个复制的文件导致了这个。
答案 0 :(得分:0)
有一个构建设置:
"INFOPLIST_FILE[sdk=*]" = "";
我不知道它来自哪里,但它似乎会覆盖
INFOPLIST_FILE = "module/Info.plist"
引起沉默的混乱。
删除上述设置可以解决问题。