首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Apportable中使用同名目标的子项目?

如何在Apportable中使用同名目标的子项目?
EN

Stack Overflow用户
提问于 2013-06-21 06:34:20
回答 2查看 521关注 0票数 1

当前,Apportable无法构建具有相同名称的目标的项目。这是因为分项目的缘故。我有几个子项目,它们都包含名为iOS Static LibraryOS X Static Library的目标。并且它们的PRODUCT_NAME被重写,以防止.a文件名重复。

无论如何,当我看到构建日志时,Apportable似乎使用目标名称作为一种全局标识符。在建筑过程中坠毁。

如何在多个子项目上使用同名目标?

这是完整的构建日志。

代码语言:javascript
复制
Erionirr:Test9 Eonil$ apportable uninstall; rm -rf ~/.apportable/SDK/Build/android-armeabi-debug; rm -rf *.approj; apportable debug 
Building to /Users/Eonil/.apportable/SDK/Build/android-armeabi-debug
Loading configuration.
Finished parsing configuration.
Loading configuration.
Finished parsing configuration.
Loading configuration.
Finished parsing configuration.
scons: Building targets ...
scons: *** [Build/android-armeabi-debug/Test9/Test9-debug.apk_debug] Source `Build/android-armeabi-debug/Test9/Test9-debug.apk' not found, needed by target `Build/android-armeabi-debug/Test9/Test9-debug.apk_debug'.
scons: building terminated because of errors.
Building to /Users/Eonil/.apportable/SDK/Build/android-armeabi-debug
Updating configuration parameters... Building Xcode project /Users/Eonil/Desktop/Apportable Knowledge Base and Bug Reporting/Running Test/Test9/Test9
Scanning build configuration for target Test9
Merging configuration parameters.


It looks like you're compiling this app for the first time.
Test9.approj/configuration.json will be created for you.
A few quick questions and you'll be on your way:

If the app is using OpenGL ES, does it use ES1 or ES2? (Cocos2D 1.X uses ES1, 2.X uses ES2)
[1/2] 2
Should the app initially launch in landscape or portrait orientation? (default: landscape)
[L/p] p
Loading configuration.
Finished parsing configuration.
Merging configuration parameters.
Loading configuration.
Finished parsing configuration.
Merging configuration parameters.
Loading configuration.
Finished parsing configuration.
Traceback (most recent call last):
  File "/Users/Eonil/.apportable/SDK/bin/apportable", line 701, in <module>
    run(env)
  File "/Users/Eonil/.apportable/SDK/bin/apportable", line 677, in run
    results = actions[args.action](env)
  File "/Users/Eonil/.apportable/SDK/bin/apportable", line 95, in DebugAction
    return env.DebugApp(site_init.BuildApplication(env, env['BUILD_TARGET']))
  File "/Users/Eonil/.apportable/SDK/site_scons/site_init.py", line 351, in BuildApplication
    return build.App(env, app_sconscript)
  File "/Users/Eonil/.apportable/SDK/site_scons/build/__init__.py", line 619, in App
    results = env.BuildApp(sources=sources, header_paths=headers, defines=defines, flags=flags, config=configs, deps=deps, libs=libs, java_libs=java_libs, assets=assets, pch=pchs, modules=modules, java_sources=java_sources, java_sourcepaths=java_sourcepaths, java_res_dirs=java_res_dirs)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Environment.py", line 223, in __call__
    return self.method(*nargs, **kwargs)
  File "/Users/Eonil/.apportable/SDK/site_scons/site_init.py", line 915, in BuildApp
    build.Module(env, module["build_cwd"], module)
  File "/Users/Eonil/.apportable/SDK/site_scons/build/__init__.py", line 681, in Module
    env.BuildModule(target["target"], sources=sources, header_paths=headers, defines=defines, flags=flags, deps=deps, libs=libs, java_libs=java_libs, assets=assets, pch=pchs, modules=modules, java_sources=java_sources, java_sourcepaths=java_sourcepaths, java_res_dirs=java_res_dirs)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Environment.py", line 223, in __call__
    return self.method(*nargs, **kwargs)
  File "/Users/Eonil/.apportable/SDK/site_scons/site_init.py", line 1014, in BuildModule
    BuildLibrary(env, name, sources=sources, header_paths=header_paths, static=True, defines=defines, flags=flags, deps=deps, libs=libs, pch=pch, app=True)
  File "/Users/Eonil/.apportable/SDK/site_scons/site_init.py", line 755, in BuildLibrary
    lib = building_env.StaticLibrary(name, objects)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Environment.py", line 259, in __call__
    return MethodWrapper.__call__(self, target, source, *args, **kw)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Environment.py", line 223, in __call__
    return self.method(*nargs, **kwargs)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Builder.py", line 632, in __call__
    return self._execute(env, target, source, OverrideWarner(kw), ekw)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Builder.py", line 556, in _execute
    _node_errors(self, env, tlist, slist)
  File "/Users/Eonil/.apportable/SDK/lib/scons/engine/SCons/Builder.py", line 315, in _node_errors
    raise UserError(msg)
SCons.Errors.UserError: Multiple ways to build the same target were specified for: Build/android-armeabi-debug/Eonil.Test9/iOS Static Library/libiOS Static Library.a  (from ['Build/android-armeabi-debug/Eonil.Test9/Users/Eonil/Desktop/Apportable Knowledge Base and Bug Reporting/Running Test/Test9/Subproject1/Subproject1/Subproject1.m.o'] and from ['Build/android-armeabi-debug/Eonil.Test9/Users/Eonil/Desktop/Apportable Knowledge Base and Bug Reporting/Running Test/Test9/Subproject2/Subproject2/Subproject2.m.o'])
Erionirr:Test9 Eonil$ 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-26 18:06:39

目前这是不受支持的,我们一直在内部讨论不同的方法来处理命名库,这些方法可以避免这个问题,但是仍然保持了一些精简的链接。继续调到我们的发布笔记页面,当我们得到一个解决方案时,我们肯定会注意到它与用户的有效改变。

票数 2
EN

Stack Overflow用户

发布于 2013-06-26 18:35:40

如果不太方便,给您的目标命名为"iOS静态库Cocos2D“这样的唯一名称应该可以修复这个问题,直到我们能够在构建系统级别上解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17229025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档